Dataset consistency and billing fixes.
- One listing shape for the whole dataset. Rows produced from
listingIds omitted every field Airbnb had not answered, while rows from locationQueries carried the full column set — so a mixed run exported ragged CSVs with columns appearing and disappearing. Every listing row now carries the same columns, with null where there is no value. available, cancellation_policy and unavailable_message now appear on all listing rows as documented.
- Calendars bill for exactly the months delivered. When a run's spending limit was reached part-way through a calendar, the full 12- or 24-month row was still delivered against a partial charge. The row is now trimmed to the months actually billed and its occupancy summary recomputed for them.
- A failed calendar or review no longer marks a listing job failed. For
listingIds inputs an add-on error flipped the job's status to error even though the listing row had been delivered and billed. Add-on failures are now counted in calendar_errors/review_errors on both paths, as they already were for searches.
- A malformed listing id now says so. It previously reported "give at least one place…", hiding which id was wrong.
- Bad input fails the run cleanly instead of crashing it. Non-numeric
adults, calendarMonths, maxListingsPerQuery, maxReviewsPerListing, sessions or perIp raised an unhandled error mid-run; out-of-range values were accepted silently. All numeric inputs are now checked against the ranges this page documents, reviewsSort and roomTypes must be listed values, locale must be a real code, and priceMax must be at least priceMin.
maxListingsPerQuery: 0 was silently treated as 40 and billed for 40 listings. Values outside 1–280 are now rejected before anything is fetched.
First public release.
- Airbnb prices for your dates and guests in any currency and language: search any place, paste Airbnb search or listing URLs, or give listing ids.
listing rows: total for the stay, base nightly rate and effective per-night price, discounts, rating and review count, bedrooms/beds/baths, coordinates, badges (Guest favorite, Superhost), free cancellation, pictures — paged up to Airbnb's ~280-result cap per search.
calendar rows: up to 24 months of day-by-day availability per listing with occupancy for the next 30/90/365 nights, next available date and typical minimum stay.
- Listing details on request: description, amenities, house rules, cancellation policy, category ratings, host, capacity, sleeping arrangement and the exact price breakdown for the dates (including "not available" for the dates).
- Reviews: newest, highest, lowest or most relevant first, with reviewer, date and host reply.
- Honest billing: pay per listing row that carries a price, per calendar month and per review; unknown places (Airbnb would otherwise return listings from all over the world), empty searches and status rows cost nothing; each listing and stay is billed once per run.
- No login, no cookies: the same public API the airbnb.com front-end uses, with automatic refresh of Airbnb's query hashes when they change.
- Relative dates for schedules; Console views for listings, calendar, reviews and run status.