Browsable Browsable Docs

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
done

Sync

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}}'