Discover/Airbnb API
live

Airbnb APIairbnb.es

Search Airbnb Spain vacation rentals by location and price, then fetch host info, house rules, and descriptions for any listing ID.

Endpoint health
verified 2d ago
search_listings
get_listing_details
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the Airbnb API?

The Airbnb Spain API covers 2 endpoints for discovering and inspecting vacation rental listings on airbnb.es. Use search_listings to query any Spanish city or region with optional price filters and pagination, then pass a listing_id to get_listing_details to retrieve host details, superhost status, house rules, and a full HTML description. Each search result returns fields including nightly_price, total_price, rating, and GPS coordinates.

Try it
Maximum number of listings to return per page
Location to search for listings (city name or region, e.g. 'Madrid', 'Valencia', 'Paris')
Opaque pagination cursor from a previous response's next_cursor field
Maximum nightly price in EUR
Minimum nightly price in EUR
api.parse.bot/scraper/484854e0-e09f-48af-b6f9-f14d9074e8af/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/484854e0-e09f-48af-b6f9-f14d9074e8af/search_listings?limit=5&query=Madrid&max_price=300&min_price=50' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace airbnb-es-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: AirbnbES SDK — search listings and drill into details."""
from parse_apis.airbnb_es_api import AirbnbES, ListingNotFound

client = AirbnbES()

# Search for listings in Madrid with a price cap, bounded iteration.
for summary in client.listingsummaries.search(query="Madrid", max_price=150, limit=5):
    print(summary.name, summary.nightly_price, summary.rating)

# Drill into the first result for full details.
first = client.listingsummaries.search(query="Valencia", limit=1).first()
if first:
    detail = first.details()
    print(detail.host_name, detail.is_superhost, detail.location_description)
    for rule in (detail.house_rules or [])[:3]:
        print(rule)

# Fetch a listing directly by ID.
try:
    listing = client.listings.get(listing_id="19155752")
    print(listing.host_name, listing.description[:80] if listing.description else "")
except ListingNotFound as exc:
    print(f"Listing not found: {exc}")

print("exercised: listingsummaries.search / summary.details / listings.get / ListingNotFound")
All endpoints · 2 totalmissing one? ·

Search for vacation rental listings by location with optional price filtering. Returns paginated listing summaries including name, rating, nightly price, total price, and coordinates. Pagination uses an opaque cursor; results default to Airbnb's relevance ordering. Price filters are in EUR.

Input
ParamTypeDescription
limitintegerMaximum number of listings to return per page
queryrequiredstringLocation to search for listings (city name or region, e.g. 'Madrid', 'Valencia', 'Paris')
cursorstringOpaque pagination cursor from a previous response's next_cursor field
max_priceintegerMaximum nightly price in EUR
min_priceintegerMinimum nightly price in EUR
Response
{
  "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, opaque pagination cursor for next page"
  },
  "sample": {
    "data": {
      "listings": [
        {
          "name": "GuestReady - Moderno piso  5 minutos de la playa",
          "rating": "Nuevo",
          "location": {
            "latitude": 39.47878,
            "longitude": -0.32831
          },
          "subtitle": "GuestReady - Moderno piso  5 minutos de la playa",
          "host_name": null,
          "listing_id": "1701509192252372163",
          "total_price": "649 €",
          "nightly_price": "129.80"
        }
      ],
      "next_cursor": null
    },
    "status": "success"
  }
}

About the Airbnb API

Search Listings

The search_listings endpoint accepts a query string (city name or region such as Madrid, Barcelona, or Valencia) and returns a paginated array of listing summaries. Each object in the listings array includes listing_id, name, rating, nightly_price, total_price, location, subtitle, and host_name. Results default to Airbnb's internal relevance ordering. You can narrow results with min_price and max_price (both in EUR). Pagination is cursor-based: pass the next_cursor value from one response as the cursor parameter of the next call. A null value for next_cursor means you have reached the last page.

Listing Details

The get_listing_details endpoint takes a single listing_id (obtained from search_listings) and returns a richer profile of that property. Response fields include title, description (HTML-formatted), host_name, is_superhost, host_response_time, location_description, and an array of house_rules strings. The superhost flag and response time fields are useful for filtering properties by host quality without requiring a separate request.

Coverage and Scope

The API is scoped to airbnb.es and returns pricing in EUR. Queries can reference locations outside Spain (the query field is a free-text location string), but the data reflects listings surfaced by the Spanish Airbnb domain. Fields not returned include calendar availability, per-date pricing, reviews text, or photo URLs — only the fields documented in the response shapes above are guaranteed.

Reliability & maintenanceVerified

The Airbnb API is a managed, monitored endpoint for airbnb.es — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when airbnb.es changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official airbnb.es API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate nightly prices across Madrid neighborhoods to build a short-term rental price index.
  • Filter Barcelona listings by min_price / max_price and rating to power a curated travel recommendation widget.
  • Identify superhost properties in a target city using the is_superhost flag from get_listing_details.
  • Collect location and coordinate data from search results to plot rental density on a map.
  • Monitor listing availability and pricing changes over time by periodically polling search_listings for a fixed query.
  • Extract house_rules arrays to compare policy strictness (pet policies, check-in windows) across properties.
  • Feed host_response_time data into a host-quality scoring model for a vacation rental comparison tool.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Airbnb offer an official developer API?+
Airbnb shut down its public API program in 2016 and does not currently offer a developer API for listing search or property data. There is no public endpoint to register for.
What does `get_listing_details` return beyond what `search_listings` already provides?+
search_listings returns summary fields: name, rating, nightly_price, total_price, location, subtitle, and host_name. get_listing_details adds the HTML description, the house_rules array, is_superhost, host_response_time, and a location_description prose summary. You need the listing_id from a search result to call the detail endpoint.
How does pagination work in `search_listings`?+
The response includes a next_cursor field. Pass its value as the cursor parameter in your next request to retrieve the following page of results. When next_cursor is null, there are no further pages. The cursor is opaque — do not attempt to construct or decode it.
Does the API return calendar availability or per-date pricing?+
Not currently. The API returns nightly_price and total_price from search results, but does not expose calendar availability, blocked dates, or dynamic per-date pricing. You can fork this API on Parse and revise it to add an availability endpoint if that data is part of your use case.
Are guest reviews or review counts returned by either endpoint?+
The rating field is returned per listing in search_listings, but individual review text and review counts are not returned by either endpoint. You can fork this API on Parse and revise it to add a reviews endpoint that exposes per-review content.
Page content last updated . Spec covers 2 endpoints from airbnb.es.
Related APIs in TravelSee all →
airbnb.pt API
Search for rental listings in any location, view detailed information about properties including availability and guest reviews. Browse hundreds of accommodations to find the perfect place that fits your travel needs and budget.
airbnb.com API
Search Airbnb stays by destination and dates, then retrieve listing details, availability calendars, and recent guest reviews for a specific listing.
airbnb.co.uk API
Search Airbnb UK listings and access detailed information including pricing, availability calendars, and guest reviews. Plan your trips by comparing properties and experiences across locations with real-time data on rates and booking availability.
zh.airbnb.com API
Search for Airbnb accommodations and retrieve detailed information including property descriptions, guest reviews, availability calendars, and experience listings from the Chinese Airbnb platform. View comprehensive stay options with real-time availability data and verified guest feedback to help plan your next booking.
vrbo.com API
Search and browse vacation rental listings on Vrbo by location, date range, and guest count. Retrieve detailed information about specific properties including descriptions, amenities, photos, pricing, guest reviews, and availability — everything needed to compare rental options in one place.
booking.com API
Search for accommodations across Booking.com and instantly access detailed property information including pricing, amenities, and guest reviews to compare your options. Find the perfect stay by filtering thousands of listings and retrieving comprehensive details like room descriptions, availability, and booking terms all in one place.
idealista.com API
Access data from idealista.com.
spotahome.com API
Search rental properties on Spotahome and retrieve detailed listing information including pricing, availability, amenities, pet policy, and landlord profiles. Filter by city, budget, dates, and more to explore mid- to long-term rental options across Spotahome's global inventory.