Wheelhouse provides four KPI endpoints per listing — a rolling-window snapshot, monthly historical stats, quarterly historical stats, and yearly historical stats. All four require listing_id in the path and channel as a query parameter.
Rolling-window KPIs
Returns performance metrics across multiple time windows simultaneously — both forward-looking (next 7, 14, 30, 60, 90, 180, 365 days) and backward-looking (past 7, 14, 21, 30, 60, 90, 100, 180, 365 days). Each metric is an object keyed by period strings like 0_7 (next 7 days), 30_0 (past 30 days), etc.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/kpis?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
Response shape:
{
"currency": "USD",
"model_date": "2026-07-04",
"last_booked_at": "2026-07-03T10:14:00Z",
"occupancy": {
"0_7": 0,
"0_30": 0,
"7_0": 0,
"30_0": 0,
"365_0": 0
},
"adr": { "0_7": 0, "0_30": 0, ... },
"revenue": { "0_7": 0, "0_30": 0, ... },
"bookings": { "0_7": 0, "0_30": 0, ... },
"revpar": { "0_7": 0, "0_30": 0, ... },
"nights_available": { "0_7": 0, "0_30": 0, ... },
"nights_blocked": { "0_7": 0, "0_30": 0, ... }
}
Available metrics include: occupancy, occupancy_adjusted, adr, asking_rate, revenue, revpar, revpar_fees, revpar_adjusted_occupancy, bookings, nights_available, nights_blocked, revenue_available, revenue_blocked, pickup, comp_set_occupancy, comp_set_revenue, comp_set_count.
All monetary values are in the listing's currency.
Monthly historical stats
Returns monthly performance stats ordered oldest to newest. Up to 15 months of history.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/kpis/monthly?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
Response:
{
"currency": "USD",
"data": [
{ ... }
]
}
Quarterly historical stats
Returns quarterly performance stats ordered oldest to newest. Up to 5 recent quarters of history.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/kpis/quarterly?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
Response follows the same shape: {"currency": "USD", "data": [...]}.
Yearly historical stats
Returns yearly performance stats ordered oldest to newest. Up to 5 years of history.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/kpis/yearly?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
Response follows the same shape: {"currency": "USD", "data": [...]}.
Monitor your full portfolio
Loop through all active listings to pull rolling-window KPIs for each:
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://api.usewheelhouse.com/ss_api/v1"
headers = {"X-Integration-Api-Key": API_KEY}
listings = requests.get(
f"{BASE_URL}/listings",
headers=headers,
params={"exclude_inactive": "true"}
).json()
for listing in listings:
kpis = requests.get(
f"{BASE_URL}/listings/{listing['id']}/kpis",
headers=headers,
params={"channel": listing["channel"]}
).json()
occ_30 = kpis.get("occupancy", {}).get("0_30")
rev_30 = kpis.get("revenue", {}).get("0_30")
print(f"{listing['id']}: next-30d occupancy={occ_30}, revenue={rev_30}")
Next steps
How to organize and filter listings (tags, segments, dynamic sets)