docs / airbnb

Airbnb

Search stays, get listing details, reviews and availability.

base /airbnb/v18 endpoints
post/airbnb/v1/stays.search2 credits

Search stays in a location for given dates (≈26 cards/page, cursor-paginated).

ParameterAllowed / rangeDescription
queryrequiredWhere to search — city/region free text ('Istanbul, Turkey', 'Paris, France').
checkinoptionalCheck-in date (YYYY-MM-DD).
checkoutoptionalCheck-out date (YYYY-MM-DD).
adults = 1optional1–16Number of adult guests.
cursoroptionalNext page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
currency = EURoptionalPrice currency (ISO code: EUR, USD, GBP, TRY…).
locale = enoptionalResponse language (en, de, tr, es…).
include_raw = falseoptionalAdvanced: include the full raw response payload per listing card.
Try in playground →
post/airbnb/v1/stays.detail3 credits

Full listing page data (PDP deferred-state, raw passthrough: photos, amenities, host, description sections).

ParameterAllowed / rangeDescription
listing_idrequiredAirbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search.
currency = EURoptionalPrice currency (ISO code: EUR, USD, GBP, TRY…).
locale = enoptionalResponse language (en, de, tr, es…).
Try in playground →
post/airbnb/v1/stays.reviews1 credit

Listing reviews, paginated via offset/limit.

ParameterAllowed / rangeDescription
listing_idrequiredAirbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search.
limit = 24optional1–50Reviews per call (1–50).
offset = 0optional0–Skip this many reviews (offset paging; or use `cursor` = the next offset).
cursoroptionalNext page: pass meta.pagination.next_cursor (= the next offset, handled automatically by 'Next').
locale = enoptionalResponse language (en, de, tr, es…).
Try in playground →
post/airbnb/v1/stays.availability_calendar2 credits

Availability calendar for a listing (up to 12 months ahead): per-day availability + min/max nights.

ParameterAllowed / rangeDescription
listing_idrequiredAirbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search.
month_count = 12optional1–12How many months ahead (1–12).
Try in playground →
post/airbnb/v1/stays.price_checkout1 credit

Checkout price breakdown (nightly rate, fees, taxes) for exact dates.

ParameterAllowed / rangeDescription
listing_idrequiredAirbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search.
checkinoptionalCheck-in date (YYYY-MM-DD).
checkoutoptionalCheck-out date (YYYY-MM-DD).
currency = EURoptionalPrice currency (ISO code: EUR, USD, GBP, TRY…).
Try in playground →
post/airbnb/v1/properties.search2 credits

Alias of stays.search.

ParameterAllowed / rangeDescription
queryrequiredWhere to search — city/region free text ('Istanbul, Turkey', 'Paris, France').
checkinoptionalCheck-in date (YYYY-MM-DD).
checkoutoptionalCheck-out date (YYYY-MM-DD).
adults = 1optional1–16Number of adult guests.
cursoroptionalNext page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
currency = EURoptionalPrice currency (ISO code: EUR, USD, GBP, TRY…).
locale = enoptionalResponse language (en, de, tr, es…).
include_raw = falseoptionalAdvanced: include the full raw response payload per listing card.
Try in playground →
post/airbnb/v1/properties.detail3 credits

Alias of stays.detail.

ParameterAllowed / rangeDescription
listing_idrequiredAirbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search.
currency = EURoptionalPrice currency (ISO code: EUR, USD, GBP, TRY…).
locale = enoptionalResponse language (en, de, tr, es…).
Try in playground →
post/airbnb/v1/autocomplete1 credit

Location autocomplete suggestions (raw passthrough).

ParameterAllowed / rangeDescription
queryoptionalLocation text to complete.
Try in playground →