Airbnb API
Stay search with the stay total and its price ledger — discounts, taxes and resort fees where present, not hidden behind a nightly rate — plus listing detail and the review summary. Each a single POST returning structured JSON. Airbnb publishes no API of its own.
50 free credits on signup. No card, nothing to apply for.
{ "data": { "url": "https://www.airbnb.com/s/Austin--TX/homes?checkin=2026-09-08&checkout=2026-09-13", "location": "Austin, TX", "resolved_location": "Austin, TX", "city": "Austin", "state": "Texas", "country": "United States", "place_precision": "city", "coordinates": { "latitude": 30.267152999999997, "longitude": -97.7430608 }, "map_bounds": { "northeast": { "latitude": 30.322557407579666, "longitude": -97.69750775700834 } } }, "response_time": 2540, "credits_used": 1, "credits_remaining": 4714}Live call against the real endpoint — 3 free runs, then it's your own key.
What is the Scavio Airbnb API?
The Scavio Airbnb API is a REST API that returns public Airbnb data as structured JSON. You send a location with check-in and check-out dates, or a listing id, to one of 3 POST endpoints with your API key, and get back stays with stay-total and per-night pricing plus the price ledger, listing detail with property type and capacity, or the review summary with category ratings and review tags.
- 3
- endpoints, all live in production
- 1
- credit per call, every endpoint
- 0
- public Airbnb APIs to apply for
Three endpoints, the price you actually pay
Search prices the stay, listing describes the place, the review summary shows where guests rate it high or low.
Stay search
POST /api/v1/airbnb/searchStay-total and per-night price with the price ledger: discounts, taxes and resort fees where present, which is where the gap between advertised and actual lives.
Listing detail
POST /api/v1/airbnb/listingDescription, property and room type, capacity and room counts — the attributes you need to compare like with like rather than by headline price.
Reviews
POST /api/v1/airbnb/reviewsThe review summary: overall rating and count, six category ratings, the star distribution, and review tags with how many reviews mention each and what they say.
All 3 Airbnb endpoints
Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Stay search/api/v1/airbnb/search | Stay-total and per-night price with the full price-item ledger, rating | 1 |
Listing detail/api/v1/airbnb/listing | Description, property and room type, capacity, room counts | 1 |
Reviews/api/v1/airbnb/reviews | Rating summary, category ratings, star distribution, review tags | 1 |
50 free credits on signup covers 50 calls of any kind. See plans
The total, not the nightly rate
Search returns a stay total and the price ledger behind it. The response on the right is a real capture, field names and all.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.airbnb.search(
location="Austin, TX",
check_in="2026-09-08",
check_out="2026-09-13",
)
print(res["data"]["resolved_location"], res["data"]["coordinates"])
# The ledger carries discounts, taxes and resort fees where present
for s in res["data"]["listings"]:
print(s["price"]["total"], s["price"]["price_items"]){
"data": {
"url": "https://www.airbnb.com/s/Austin--TX/homes?checkin=2026-09-08&checkout=2026-09-13",
"location": "Austin, TX",
"resolved_location": "Austin, TX",
"city": "Austin",
"state": "Texas",
"country": "United States",
"place_precision": "city",
"coordinates": {
"latitude": 30.267152999999997,
"longitude": -97.7430608
},
"map_bounds": {
"northeast": {
"latitude": 30.322557407579666,
"longitude": -97.69750775700834
}
}
},
"response_time": 2540,
"credits_used": 1,
"credits_remaining": 4714
}Why not go direct?
There is no first-party option here. Airbnb publishes no public API, so the alternative is building it.
Building it yourself
- Airbnb has no public developer API; partner access is for property-management software only
- Prices are stay-dependent, so every query is a fresh render rather than a cached document
- The price ledger is assembled client-side, which is what makes naive scrapes report the wrong total
- Aggressive bot detection makes self-scraping unreliable at any useful volume
Scavio Airbnb API
- One API key, issued at signup — nothing to apply for
- Stay-total and per-night price with the price ledger already attached
- Category ratings, star distribution and review tags, not just a rating that clusters near five
- Same key and JSON envelope as 30 other Scavio platforms
Read-only search. Scavio does not book stays or process payments.
What developers build with it
True-cost price comparison
Airbnb's nightly rate is not what a guest pays. The stay total comes with a price ledger of discounts, taxes and resort fees where present, so you can compare an Airbnb stay against a hotel on total cost rather than on the number in the search card.
searchShort-term rental market analysis
Track supply, price bands and property types across a city and watch them move by season or around an event. Coordinates and map bounds let you slice by neighbourhood.
search + listingRevenue management for hosts
Price your own listing against genuinely comparable properties — same room type, same capacity — rather than against whatever the search page happens to show first.
search + listingGuest sentiment analysis
Airbnb ratings cluster near five, so the average tells you little. The six category ratings, the star distribution and the review tags with their counts and summaries show where a listing is weak: cleanliness, check-in, location or value.
reviewsRegulatory and compliance research
Cities restricting short-term rentals need to know what is actually listed. Search plus listing detail gives supply by property type and capacity, with coordinates attached.
search + listingHow to get Airbnb data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Airbnb partner relationship — there is no public API to apply to.
- 2
POST a location and stay dates
Send {"location": "Austin, TX", "check_in": "2026-09-08", "check_out": "2026-09-13"} to https://api.scavio.dev/api/v1/airbnb/search. Prices are per stay, so the dates change the answer.
- 3
Read the price ledger, not the headline
The response wraps the payload under data and echoes the resolved location, coordinates and map bounds. Each stay carries a stay-total and per-night price plus the price ledger, with discounts, taxes and resort fees where present.
Airbnb API FAQ
What is the Scavio Airbnb API?
+
It is a REST API that returns public Airbnb data as structured JSON. Three POST endpoints cover stay search with the price ledger, listing detail with property type and capacity, and the review summary. You authenticate with a Scavio API key.
Who are these endpoints for?
+
Short-term rental analysts and revenue managers; hosts pricing against a real comp set; developers building travel or property features; AI agent builders wiring Airbnb in as an MCP or SDK tool; automation engineers running market scans inside n8n, Zapier or Make; and cities researching rental supply. Same API for all of them.
Does Airbnb have a public API?
+
No. Airbnb has no public developer API — its partner integrations are limited to approved property-management software under commercial agreement. For reading public listings and prices there is no first-party option at all.
Why does the price ledger matter?
+
Because the nightly rate on an Airbnb search card is not what you pay. The stay total is what a guest is charged, and the ledger shows the discounts, taxes and resort fees behind it where present, which is the only way to compare stays or compare against a hotel honestly.
How much does an Airbnb request cost?
+
Every Airbnb endpoint costs 1 credit. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
Do I get full review text or just ratings?
+
The review summary, not individual review text. The reviews endpoint returns the overall rating and total review count, the six category ratings, the five-bucket star distribution, and Airbnb's review tags, each with how many reviews mention it and a one-line summary of what they say. The reviews array is always empty and reviews_are_available is false.
Can I book a stay through it?
+
No. These are read-only search endpoints returning what Airbnb displays publicly. Booking requires an account and a checkout flow, which is a different kind of integration.
What does the response look like?
+
The API wraps the payload under a data key and adds credits_used and credits_remaining. A search echoes location, resolved_location, city, state, country, place_precision, coordinates and a map_bounds box, alongside the stays themselves.
Which languages and tools are supported?
+
Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.
Is scraping Airbnb data legal?
+
Scavio returns publicly available listing and rating data and does not authenticate as a user or make bookings. You remain responsible for how you use the data, including compliance with Airbnb's terms and with privacy law where host names are involved. Talk to your own counsel for your specific use case.
Explore more of Scavio
Best Airbnb listing and price APIs
Six options priced and tested, October 2026.
How to get Airbnb data
Nightly prices, the price ledger and listing detail, step by step.
Airbnb prices by ZIP
Prices for any city or ZIP without partner access.
Booking.com API
Property search, rate plans and reviews.
Google Hotels API
Properties and vendor rates.
Zillow API
Listings, price history and Zestimates.
Tripadvisor API
Places, ratings and full reviews.
MCP server
Every platform as a callable tool for agents.
Pricing
Credit packs and plans, no per-platform surcharge.
Start pulling Airbnb data today
50 free credits on signup, no card. Your first request is a POST with a city and dates.