Rank every listing by one KPI.
GET/listings/kpis
Returns a single rolling-window KPI for every listing the authenticated user can access, ranked by value. Use it to answer portfolio-wide questions — the best or worst performers on a metric — in one call instead of one call per listing.
Pick the metric with metric and the window with window, where 0_30 is the
next 30 days and 30_0 the trailing 30. Values come from the same store as
GET /listings/{listing_id}/kpis, so the two
always agree; that endpoint remains the way to read every metric and window for
one listing.
Metrics (window 0_N and N_0): adr, adr_fees, asking_rate,
asking_rate_fees, asking_rate_highest, asking_rate_lowest, bookings,
last_booked_days, lead_time, length_of_stay, min_price_occurrence,
nights_available, nights_blocked, nights_bookable, nights_booked,
nights_calendar, nights_percent_open, occupancy, occupancy_adjusted,
revenue, revenue_available, revenue_blocked, revenue_fees,
revenue_fees_taxes, revpar, revpar_adjusted_occupancy,
revpar_adjusted_occupancy_fees, revpar_fees.
Forward-only metrics (window 0_N only): occupancy_neighborhood,
occupancy_neighborhood_pp, occupancy_neighborhood_ratio,
occupancy_neighborhood_adjusted, occupancy_neighborhood_adjusted_pp,
occupancy_neighborhood_adjusted_ratio, revenue_score.
Backward-only metrics (window N_0 only): pickup, pickup_bookings.
Asking for a window a metric is not computed for returns a 400.
Monetary metrics — the adr, asking_rate, revenue and revpar families —
are stored in the currency of the listing's market, falling back to the
listing's own currency when it has no market, and each row reports which in its
currency. For a portfolio spanning currencies, pass currency to convert
every value before ranking, so that the ordering is meaningful. Without it,
rows are ranked on unconverted numbers. currency is ignored for metrics that
are not amounts of money.
A listing with no value for the requested window sorts last whichever direction
you rank in, with value set to null, so a ranking never opens with blanks.
Listings for which no stats have been generated at all are absent. Values are
recomputed by the nightly stats pipeline and when a listing's calendar is
refreshed; updated_at on each row tells you how current it is.
Comp-set metrics (comp_set_occupancy and friends) are not available here yet.
Request
Responses
- 200
- 400
- 401
- 422
One row per listing, ranked by the requested metric.
Missing or unknown metric or window, or a window the metric is not computed for.
API key authorization failed.
No exchange rate is available for the requested currency.