Airbnb Search URL Parameters
An Airbnb search page reads its filters straight out of the URL's query string — amenities, property type, room type, bedroom/bed/bathroom minimums, price range, Superhost, dates. This is a structured reference for those parameters: the key, what kind of value it takes, a real example, and the known value sets where Airbnb uses a closed list.
The parameters CustomBNB's own search tool uses, not an exhaustive reverse-engineering of Airbnb's full API. CustomBNB only implements 4 of Airbnb's property types and 3 room types — Airbnb's own UI exposes roughly 50 property types in total, most undocumented. Where this table says a value set is “known,” it means known to us, not exhaustive.
This is documentation of URL syntax, not the search tool itself — for filtering by any of Airbnb's 590 hidden amenity codes, use the search tool. For what each amenity code means, see the amenity code dataset. For why Airbnb hides these filters in the first place, see this guide.
Worked example
Combining an apartment-only filter (l2_property_type_ids[]=2), one amenity code for Hot Tub (amenities[]=25 — see the amenity dataset for the full list) and a €50–€200 nightly price range:
https://www.airbnb.com/s/Europe/homes?place_id=ChIJhdqtz4aI7UYRefD8s-aZ73I&l2_property_type_ids%5B%5D=2&amenities%5B%5D=25&price_min=50&price_max=200
License & attribution
Free to use and redistribute, for any purpose, no restrictions. A link back to custombnb.app is appreciated, not required. Suggested citation:
Source: CustomBNB (custombnb.app/data/airbnb-search-url-parameters)
Parameter reference
| Parameter | Type | Example | Known values | Notes |
|---|---|---|---|---|
| place_id | single value (string) | place_id=ChIJhdqtz4aI7UYRefD8s-aZ73I | any Google Places ID | The search region as a Google Places ID. CustomBNB always searches within Europe. |
| checkin | single value (date, YYYY-MM-DD) | checkin=2026-09-01 | — | Omitted entirely for a dateless (flexible) search, along with checkout. |
| checkout | single value (date, YYYY-MM-DD) | checkout=2026-09-08 | — | Paired with checkin; both or neither. |
| room_types[] | repeatable array (string) | room_types[]=Entire home/apt | Entire home/apt, Private room, Shared room | Repeat the parameter once per value to select more than one. |
| l2_property_type_ids[] | repeatable array (integer) | l2_property_type_ids[]=2 | 1=House, 2=Apartment, 8=Guest House, 4=Hotel | Airbnb's internal property-type IDs. CustomBNB's search tool only offers these 4 — Airbnb's own UI exposes roughly 50 property types in total, most of them undocumented. |
| min_bedrooms | single value (integer) | min_bedrooms=2 | 0 and up | |
| min_beds | single value (integer) | min_beds=3 | 0 and up | |
| min_bathrooms | single value (integer) | min_bathrooms=1 | 0 and up | |
| amenities[] | repeatable array (integer) | amenities[]=25 | see the full 500+ code dataset | One of Airbnb’s numeric amenity codes. Repeat the parameter once per code to stack filters. |
| price_min | single value (integer) | price_min=50 | 0 and up | Per-night price floor, in the currency Airbnb has resolved for the visitor. |
| price_max | single value (integer) | price_max=200 | 0 and up | Per-night price ceiling. |
| superhost | boolean | superhost=true | true | Present and set to true to restrict to Superhost listings; omitted otherwise. |
12 parameters — download the full reference above.