airbnb.es APIairbnb.es ↗
Search Airbnb vacation rentals by location and price, then fetch full listing details including host info, house rules, and descriptions via two endpoints.
curl -X GET 'https://api.parse.bot/scraper/484854e0-e09f-48af-b6f9-f14d9074e8af/search_listings?limit=5&query=Madrid' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for vacation rental listings by location and optional price range. Returns paginated results with listing summaries including name, rating, price, and location coordinates.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return |
| queryrequired | string | Location to search (e.g. 'Madrid', 'Paris', 'Valencia') |
| cursor | string | Pagination cursor from a previous search response's next_cursor field |
| max_price | integer | Maximum price per night in EUR |
| min_price | integer | Minimum price per night in EUR |
{
"type": "object",
"fields": {
"listings": "array of listing summary objects with listing_id, name, rating, nightly_price, total_price, location, subtitle, and host_name",
"next_cursor": "string or null, pagination cursor for next page"
},
"sample": {
"data": {
"listings": [
{
"name": "Estudio",
"rating": "4,79 (683)",
"location": {
"latitude": 40.4972,
"longitude": -3.6089,
"__typename": "Coordinate"
},
"subtitle": "Estudio",
"host_name": null,
"listing_id": "1485479169831506548",
"total_price": "673 €",
"nightly_price": "138.60"
}
],
"next_cursor": null
},
"status": "success"
}
}About the airbnb.es API
The Airbnb.es API gives developers access to vacation rental data through 2 endpoints. Use search_listings to query listings by city or region with optional price filters, and get_listing_details to retrieve 8+ structured fields per property — including host name, superhost status, house rules, and an HTML-formatted description. Results are paginated and cover listings across European and global Airbnb markets.
Search Listings
The search_listings endpoint accepts a query string (such as 'Madrid' or 'Valencia') and returns an array of listing summaries. Each object includes listing_id, name, rating, nightly_price, total_price, location, subtitle, and host_name. You can narrow results by min_price and max_price (in EUR) and control page size with limit. Pagination is handled via next_cursor: when a response includes a non-null next_cursor value, pass it as the cursor parameter on the next call to retrieve the following page.
Listing Details
get_listing_details accepts a listing_id — available from the listing_id field in any search_listings result — and returns a richer profile. Fields include title, description (HTML-formatted), host_name, is_superhost, host_response_time, location_description, and a house_rules array containing individual rule titles. Fields may be null when the source listing does not provide them.
Data Scope and Freshness
The API reflects publicly visible listing data on Airbnb. Pricing returned by search_listings represents the nightly and total price shown in search results, denominated in EUR. Listings that require login to view or are restricted to certain locales may not appear. The airbnb.es domain serves a Spanish-locale version of Airbnb, so default search results and pricing may reflect that context, though the query param accepts any location string.
- Build a price comparison tool for short-term rentals across Spanish cities using
nightly_priceandratingfields. - Aggregate listing metadata for a travel planning app by combining
search_listingslocation queries withget_listing_detailsdescriptions. - Monitor host response time and superhost status changes for a property management dashboard using
host_response_timeandis_superhost. - Populate a curated city guide with Airbnb listings filtered by
min_priceandmax_priceto match specific budget tiers. - Collect
house_rulesdata across listings to research common hosting policies for a rental market analysis. - Drive a map-based search UI using
locationcoordinates fromsearch_listingsresults.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Airbnb have an official developer API?+
What does `get_listing_details` return that `search_listings` does not?+
get_listing_details returns fields not included in search summaries: description (HTML-formatted), house_rules (an array of rule title strings), is_superhost, host_response_time, and location_description. The search endpoint returns a lighter summary — name, rating, nightly_price, total_price, subtitle, and host_name — suitable for displaying lists, while the detail endpoint is intended for individual listing pages.How does pagination work in `search_listings`?+
next_cursor field. When it is non-null, pass that string as the cursor parameter in your next request with the same query and filter params to retrieve the next page. When next_cursor is null, you have reached the last page of results.Does the API return availability calendars or guest reviews?+
Are prices always returned in EUR?+
search_listings endpoint returns nightly_price and total_price values reflecting the pricing shown on the airbnb.es locale, which defaults to EUR. Currency conversion or multi-currency support is not currently part of the API. You can fork it on Parse and revise to target a different locale endpoint if you need pricing in another currency.