Airbnb API
- Data from Airbnb
Airbnb API for listing search, prices and availability calendars
Search Airbnb by destination or map area and get each listing with its trip price and breakdown. Then read a listing’s calendar: availability, stay rules and the price Airbnb itself quotes for the nights you choose. Structured JSON, priced per call.
1,000 free credits a month · Failed requests are free · Free during the beta
Endpoints and prices checked against the API on
Short-term rental pricing tools, investors and property managers watch Airbnb to see what nearby listings charge and how full their calendars are. Airbnb’s own API is for software partners that manage hosts’ listings, so reading the wider market means reading the public site. This API returns Airbnb’s search results with trip prices, ratings, coordinates and booking links, and each listing’s day-by-day availability with its check-in rules and minimum stays.
On Airbnb a nightly price only exists for a stay. Cleaning and service fees are folded into the nightly rate, so the same night costs less per night on a longer stay, and Airbnb’s availability calendar carries no prices at all. The calendar endpoint asks Airbnb for a real quote at each check-in date you pick, the same query the listing page’s booking box runs, and returns the dates, nights, subtotal, taxes and total with every priced day. Each priced night adds to the cost of the call; nights left unpriced add nothing.
What you get
properties[].id— the Airbnb listing id, the number in airbnb.com/rooms/<id>, used by the calendarproperties[].price— trip total, nightly rate and an itemized breakdown, with taxes when include_taxes is setrating, reviews, badges— guest rating, review count and labels such as Guest favouritegps_coordinates, accommodations— location, and bedrooms, beds and bathspagination.next_page_token— cursor for the next page of search resultsdays[]— one entry per day: available, check-in and check-out allowed, bookable, minimum and maximum nightsdays[].price— the stay quoted from that date: nights, accommodation subtotal, taxes, total and price per nightsummary— available, bookable and priced day counts, with the minimum, median and maximum nightly price
One call, structured JSON
POST /v1/airbnb/calendar — from 8 credits per successful call.
curl -X POST "https://api.scrapercompany.com/v1/airbnb/calendar" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currency": "CAD",
"adults": 2,
"max_price_quotes": 8,
"listing_id": "34397368",
"airbnb_domain": "airbnb.ca",
"months": 2,
"price_nights": "sample"
}'{
"listing_id": "34397368",
"link": "https://www.airbnb.ca/rooms/34397368",
"airbnb_domain": "airbnb.ca",
"currency": "CAD",
"requested_currency": "CAD",
"guests": {
"adults": 2,
"children": 0,
"infants": 0,
"pets": 0
},
"start_month": 10,
"start_year": 2026,
"months": 2,
"price_nights": "sample",
"max_price_quotes": 8,
"listing": {
"constant_min_nights": 2,
"max_guests": 2,
"pets_allowed": false,
"children_allowed": true
},
"summary": {
"days": 61,
"available": 35,
"available_for_checkin": 31,
"bookable": 34,
"priced": 8,
"min_price_per_night": 169.5,
"max_price_per_night": 178,
"median_price_per_night": 178,
"price_status": {
"check_in_not_allowed": 4,
"not_sampled": 23,
"priced": 8,
"unavailable": 26
}
},
"days": [
{
"date": "2029-03-16",
"available": false,
"available_for_checkin": false,
"available_for_checkout": false,
"bookable": false,
"min_nights": 2,
"max_nights": 27,
"closed_to_arrival": false,
"closed_to_departure": false,
"price_status": "unavailable"
},
{
"date": "2029-03-20",
"available": true,
"available_for_checkin": true,
"available_for_checkout": true,
"bookable": true,
"min_nights": 2,
"max_nights": 27,
"closed_to_arrival": false,
"closed_to_departure": false,
"price_status": "priced",
"price": {
"price_per_night": 178,
"currency": "CAD",
"check_in": "2029-03-20",
"check_out": "2029-03-22",
"nights": 2,
"accommodation": 356,
"taxes": 67.64,
"total": 423.64,
"price_per_night_text": "$178.00 CAD",
"total_text": "$423.64 CAD",
"display_total": "$424 CAD",
"price_basis": "nightly_all_in_before_taxes",
"display_style": "REGULATED_TOTAL",
"breakdown": [
{
"description": "2 nights x $178.00 CAD",
"price": "$356.00 CAD",
"extracted_price": 356,
"kind": "nights"
},
{
"description": "Taxes",
"price": "$67.64 CAD",
"extracted_price": 67.64,
"kind": "tax"
}
],
"provenance": {
"schema_version": 1,
"observation_id": "rateobs_9e60ad832506e113550acd2fe556ad55",
"collection_id": "ratecol_c328ca4cf9a747448dc64c2e80f86e25",
"observed_at": "2026-09-30T22:48:15.032Z",
"source": "airbnb",
"source_kind": "vacation_rental_stay_quote",
"collector": "scrapingme.ota.airbnb_calendar",
"source_property_id": "34397368",
"requested_market": "airbnb.ca",
"requested_currency": "CAD",
"returned_currency": "CAD",
"egress_mode": "direct",
"price_basis": "nightly_all_in_before_taxes",
"derivation": "airbnb_stay_average_nightly"
}
}
}
],
"metadata": {
"collection_id": "ratecol_c328ca4cf9a747448dc64c2e80f86e25",
"observed_at": "2026-09-30T22:48:15.032Z",
"calendar_operation": "PdpAvailabilityCalendar",
"upstream_requests": 9,
"price_quotes": 8,
"wire_bytes": 8913,
"request_time_taken": 4.69,
"parsing_time_taken": 0.001,
"total_time_taken": 1.52,
"egress": [
"direct"
]
}
}Endpoints and price per call
Credits per successful call, and what one call costs on the Starter, Growth, Scale plans. Failed requests cost nothing. See all plans.
| Endpoint | What it returns | Credits | Starter · Growth · Scale |
|---|---|---|---|
| Listing search POST /v1/serp/airbnb | Listings for a destination or map area, with trip prices, filters and a page cursor | 8 credits | $0.0078 · $0.0048 · $0.0032 |
| Priced calendar POST /v1/airbnb/calendar | 1 to 12 months of availability and stay rules, with Airbnb’s quotes for the nights you choose | from 8 credits | $0.0078 · $0.0048 · $0.0032 |
| Availability calendar (SERP-compatible) POST /v1/serp/airbnb_property_availability_calendar | The standard SERP API calendar fields, availability only by default, with prices on request | from 8 credits | $0.0078 · $0.0048 · $0.0032 |
Does Airbnb have a public API?
Not one for reading the market. Airbnb’s API is for its software partners, mainly property-management and channel-management tools that connect hosts’ listings, and Airbnb decides which partners get access after a data-security review. This API is independent of Airbnb and returns what airbnb.com shows a guest.
How do I find an Airbnb listing ID?
It is the number in the listing URL: for airbnb.com/rooms/34397368 the id is 34397368. A search returns it as properties[].id. Send it as listing_id to the priced calendar, or as property_id to the SERP-compatible calendar.
Why does the price per night change with the length of stay?
Airbnb folds cleaning and service fees into its nightly rate, so a longer stay spreads them over more nights. Each priced day in the calendar is the check-in of a real quote for stay_nights nights, by default that date’s own minimum stay, and the quote’s check-in, check-out and nights are returned with it. Nothing is interpolated between quotes.
How many nights can one calendar call price?
Availability covers 1 to 12 months in one call, and up to 92 check-in dates can be priced. With price_nights set to sample the quotes are spread evenly over the window (12 by default); all prices dates in order up to the cap; none returns availability only. Refused, failed and unsampled nights are not charged.
Can I keep my existing SERP API request for Airbnb?
Yes. Listing search also answers at GET /api/v1/search?engine=airbnb with the standard parameter names and response hierarchy, so only the host changes. The SERP-compatible calendar keeps property_id, start_month, start_year and months, and adds prices only when you set price_nights.
Do failed requests cost credits?
No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.
How do I get an API key?
Create an account on the sign-up page. Public sign-up is invite-only during the beta, so join the waitlist there and we will email you when your account is ready. The Free plan includes 1,000 credits a month, and the API is free while it is in beta. You create and rotate keys yourself in the dashboard.
More APIs on the same key
All APIsBooking.com API
Look a hotel up by name, then read what Booking.com shows a guest: a nightly price calendar, each room type with its rate plans, and the reviews with the property’s replies. Structured JSON, priced per call.
Expedia API
Look a hotel up by name, then read what Expedia shows a guest for one stay: every room type and rate plan with its total, nightly price and cancellation terms, and the guest reviews with the property’s replies.
Hotels.com API
Find a hotel’s Hotels.com id by name, then read what a guest on the Hotels.com site for their country sees: the headline price for a stay, every room type and rate plan, and the guest reviews.
Agoda API
Look a hotel up by name, then read every room type and rate plan Agoda shows a guest for one stay, with the stay total, discounts, meal plan and cancellation terms, in any of 23 currencies.
Tripadvisor API
Send a hotel’s Tripadvisor id and a stay, and get the offers Tripadvisor lists from Booking.com, Expedia, Hotels.com and other sites, each with what its price means. Read the hotel’s guest reviews and management replies from the same id.
Vrbo API
Search Vrbo for a destination and stay, then quote any rental for exact dates: Vrbo’s nightly figure, its fee-inclusive total, the payment model and whether the dates can be booked. Structured JSON, priced per call.
Start with 1,000 free credits a month
Join the waitlist and we will email you when your account is ready: your own API keys, 1,000 free credits a month, and the API is free during the beta.