The segment aggregated metrics endpoint returns monthly performance data rolled up across every listing that currently matches a segment's filter. Use it to build dashboards, reports, or alerts on top of any saved segment without pulling listing-level data and aggregating it yourself.
Pull aggregated metrics for a segment
curl "https://api.usewheelhouse.com/ss_api/v1/segments/12345/aggregated_metrics" \
-H "X-Integration-Api-Key: your_api_key_here"
Replace 12345 with your segment_id. If you don't already have it, call GET /segments to list the segments available for your account.
Reading the response
A successful response returns a data array — one entry per month — along with the currency used:
{
"data": [
{
"start_date": "2026-05-01",
"end_date": "2026-05-31",
"occupancy": 0.51,
"occupancy_adjusted": 0.51,
"nights_percent_open": 1,
"revenue": 13305,
"adr": 140,
"asking_rate": 133,
"revpar": 72,
"revpar_adjusted": 72,
"revenue_available": 11433,
"revenue_blocked": 0,
"lead_time": 55,
"length_of_stay": 4.29,
"nights_available": 91,
"nights_blocked": 0,
"nights_booked": 95,
"nights_bookable": 186,
"nights_calendar": 186,
"count_bookings": 27
}
],
"currency": "USD"
}
Key fields:
start_date/end_date— the calendar month this row coversoccupancy— booked nights ÷ calendar nights for the monthoccupancy_adjusted— booked nights ÷ open (non-blocked) nightsnights_percent_open— the share of calendar nights that were open (not blocked) during the monthrevenue/adr/revpar— revenue, average daily rate, and revenue per available room-night, aggregated across the segmentrevpar_adjusted— RevPar calculated over open, bookable nights onlyasking_rate— average asking rate across the segment for the monthrevenue_available— revenue potential across open, bookable nights at the asking rate (the denominator behindrevpar)revenue_blocked— revenue potential lost to blocked nightslead_time— average booking lead time, in dayslength_of_stay— average length of stay, in nightsnights_available/nights_blocked/nights_booked/nights_bookable/nights_calendar— the night-level counts behind the occupancy figurescount_bookings— number of bookings that contributed to the monthcurrency— the currency all monetary fields are expressed in for this response
Note: Fields like adr, lead_time, length_of_stay, and count_bookings can return null for months with no bookings, since there's nothing to average.
Optional parameters
dates — Restrict the response to specific months. Send one or more, each the first of the month:
?dates=2026-05-01&dates=2026-06-01
If omitted, the response includes every month Wheelhouse has data for.
currency — Convert all monetary fields to a specific currency:
?currency=EUR
If omitted, defaults to the currency of the most common market among the segment's listings, falling back to USD.
include_managed_listings — Controls whether the segment's filter is evaluated against listings shared with you to manage, in addition to listings you own:
?include_managed_listings=false
Defaults to true for RM API keys. Channel integration keys default to false, since they act only on the one account they're connected to.
Looping across all your segments
To build a dashboard covering every saved segment, pull your segment list first, then call the aggregated metrics endpoint for each:
Note: This endpoint is subject to your API key's rate limit. If you're looping across many segments, add a short delay between calls — you'll get a 429 response if you exceed the limit.
import requests
headers = {"X-Integration-Api-Key": "your_api_key_here"}
base_url = "https://api.usewheelhouse.com/ss_api/v1"
segments = requests.get(f"{base_url}/segments", headers=headers).json()
for segment in segments:
segment_id = segment["id"]
metrics = requests.get(
f"{base_url}/segments/{segment_id}/aggregated_metrics",
headers=headers
).json()
# process metrics["data"] here
Next steps
How to filter your portfolio with segments
Related Articles: