docs / airbnb
Airbnb
Search stays, get listing details, reviews and availability.
base /airbnb/v18 endpoints
post
/airbnb/v1/stays.search2 creditsSearch stays in a location for given dates (≈26 cards/page, cursor-paginated).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | Where to search — city/region free text ('Istanbul, Turkey', 'Paris, France'). |
| checkin | optional | — | Check-in date (YYYY-MM-DD). |
| checkout | optional | — | Check-out date (YYYY-MM-DD). |
| adults = 1 | optional | 1–16 | Number of adult guests. |
| cursor | optional | — | Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically). |
| currency = EUR | optional | — | Price currency (ISO code: EUR, USD, GBP, TRY…). |
| locale = en | optional | — | Response language (en, de, tr, es…). |
| include_raw = false | optional | — | Advanced: include the full raw response payload per listing card. |
post
/airbnb/v1/stays.detail3 creditsFull listing page data (PDP deferred-state, raw passthrough: photos, amenities, host, description sections).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing_id | required | — | Airbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search. |
| currency = EUR | optional | — | Price currency (ISO code: EUR, USD, GBP, TRY…). |
| locale = en | optional | — | Response language (en, de, tr, es…). |
post
/airbnb/v1/stays.reviews1 creditListing reviews, paginated via offset/limit.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing_id | required | — | Airbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search. |
| limit = 24 | optional | 1–50 | Reviews per call (1–50). |
| offset = 0 | optional | 0– | Skip this many reviews (offset paging; or use `cursor` = the next offset). |
| cursor | optional | — | Next page: pass meta.pagination.next_cursor (= the next offset, handled automatically by 'Next'). |
| locale = en | optional | — | Response language (en, de, tr, es…). |
post
/airbnb/v1/stays.availability_calendar2 creditsAvailability calendar for a listing (up to 12 months ahead): per-day availability + min/max nights.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing_id | required | — | Airbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search. |
| month_count = 12 | optional | 1–12 | How many months ahead (1–12). |
post
/airbnb/v1/stays.price_checkout1 creditCheckout price breakdown (nightly rate, fees, taxes) for exact dates.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing_id | required | — | Airbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search. |
| checkin | optional | — | Check-in date (YYYY-MM-DD). |
| checkout | optional | — | Check-out date (YYYY-MM-DD). |
| currency = EUR | optional | — | Price currency (ISO code: EUR, USD, GBP, TRY…). |
post
/airbnb/v1/properties.search2 creditsAlias of stays.search.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | Where to search — city/region free text ('Istanbul, Turkey', 'Paris, France'). |
| checkin | optional | — | Check-in date (YYYY-MM-DD). |
| checkout | optional | — | Check-out date (YYYY-MM-DD). |
| adults = 1 | optional | 1–16 | Number of adult guests. |
| cursor | optional | — | Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically). |
| currency = EUR | optional | — | Price currency (ISO code: EUR, USD, GBP, TRY…). |
| locale = en | optional | — | Response language (en, de, tr, es…). |
| include_raw = false | optional | — | Advanced: include the full raw response payload per listing card. |
post
/airbnb/v1/properties.detail3 creditsAlias of stays.detail.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing_id | required | — | Airbnb listing ID — the number in the listing URL (airbnb.com/rooms/<listing_id>) or `id` from stays.search. |
| currency = EUR | optional | — | Price currency (ISO code: EUR, USD, GBP, TRY…). |
| locale = en | optional | — | Response language (en, de, tr, es…). |
post
/airbnb/v1/autocomplete1 creditLocation autocomplete suggestions (raw passthrough).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | optional | — | Location text to complete. |
Example request · stays.search
curl -X POST https://api.reefapi.com/airbnb/v1/stays.search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"Istanbul, Turkey","checkin":"2026-08-10","checkout":"2026-08-15","adults":2}'Response shape
{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}