Search Airbnb listings
TL;DR
About
Handy when you want Airbnb results as rows you can sort instead of pins on a map. Say you rent out a two-bedroom flat in Alfama and want to price the first weekend of December. Search "Alfama, Lisbon" for 4 to 6 December with air conditioning and a kitchen required (amenity ids 5 and 8), and the flats nearby come back with the price Airbnb shows for those nights, the struck-through price if discounted, bedroom count, rating and coordinates. Sticking to the neighborhood rather than all of Lisbon keeps the list to flats a guest would weigh against yours. Leave the dates out and bedroom counts give way to each flat's next free dates. Prices arrive as text, often a whole phrase, in the language and currency Airbnb serves that browser (a browser in France lands on airbnb.fr, and a currency saved in its Airbnb settings counts too), so pull the number out before averaging.
Input
location requiredDestination as a person types it: a city, a region or a neighborhood, e.g. "Paris" or "Lisbon, Portugal".
ib optionalInstant Book only.
page optionalResult page, 18 listings each. Airbnb stops at about 15 pages: maxPage says how many this search has.
Default: 1pets optionalNumber of pets; 1 or more keeps only listings that allow pets.
adults optionalNumber of adults. Default 2.
Default: 2checkin optionalCheck-in date, YYYY-MM-DD. With checkout, prices are for those dates.
infants optionalcheckout optionalCheck-out date, YYYY-MM-DD.
children optionalcurrency optionalISO 4217 currency for prices. Default USD.
Default: "USD"min_beds optionaltier_ids optionalListing tiers, e.g. Luxe (values from list_search_filters).
amenities optionalAmenity ids, all required (values from list_search_filters, key amenities).
price_max optionalMaximum price, in currency.
price_min optionalMinimum price, in currency.
room_types optionalRoom types, e.g. ["Entire home/apt"] or ["Private room"] (values from list_search_filters).
kg_and_tags optionalProperty tags, e.g. hotel, beachfront (values from list_search_filters).
min_bedrooms optionalmin_bathrooms optionalguest_favorite optionalGuest favorites only.
host_languages optionalHost language codes, e.g. ["fr"] (values from list_search_filters).
bathroom_privacy optionale.g. "ENSUITE" for a private attached bathroom (values from list_search_filters).
neighborhood_ids optionalNeighborhood ids of this location (values from list_search_filters for the same location).
l2_property_type_ids optionalProperty type ids, e.g. house or apartment (values from list_search_filters).
Output
url requiredpage requiredcount requiredListings on this page.
listings requiredresolvedLocation requiredThe place Airbnb searched. precision is "city", "state" for a region, "country" when Airbnb could place the name only at country level (the listings then cover the whole country), "building" for an address.
maxPage optionaltotalCount optionalListings the whole search matches, as Airbnb counts them.
Example output
Shape only: placeholder values generated from the output schema, not a real run.
{
"url": "https://example.com/item/123",
"page": 1,
"count": 3,
"maxPage": 3,
"listings": [
{
"id": "abc123",
"lat": "2026-01-15T09:30:00Z",
"lng": 3.5,
"url": "https://example.com/item/123",
"name": "Example",
"price": "…",
"title": "Example",
"badges": [
"…"
],
"images": [
"…"
],
"rating": 3.5,
"details": [
"…"
],
"hostType": "…",
"imageUrl": "https://example.com/item/123",
"subtitle": "…",
"ratingLabel": "…",
"reviewCount": 3,
"availability": [
"…"
],
"originalPrice": "…",
"priceQualifier": "…"
}
],
"totalCount": 3,
"resolvedLocation": {
"name": "Example",
"bounds": {
"northeast": {
"lat": "2026-01-15T09:30:00Z",
"lng": 3.5
},
"southwest": {
"lat": "2026-01-15T09:30:00Z",
"lng": 3.5
}
},
"center": {
"lat": "2026-01-15T09:30:00Z",
"lng": 3.5
},
"precision": "…",
"canonicalLocation": "…"
}
}