Identifying Listings
Most endpoints require a listing_id and channel path or query parameter to
identify the listing a request is being made for. Both values come from the
GET /listings endpoint:
listing_id— use theidfield from the listing object.channel— use thechannelfield from the same listing object.
A typical flow is to call GET /listings once to build a local map of your
listings, then use the id and channel values from that map for all
subsequent listing-specific calls.
Multi-unit listings
Some listings represent a single bookable property that has multiple independently bookable units underneath it — for example, a building with several apartments, or a property with a main house and a guest cottage managed as one listing. These are called multi-unit listings.
You can identify a multi-unit listing by the number_of_active_units field on
the listing object (returned by GET /listings and
GET /listings/{listing_id}). A non-null value indicates a multi-unit listing;
null indicates a standard single-unit listing.
For endpoints that return per-date data (such as
GET /listings/{listing_id}/price_calendar and
GET /listings/{listing_id}/last_posted_prices), multi-unit listings return
one row per unit per date. Each row includes a unit_number field (a
positive integer starting at 1) that identifies which unit the row belongs to.
Single-unit listings always return unit_number: 0.
When processing calendar data for a multi-unit listing, group rows by
unit_number to get the per-unit availability and pricing. Preferences and
settings (fetched via GET /preferences/{listing_id}) apply at the listing level
and are shared across all units.