Airbnb Search
Search Airbnb stays by destination and dates.
GET/api/v1/airbnb/search
Costs 1 credit per request; failed requests are refunded. Authentication, the search_metadata envelope and error codes are the same as for every endpoint (see the API reference). Try it in the playground.
Parameters
Stay search
Search Airbnb stays by destination and dates.
| Parameter | Type | Description |
|---|---|---|
q | string | Destination, address, or landmark.Up to 500 characters. |
map_bounds | string | North,east,south,west map coordinates. |
airbnb_domain | string | Airbnb localization domain.Default: airbnb.com. |
currency | string | Currency code for returned prices. |
check_in_date | string | Check-in date in YYYY-MM-DD format. |
check_out_date | string | Check-out date, later than check-in. |
adults | integer | Number of guests aged 13 or above.Minimum: 0. |
children | integer | Number of guests aged 2 to 12.Minimum: 0. |
infants | integer | Number of guests under 2.Minimum: 0. |
pets | integer | Number of pets.Minimum: 0. |
room_type | "entire_home" | "private_room" | Type of place. |
min_price | number | Minimum total trip price including fees.Minimum: 0. |
max_price | number | Maximum total trip price including fees.Minimum: 0. |
bedrooms | integer | Minimum bedrooms.Minimum: 0. |
beds | integer | Minimum beds.Minimum: 0. |
bathrooms | number | Minimum bathrooms.Minimum: 0. |
property_types | string | Comma-separated property types. |
amenities | string | Comma-separated required amenities. |
accessibility_features | string | Comma-separated accessibility features. |
host_languages | string | Comma-separated host language codes. |
instant_book | boolean | Require instant booking.Default: false. |
self_check_in | boolean | Require self check-in.Default: false. |
guest_favorite | boolean | Only Guest favorites.Default: false. |
luxe | boolean | Only Airbnb Luxe places.Default: false. |
page | integer | Results page, from 1 to 15.Default: 1.Range: 1 to 15. |
Response
A JSON object with search_metadata (request id, credits used and remaining) and the result data: organic_results. Groups and fields depend on the content of each page, so treat every field as optional.
Examples
cURL
curl "https://serpfast.com/api/v1/airbnb/search?q=Austin%2C+TX&adults=2&amenities=wifi&page=1" \
-H "Authorization: Bearer $SERPFAST_KEY"Node.js 18+
const params = new URLSearchParams({
"q": "Austin, TX",
"adults": 2,
"amenities": "wifi",
"page": 1
});
const res = await fetch(`https://serpfast.com/api/v1/airbnb/search?${params}`, {
headers: { Authorization: `Bearer ${process.env.SERPFAST_KEY}` },
});
const data = await res.json();
console.log(data);Python
import os, requests
params = {
"q": "Austin, TX",
"adults": 2,
"amenities": "wifi",
"page": 1
}
res = requests.get(
"https://serpfast.com/api/v1/airbnb/search",
params=params,
headers={"Authorization": f"Bearer {os.environ['SERPFAST_KEY']}"},
timeout=120,
)
print(res.json())