The fastest way to start scraping Airbnb at scale. Structured JSON for listing search with live pricing, full property detail, 12-month availability calendars, paginated reviews, and experiences — worldwide, with anti-bot bypass built in.
No credit card required · PAYG credits never expire
# Get full detail for an Airbnb listing
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
listing = client.airbnb.listing(
room_id="20669368"
){
"room_id": "20669368",
"title": "Charming barn conversion",
"room_type": "Entire home/apt",
"person_capacity": 2,
"rating": 4.8,
"review_count": 214,
"is_superhost": true,
"amenities": [ "Wifi", "Kitchen", "..." ],
"latitude": 52.084, "longitude": -1.768
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management.
/v1/airbnb/search/v1/airbnb/listings/{room_id}/v1/airbnb/listings/{room_id}/calendar/v1/airbnb/listings/{room_id}/reviews/v1/airbnb/experiences/v1/airbnb/experiences/{experience_id}Search any city or region by name, or target a precise map area with a bounding box. Set currency and locale per request — the same data model everywhere.
ScrapeBadger's Airbnb Scraper API handles everything Airbnb throws at automated requests — so your pipeline keeps running.
One API covers Airbnb stays and experiences: listing search with live pricing, full property detail, availability calendars, paginated reviews, plus experiences search and detail.
The calendar endpoint returns day-by-day availability for up to 12 months — bookable dates, check-in/out windows, and minimum/maximum nights per date, straight from Airbnb.
Every listing ships title, description, room type, guest capacity, full amenity and house-rule lists, host profile, per-category ratings breakdown, GPS coordinates, and all photos.
Pass a plain place name (geocoded server-side) or a precise map bounding box, with check-in/out dates, guests, price, bedrooms, beds, bathrooms and room-type filters. Paginate with a cursor.
Credits are only deducted for successful responses. If Airbnb returns an error or a request is blocked, no credits are consumed — and no Airbnb account or API key is needed.
Official SDKs for 12 languages — Python, Node.js, Go, Rust, PHP, C#, Java, Kotlin, Ruby, Swift, Dart, C++ — generated from one OpenAPI spec, or use the REST API directly.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
Get started in minutes with Node.js, Python, or plain HTTP requests.
The scrapebadger Node.js library wraps the Airbnb API with typed methods. Install with npm install scrapebadger, then start scraping Airbnb in a few lines of code.
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Search stays in Paris for specific dates
const results = await client.airbnb.search({
location: 'Paris, France',
checkIn: '2026-10-10',
checkOut: '2026-10-13',
adults: 2,
})
// Get a 12-month availability calendar for the first result
const first = results.listings[0]
const calendar = await client.airbnb.calendar({
roomId: first.roomId,
months: 12,
})
console.log(first.title, calendar.months.length)Common questions about scraping Airbnb with the API — Node.js, Python, or REST.
Search returns listing cards with room_id, title, rating and review count, nightly/total price, badges, coordinates and photos, plus a next-page cursor. Listing detail adds the full description, amenities, house rules, host profile, a per-category ratings breakdown and all photos. The calendar endpoint returns day-by-day availability for up to 12 months, and the reviews endpoint returns paginated guest reviews with host responses. Experiences search and detail cover Airbnb Experiences.
Airbnb is global and so is the API — search any city or region worldwide by name, or pass a map bounding box for precise areas. Set the currency parameter (USD, EUR, GBP, …) to control price display and locale for localized text. Defaults are USD and English.
Call /v1/airbnb/listings/{room_id}/calendar with a start month/year and the number of months (up to 12). Each day returns available, bookable, availableForCheckin, availableForCheckout and min/max nights. The room_id comes from a search result or an Airbnb room URL (airbnb.com/rooms/{id}).
Every endpoint — search, listing detail, availability calendar, reviews, experiences search and experience detail — costs 5 credits per request. Health checks are free. PAYG credits never expire; monthly subscriptions reduce the per-credit cost further. Failed requests are always free.
Install with `npm install scrapebadger`, initialise the client with your API key, then call client.airbnb.search({ location: "Paris, France", checkIn: "2026-10-10", checkOut: "2026-10-13" }) or client.airbnb.calendar({ roomId: "20669368", months: 12 }). The SDK returns typed objects, and search results expose pagination via nextPageCursor.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Airbnb endpoints — search, listings, calendar, reviews, and experiences — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · Stays & experiences