Skip to main content

Market Reports & Neighborhood Data: Market-level insights

Written by Ryo

The market reports and neighborhood data endpoints give you external context for your listings — occupancy trends, rates, RevPAR, and demand signals at the market and neighborhood level. Use them to benchmark your listings against the broader market or build competitive analysis tools.

Plan requirement

Market report endpoints require at least one Pro tier listing in the requested market. Neighborhood data endpoints require an active listing with location data.


GET /market_report

List available markets for a country. Use this to look up a market_id for the endpoints below.

curl "https://api.usewheelhouse.com/ss_api/v1/market_report?country_code=US" \
-H "X-Integration-Api-Key: your_api_key_here"

Query parameters:

  • country_code (required) — ISO 3166-1 alpha-2, e.g. US, GB

Response:

[{ "market_id": 0, "market_name": "string", "geometry": {...}, "postal_codes": [...] }]

Response fields:

  • market_id — integer identifier, used as the path parameter below

  • market_name — human-readable market name

  • geometry — market boundary geometry

  • postal_codes — postal codes covered by the market


GET /market_report/:market_id/time_series

Daily time-series data for one or more market-level metrics over a date range.

curl "https://api.usewheelhouse.com/ss_api/v1/market_report/42/time_series?metric=occupancy&metric=asking_rate_w_fees&start_date=2026-01-01&end_date=2026-06-30" \
-H "X-Integration-Api-Key: your_api_key_here"

Path parameters:

  • market_id (required) — integer, from GET /market_report

Query parameters:

  • metric (string, repeatable) — Metrics to include, omit for all. Available: asking_rate_w_fees, occupancy, occupancy_adjusted, adr_w_fees, lead_time, revpar_adjusted_w_fees, revpar_w_fees, revenue_w_fees, nights_bookable

  • start_date (date) — YYYY-MM-DD, defaults to today, within 3 years past / 1 year future

  • end_date (date) — YYYY-MM-DD, defaults to 1 year from today

  • performance (string) — low, average, high, omit for all

  • bedrooms (string) — 0, 1, 2, 3, 4+, omit for all

  • property_type (string) — e.g. apartment, house, cabin, omit for all

Response

{ "currency": "USD", "updated_at": "2026-07-01T00:00:00Z", "data": [{...}] }

Response fields

  • currency — currency code for rate/revenue metrics

  • updated_at — timestamp the underlying data was last refreshed

  • data — array of daily entries for the requested metric(s)


GET /market_report/:market_id/distribution

Histogram distributions for one or more market metrics for a given calendar month.

curl "https://api.usewheelhouse.com/ss_api/v1/market_report/42/distribution?metric=occupancy&month=2026-06-01" \
-H "X-Integration-Api-Key: your_api_key_here"

Path parameters

  • market_id (required) — integer, from GET /market_report

Query parameters

  • metric (string, repeatable) — occupancy, occupancy_adjusted, asking_rate_w_fees, adr_w_fees, lead_time, revpar_adjusted_w_fees, revpar_w_fees, length_of_stay

  • month (date) — YYYY-MM-DD, first of the target month

Response

{ "currency": "USD", "month": "2026-06-01", "updated_at": "2026-07-01T00:00:00Z", "data": {...} }

Response fields

  • currency — currency code for rate metrics

  • month — the month the distribution covers

  • updated_at — timestamp the underlying data was last refreshed

  • data — histogram buckets for the requested metric(s)


GET /listings/:listing_id/neighborhood/pricing

Daily neighborhood pricing — median nightly price, p25/p75 percentiles, and cluster size — scoped to the listing's local comparable cluster (same bedroom count, nearby). Requires channel.

curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/neighborhood/pricing?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"

Path parameters

  • listing_id (required) — integer

Query parameters

  • channel (required) — e.g. airbnb

Response

{ "data": [{...}], "currency": "USD" }

Response fields

  • data — daily entries with median price, low_price (p25), high_price (p75), cluster listing count

  • currency — currency code for price fields

Status codes

  • 404 — listing has no neighborhood cluster or no location data

  • 406 — listing is inactive

  • 422 — listing is not covered by a Wheelhouse market


GET /listings/:listing_id/neighborhood/occupancy

Daily occupancy and booking model data for the listing's local comparable cluster. Requires channel.

curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/neighborhood/occupancy?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"

Path parameters

  • listing_id (required) — integer

Query parameters

  • channel (required) — e.g. airbnb

Response

{ "data": [{...}] }

Response fields (each entry in data)

  • occupancy — raw occupancy rate (booked nights / calendar nights)

  • adjusted_occupancy — occupancy against bookable (unblocked) nights only

  • expected_bookings — model-predicted booking count for the stay date

  • expected_bookings_sd — standard deviation of the expected bookings prediction

  • observed_bookings — actual booking count observed for that day

  • calendar_nights — total calendar nights in the cluster for that day

Status codes

  • 404 — no neighborhood cluster or occupancy data found

  • 406 — listing is inactive

  • 422 — listing is not covered by a Wheelhouse market

Related

How to access market and neighborhood data · How to monitor listing performance (KPIs)

Did this answer your question?