Skip to content

Guide

Airbnb API in 2026: is there a public one, and a key you can buy

Published October 23, 2026

Short answer: Airbnb has an API, but it is for software that serves hosts (property managers, channel managers and the like), accepted into one of its partner programs. It has no endpoint for searching listings the way a guest does. If what you want is live Airbnb listings with prices as JSON, a hosted API has to read Airbnb's search for you. Mine is the Airbnb Live API on RapidAPI: a place and two dates in, the listings Airbnb is showing right now out, with the stay total and the price per night as numbers. BASIC is free for 100 requests a month, PRO is $10 for 10,000. It is an independent API, not Airbnb's.

What does Airbnb offer developers?

Airbnb's API Terms of Service (last updated October 15, 2025, read 2026-10-23) open with what the API is for: "We make the API available to facilitate a variety of Host Services and other functionality on or in connection with use of the Airbnb Platform". The examples they list are connections to property management, channel management, operations management, connected device and hospitality providers, the Preferred Software Partner Program, and activity and tour booking management software. Each organisation gets the access scopes "appropriate to the API Program in which your organization participates".

The developer docs (developer.withairbnb.com, which developer.airbnb.com redirects to) match that. They cover a Homes API and an Activities API behind a Partner Portal: manage listings, sync availability checks during booking, reservations, messages, a sandbox. Every one of those starts from a listing or a booking you already manage. None of them searches Airbnb for a place and dates.

So the question splits in two. If you build software for hosts, Airbnb's partner programs are the door, and nothing below replaces them. If you want to read what a guest sees (which homes are listed in Lisbon for the first week of December, and what they cost), you need a search API, and that is what the rest of this page is about.

How do you get live Airbnb listings and prices as JSON?

One POST. The same RapidAPI key works two ways: straight on the Airbnb Live API listing (POST https://airbnb-live-api.p.rapidapi.com/search), or through our own front at api.flightpowers.com with "provider": "airbnb" in the body. Both bill to your Airbnb Live API subscription. Here is the second form in Python, the exact request captured below:

import os, requests

r = requests.post(
    "https://api.flightpowers.com/v1/hotels/search",
    headers={"x-api-key": os.environ["RAPIDAPI_KEY"]},
    json={
        "provider": "airbnb",
        "destination": "Lisbon, Portugal",
        "checkin_date": "2026-12-04",
        "checkout_date": "2026-12-07",
        "adults": 2,
        "currency": "EUR",
        "price_max": 200,                    # per night, Airbnb's own filter
        "room_types": ["Entire home/apt"],
        "min_rating": 4.7,                   # applied by us, after the search
        "sort": "price_asc",                 # orders this page, not all of Airbnb
    },
    timeout=60,
)
data = r.json()
if data.get("search_status") != "ok":
    # api.flightpowers.com answers a failed search with error / reason / message
    print(r.status_code, data.get("error") or data.get("search_status"),
          data.get("reason") or data.get("search_reason"), data.get("message") or data.get("detail"))
else:
    for p in data["properties"]:
        print(p["price_total"], p["currency"], p["price_per_night"], p["rating"], p["name"])

The curl form on the RapidAPI host takes the same body without provider:

curl -X POST "https://airbnb-live-api.p.rapidapi.com/search" \
  -H "Content-Type: application/json" \
  -H "x-rapidapi-host: airbnb-live-api.p.rapidapi.com" \
  -H "x-rapidapi-key: $RAPIDAPI_KEY" \
  -d '{"destination":"Lisbon, Portugal","checkin_date":"2026-12-04","checkout_date":"2026-12-07","adults":2,"currency":"EUR","price_max":200}'

What comes back?

This is a real response to the Python request above, captured on 2026-10-23 through api.flightpowers.com. It came back with the response header x-plan-metering: rapidapi:airbnb-live-api, meaning it was billed to the Airbnb Live API plan. It returned 24 listings; here is the envelope and the first one, trimmed to the fields worth reading first:

POST /v1/hotels/search · provider airbnb · captured 2026-10-23
{
  "provider": "airbnb",
  "destination": "Lisbon, Portugal",
  "checkin_date": "2026-12-04",
  "checkout_date": "2026-12-07",
  "destination_matched": {
    "name": "Lisbon",
    "airbnb_place_id": "ChIJO_PkYRozGQ0R0DaQ5L3rAAQ",
    "precision": "city",
    "page_title": "Over 1,000 homes in Lisbon"
  },
  "search_status": "ok",
  "search_reason": "ok",
  "filters_applied": {
    "price_max": {
      "value": 200,
      "applied_by": "airbnb",
      "post_filter": false
    },
    "min_rating": {
      "value": 4.7,
      "applied_by": "flightpowers",
      "post_filter": true
    }
  },
  "properties": [
    {
      "name": "Charming Bairro Alto - Night Life Central",
      "price_total": 340,
      "price_per_night": 60,
      "price_original_total": 398,
      "currency": "EUR",
      "nights": 3,
      "rating": 4.86,
      "rating_scale": 5,
      "review_count": 79,
      "bedrooms": 1,
      "latitude": 38.7121,
      "longitude": -9.14328,
      "link": "https://www.airbnb.com/rooms/1248522361456788764",
      "taxes_included": null,
      "available": true
    }
  ]
}

And the first 6 of the 24 rows, as they came back (sorted by price per night, which is what sort: price_asc does):

ListingRatingPer nightTotal, 3 nightsWas
Charming Bairro Alto - Night Life Central4.8660340398
N1 Lisbon Center Romance Apartment4.8480264—
DLG - Casa Castelo4.8285298372
St Christopher Lisbon 54.8887.33286—
BLisboa.citycenter.for44.9388.33289356
Heart of Alfama | Explore Lisbon on Foot4.7291198—
captured run · 2026-10-23

Prices in EUR. "Was" is price_original_total, the struck-through total on a discounted listing, and a dash is a null. Every row also carries price_string (Airbnb's own label, "{R0.price_string}" on the first one), review_count, beds, bedrooms, baths, latitude / longitude, image_url, link, provider_property_id and retrieved_at. A field Airbnb did not publish is null, never a made-up zero.

Read price_per_night with care. It is the nightly rate from Airbnb's own price breakdown (the "3 nights x …" line), and the other lines of that breakdown sit in the total, not in it. So nights times price_per_night need not add up to price_total: on the first row it is 3 × 60 against a total of 340. Use price_total for what the stay costs.

Which filters run at Airbnb, and which run after?

Most filters go into Airbnb's own search, so the page comes back already narrowed. Two run on our side, on the rows we parsed, and filters_applied in every response says which is which (applied_by: "airbnb" or "flightpowers", post_filter: true for ours).

ParameterRuns atWhat it does
destination, checkin_date, checkout_dateAirbnbRequired. Free-text place, the way a person types it
adults, children, infants, petsAirbnbGuests
currencyAirbnbPrices on every row come back in it (USD if you send none)
price_min, price_maxAirbnbPer night, in currency
min_bedrooms, min_beds, min_bathroomsAirbnbMinimums
room_typesAirbnbEntire home/apt, Private room, Shared room, Hotel room. Spell them exactly: any other value is refused with a 400
min_ratingus, afterOut of 5. Airbnb's search has no rating filter. A listing with no rating yet is dropped; a value that is not a number from 0 to 5 is refused
sortus, afterprice_asc, price_desc, rating_desc. Orders the page you got, not all of Airbnb
proxy_countryusTwo-letter code such as de. Sends the search out through a residential connection in that country. Filters nothing

A filter that belongs to our Booking.com API (filters, free_cancellation: true, hotel_name and the like) is refused with unsupported_for_provider, not silently dropped. One exception on api.flightpowers.com: budget_per_night is renamed to price_max for you (the X-Field-Aliased response header says so); on the RapidAPI host it is refused. A parameter name the API does not know at all (a typo) is ignored, so check filters_applied: a filter that is not listed there did not run.

What are the limits?

Stated plainly, before you build on it:

  • One page a search. A search returns one page of Airbnb's results, 20 to 30 listings in our tests (24 here, after the rating filter). In the capture above, Airbnb's own page title read "Over 1,000 homes in Lisbon". To cover a city, run several narrower searches (price bands, room types, bedrooms). There is no next-page parameter.
  • The price filter is per night. price_max: 200 above kept listings whose nightly line is under 200; the first row's stay total is 340 for 3 nights.
  • sort and min_rating work on that one page. They do not reach into listings Airbnb did not return.
  • No availability calendar. You get what Airbnb lists for the dates you send. available: true means the row has a price; when nights differs from your stay, Airbnb priced different dates. There is no per-listing calendar or minimum-night lookup.
  • No price on a single listing. POST /details (on the RapidAPI host) returns a listing's name, rating, coordinates, capacity and amenities, with price_total: null: Airbnb loads a listing page's price after the page opens. For a price, search.
  • Taxes are not established. taxes_included is always null; Airbnb's display total treats taxes differently by place.
  • Not in the MCP servers. Our Claude and ChatGPT connectors search Google Flights and Booking.com, not Airbnb.
  • Every call counts. A 400 from the API (a past date, a bad value) is a request on your plan like any other.

What does it cost?

Its own RapidAPI listing and its own subscription; one RapidAPI key works on it and on our flights and Booking.com APIs once you subscribe to each.

PlanPrice / moRequests$ / 1k reqOverageRate limit
BASICFree100 / mo—hard cap—
PRO$1010,000 / mo$1.00$0.001 / req60 / min
ULTRA$2535,000 / mo$0.71$0.0007 / req150 / min
MEGA$50100,000 / mo$0.50$0.0005 / req300 / min

Swipe the table sideways for overage and rate limits.

Every plan on this API includes all of its endpoints; Airbnb, Booking.com hotels and flights are separate subscriptions. Read from the live listing on 2026-10-23; the listing is authoritative.

That is $1.00 per 1,000 searches on PRO and $0.50 on MEGA. Every filter and every field is on every plan, the free one too.

Other Airbnb APIs, with their own prices

Units differ, so read them before the sticker: one request on mine is one search page of 20 to 30 listings; on StayAPI one request is one call (a search page holds 18 listings); HasData, SearchApi and DataCrawler price per request too. All prices below were read from each vendor's own page on 2026-10-23. I have not benchmarked their Airbnb responses.

StayAPI (stayapi.com). An Airbnb search by city or postal code, "18 per page, pages 1–15", plus per-listing endpoints mine does not have: a calendar, a nightly price breakdown for a listing and dates, reviews, photos and details. Their own note on search: "no availability confirmation or property-name lookup". Pricing: 50 free requests once, then $49 a month for 1,500, $149 for 10,000 or $249 for 25,000, $450 for 100,000. Best fit if your job starts from a listing you already know.

HasData (hasdata.com). An Airbnb Scraper API among many scrapers on one credit plan. Their pricing table prints $2.46 per 1,000 Airbnb requests on the entry plan billed annually, $0.99 and $0.69 on the larger ones, and 100 Airbnb requests a month on the free plan.

SearchApi (searchapi.io). An engine=airbnb search with its own filters, among them price_min, price_max, type_of_place, amenities and a bounding box, on the same plans as their Google and Booking.com engines: 100 free requests, then $40 a month for 10,000 searches ($4 per 1,000), and their pricing page bills only successful searches.

DataCrawler airbnb19 (on RapidAPI). Search by place, location or coordinates, property details, a checkout price, reviews and an availability check. BASIC is 10 requests a month, PRO $7.99 for 4,000, ULTRA $45 for 40,000, MEGA $200 for 700,000. At their MEGA that is about $0.29 per 1,000, below my MEGA's $0.50.

Where mine fits: numbers you can sort on (stay total, per-night line, the struck-through price, rating and its scale, coordinates) in one flat row, the price, room type and bedroom filters sent into Airbnb's own search, filters_applied telling you what ran where, and a $10 entry plan with 10,000 searches. Where it does not: more than one page of a city per search, calendars, and per-listing prices. Calendars are StayAPI's; per-listing prices are StayAPI's and DataCrawler's.

FAQ

Does Airbnb have a public API?

Not for searching listings. Airbnb's API Terms describe its API programs as connections for host services: property management, channel management, operations management, connected devices and hospitality providers, the Preferred Software Partner Program, and activity and tour booking software. Its developer docs cover a Homes API and an Activities API (listings, availability checks, reservations, messages). There is no guest-side search endpoint in that documentation (read 2026-10-23).

How do I get Airbnb listings and prices as JSON?

Use a hosted API that reads Airbnb's search results for you. FlightPowers' Airbnb Live API takes a place and two dates and returns the listings Airbnb is showing at that moment, with the stay total and the price per night as numbers. BASIC is free for 100 requests a month; PRO is $10 for 10,000. It is an independent API, not Airbnb's.

How many listings does one search return?

One page of Airbnb results: 20 to 30 listings in our tests. A city with a thousand homes needs several narrower searches (by price band, room type or bedrooms) to cover it.

Is the Airbnb price filter per night or per stay?

Per night, in the currency you send. price_min and price_max go to Airbnb's own search, so a stay total can be well above price_max.

Can I use the Airbnb API from Claude or another MCP client?

No. The FlightPowers MCP servers search Google Flights and Booking.com only; Airbnb is REST only.

Is this an official Airbnb API?

No. It is an independent API, not affiliated with, endorsed by, or sponsored by Airbnb, Inc.

Try one Airbnb search

BASIC is free for 100 requests a month, no card. PRO is $10 for 10,000 when you need more.

Free tier: 10 requests/month. No card to try.

Docs: the MCP servers.

Independent API. Not affiliated with, endorsed by, or sponsored by Airbnb, Inc.