Skip to main content

Changelog

2026-07-08

  • Renamed the performance metrics returned by GET /sets/candidates and GET /sets/{set_id}/listings to the public Wheelhouse metrics lexicon, matching the other RM API KPI endpoints: anradr, aprasking_rate, nrevenuerevenue, nrevparrevpar, nrevpar_openrevpar_adjusted, open_occupancyoccupancy_adjusted, opennessnights_percent_open, loslength_of_stay, and *_nightsnights_* (each keeps its _365_0/_90_0 period suffix).

2026-07-07

  • Added dynamic-set creation endpoints: GET /sets/candidates (search market listings with metrics near a location to build a set from), POST /sets (create a free set from selected listings), and POST /sets/{set_id}/upgrade (purchase the paid Dynamic Sets plan for a set to unlock its KPI endpoints). GET /sets and GET /sets/{set_id} now also return free sets, each carrying an is_paid flag.
  • Added GET /segments/{segment_id}/aggregated_metrics endpoint. Returns monthly performance metrics aggregated across the listings matched by a segment's filter, mirroring GET /sets/{set_id}/aggregated_metrics. Monetary values default to the currency of the segment's most common market.

2026-07-03

  • Added GET /notification_settings and PUT /notification_settings endpoints. Users can now read which alerts they receive and enable or disable individual alert event/channel (in-app or email) settings via the API.

2026-07-02

  • Added the Team endpoints: GET /teams/members, POST /teams/members/invite, DELETE /teams/members/{sub_user_id}, POST /teams/members/{sub_user_id}/auto_managed_listing_level, POST /teams/members/{sub_user_id}/assigned_segments, POST /teams/members/{sub_user_id}/refresh_auto_managed_listings, GET /teams/memberships, POST /teams/memberships/{master_user_id}, and DELETE /teams/memberships/{master_user_id} to manage team members and memberships.

2026-06-30

  • Added POST /segments endpoint. Creates a new portfolio segment owned by the authenticated user. Accepts filter_backend to define the listing filter criteria.
  • Added PUT /segments/{segment_id} endpoint. Updates the name, description, filter_backend, and/or default status of an existing segment.

2026-06-29

  • Added POST /listings/{listing_id}/sync endpoint. Triggers a manual sync that pushes the latest Wheelhouse price recommendations to the connected channel and refreshes reservation data — equivalent to the Sync button in the UI. Available on paid plans only; subject to a per-day rate limit and a 60-second debounce.

2026-06-26

  • Added GET /listings/{listing_id}/base_price_history endpoint. Returns a daily log of Wheelhouse base price recommendations and effective base prices for a listing over the last 30 days (or a custom date range).
  • Added GET /listings/{listing_id}/calendar_day_history endpoint. Returns the history of price postings and calendar state snapshots for a specific stay date. Requires the Historical Price Changes feature on the listing's plan.

2026-06-24

  • Extended GET /listings/{listing_id}/kpis with additional metrics: revenue_available, revenue_blocked, min_price_occurrence, occupancy_neighborhood, occupancy_neighborhood_pp, occupancy_neighborhood_ratio, occupancy_neighborhood_adjusted, occupancy_neighborhood_adjusted_pp, occupancy_neighborhood_adjusted_ratio (all forward-only, periods 7/14/21/30/60/90/180/365); comp_set_occupancy, comp_set_occupancy_adjusted, comp_set_revenue (forward-only, periods 7/30/60); pickup (backward-only, periods 7/14/30); asking_rate_lowest and asking_rate_highest (backward-only, period 365); revenue_score (non-overlapping windows 0–30, 31–60, 61–90 days); and scalar comp_set_count.

2026-06-23

  • Added GET /listings/{listing_id}/custom_rates endpoint. Returns all active and upcoming custom rate periods for a listing, excluding expired ones.

2026-06-18

  • Split GET /listings/{listing_id}/kpis into four dedicated endpoints: GET /listings/{listing_id}/kpis (rolling-window metrics — bidirectional periods 7/14/21/30/60/90/180/365), GET /listings/{listing_id}/kpis/monthly (up to 15 months back incl. default dynamic-set metrics), GET /listings/{listing_id}/kpis/quarterly (up to 5 recent quarters), and GET /listings/{listing_id}/kpis/yearly (up to 5 years). Each response includes currency. The old days parameter is no longer accepted.

2026-06-17

  • Added GET /notifications and POST /notifications/dismiss endpoints. Users can now list their active in-app notifications and dismiss specific ones by ID via the API.
  • Added optional expires_at field to PUT /listings/{listing_id}/custom_rates and PUT /listings/{listing_id}/bulk_custom_rates. Custom rates can now be set with an expiry timestamp after which they are no longer applied.
  • Added GET /listings/{listing_id}/fee_impact_calendar endpoint. Returns a per-date fee multiplier derived from the listing's estimated fee setting. Multiply any nightly price by the multiplier to get the fee-inclusive price.
  • Added GET /listings/{listing_id}/min_stay_calendar endpoint. Returns the per-date minimum stay derived from the listing's minimum stay rules for a given date range.

2026-06-10

  • Added the Notes endpoints: GET /listings/{listing_id}/notes, POST /listings/{listing_id}/notes, PUT /listings/{listing_id}/notes/{note_id}, and DELETE /listings/{listing_id}/notes/{note_id} to manage the notes of a listing.
  • Added the Dynamic Sets endpoints: GET /sets, GET /sets/{set_id}, GET /sets/{set_id}/aggregated_metrics, GET /sets/{set_id}/listings, GET /sets/{set_id}/associated_listings, PUT /sets/{set_id}/associated_listings, DELETE /sets/{set_id}/associated_listings, GET /sets/{set_id}/changelog, GET /sets/{set_id}/time_series, and GET /sets/{set_id}/distribution. RM API users can access their paid dynamic sets.
  • Added GET /listings/{listing_id}/neighborhood/pricing endpoint to fetch daily neighborhood price data (median, p25, p75, listing count) for the listing's local cluster.
  • Added GET /listings/{listing_id}/neighborhood/occupancy endpoint to fetch daily neighborhood occupancy and booking model data for the listing's local cluster.

2026-06-09

  • Added GET /listings/{listing_id}/last_posted_prices endpoint. Returns the last price posted to the channel per stay date. For available nights this is the most recently posted price; for booked nights it is the last price posted at or before the time the booking was recorded.
  • Added GET /market_report, GET /market_report/{market_id}/time_series, and GET /market_report/{market_id}/distribution endpoints. RM API users can access market-level data for markets in which they have listings.

2026-04-20

  • All PUT endpoints now return 409 Conflict when a concurrent request for the same resource is already in progress. Retry the request after the concurrent request completes.
  • Added GET /listings/{listing_id}/price_calendar endpoint to fetch the price calendar for a single listing.

2026-04-16

  • Documented 403 Forbidden for read-only RM API keys on PUT and DELETE operations.

2026-04-08

  • Extension of GET /listings/{listing_id}/base_price_recommendation endpoint to include attribution breakdown.

2026-03-09

  • Initial release of the Wheelhouse Revenue Management API.
  • Endpoints: GET /listings, GET /listings/{listing_id}, GET /listings/{listing_id}/pricing_tier, GET /listings/{listing_id}/recent_changes, GET /listings/{listing_id}/kpis.
  • Endpoints: GET /listings/{listing_id}/price_recommendations, GET /listings/{listing_id}/base_price_recommendation, GET /listings/{listing_id}/checkin_checkout, GET /listings/{listing_id}/min_max_prices, GET /listings/{listing_id}/monthly_seasonality.
  • Endpoints: GET /preferences, PUT /preferences, GET /preferences/{listing_id}, PUT /preferences/{listing_id}, PUT /preferences/{listing_id}/copy, PUT /preferences/{listing_id}/{setting}, GET /preferences/{listing_id}/long_term_discounts, GET /preferences/{listing_id}/changelog, POST /preferences/{listing_id}/preview.
  • Endpoints: PUT /listings/{listing_id}/custom_rates, DELETE /listings/{listing_id}/custom_rates, PUT /listings/{listing_id}/bulk_custom_rates, DELETE /listings/{listing_id}/bulk_custom_rates.
  • Endpoints: GET /listings/{listing_id}/reservations (with date_filter_type parameter).
  • Endpoints: GET /listings/{listing_id}/tags, PUT /listings/{listing_id}/tags, GET /listings/{listing_id}/flags.
  • Endpoints: GET /segments, GET /segments/{segment_id}/listings.