Airbnb search
Search Airbnb stay results for a destination/date combination and return normalized listings with cursor pagination.
POST
/v1/airbnb/search Request Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| checkin | body | string | Yes | Check-in date in YYYY-MM-DD format. |
| checkout | body | string | Yes | Check-out date in YYYY-MM-DD format. |
| query | body | string | Yes | Airbnb destination query, such as a city or neighborhood name. |
| accessibility_features | body | string | No | Accessibility feature labels from Airbnb such as "Step-free access" or "Disabled parking spot". Accepts a comma-separated string or an array. |
| adults | body | number | No | Number of adult guests. |
| amenities | body | string | No | Amenity labels from Airbnb such as "Wifi", "Kitchen", or "Free parking". Raw Airbnb amenity IDs are also accepted. |
| bathroom_privacy | body | string | No | Bathroom privacy labels or raw values such as "Private attached bathroom" or "ENSUITE". Accepts a comma-separated string or an array. |
| bathrooms | body | string | No | Minimum number of bathrooms. |
| bedrooms | body | string | No | Minimum number of bedrooms. |
| beds | body | string | No | Minimum number of beds. |
| booking_options | body | string | No | Booking option labels from Airbnb such as "Instant Book", "Self check-in", "Free cancellation", or "Allows pets". Accepts a comma-separated string or an array. |
| children | body | number | No | Number of child guests. |
| cursor | body | string | No | Optional Airbnb pagination cursor from a search URL or previous response to start from a later result page. |
| flexible_cancellation | body | string | No | Flexible cancellation filter. Accepts true/false or 1/0. |
| guest_favorite | body | string | No | Guest favorite filter. Accepts true/false or 1/0. |
| host_languages | body | string | No | Host language labels such as "English", "French", or "Sign Language". Raw language codes like en and fr are also accepted. |
| instant_book | body | string | No | Instant Book filter. Accepts true/false or 1/0. |
| pages | body | number | No | Number of paginated Airbnb result pages to fetch (1-20). |
| pets | body | string | No | Pet-friendly filter as a positive count, typically 1. |
| price_max | body | string | No | Maximum nightly price filter from an Airbnb search URL. |
| price_min | body | string | No | Minimum nightly price filter from an Airbnb search URL. |
| property_type_ids | body | string | No | Raw Airbnb property type IDs. Prefer property_types for human-readable labels. |
| property_types | body | string | No | Property type labels from Airbnb such as "House", "Apartment", or "Guesthouse". Accepts a comma-separated string or an array. |
| room_types | body | string | No | Room type labels such as "Room" or "Entire home". Raw Airbnb values like "Private room" are also accepted. |
| standout_stays | body | string | No | Standout stay labels from Airbnb such as "Guest favorite" or "Luxe". Accepts a comma-separated string or an array. |
| tier_ids | body | string | No | Raw Airbnb tier IDs, or labels such as "Luxe" when the option is available. |
| type_of_place | body | string | No | Type of place labels from Airbnb such as "Room" or "Entire home". Accepts a comma-separated string or an array. |
Response Structure
Async kickoff response
Polled run result response
Sync response
Declared output schema
Code Examples
Async + polling
RUN=$(curl -s -X POST "https://api.browsable.app/v1/airbnb/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"checkin":"2026-06-14","checkout":"2026-06-21","query":"London","accessibility_features":"sample","adults":1,"amenities":"Wifi","bathroom_privacy":"Private attached bathroom","bathrooms":"sample","bedrooms":"sample","beds":"sample","booking_options":"Instant Book","children":0,"cursor":"cursor-page-1","flexible_cancellation":true,"guest_favorite":true,"host_languages":"English","instant_book":true,"pages":1,"pets":"sample","price_max":"180","price_min":"180","property_type_ids":"id-1","property_types":"Apartment","room_types":"Entire home","standout_stays":"Guest favorite","tier_ids":"id-1","type_of_place":"Entire home"}')
RUN_ID=$(echo "$RUN" | jq -r '.run_id')
while true; do
RESULT=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://api.browsable.app/v1/runs/$RUN_ID")
STATUS=$(echo "$RESULT" | jq -r '.run_status')
if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then
echo "$RESULT"
break
fi
sleep 2
doneSync
curl -X POST "https://api.browsable.app/v1/airbnb/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"checkin":"2026-06-14","checkout":"2026-06-21","query":"London","accessibility_features":"sample","adults":1,"amenities":"Wifi","bathroom_privacy":"Private attached bathroom","bathrooms":"sample","bedrooms":"sample","beds":"sample","booking_options":"Instant Book","children":0,"cursor":"cursor-page-1","flexible_cancellation":true,"guest_favorite":true,"host_languages":"English","instant_book":true,"pages":1,"pets":"sample","price_max":"180","price_min":"180","property_type_ids":"id-1","property_types":"Apartment","room_types":"Entire home","standout_stays":"Guest favorite","tier_ids":"id-1","type_of_place":"Entire home","_run":{"async":false}}'