Airbnb listings with prices for your dates and guests, by place, URL or listing id. One row per listing: nightly rate, stay total, rating, bedrooms, coordinates, Superhost, photos. Optional: 24-month availability calendar with occupancy, reviews. Free: amenities, house rules, host, price breakdown.
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.2 — listing: blind-test fixes, 2026-10-12
No behaviour, output or price changed. Six Sonnet testers read the card and the input form for six real requests: 6 of 6 picked this actor and 6 of 6 wrote a valid first call. What they guessed at is now written down: the listing row keys (price_total, price_nightly, price_nightly_effective, price_breakdown, rating, is_superhost, url) in the form and the event text, that listings come in Airbnb's relevance order (for "the N cheapest" use priceMax or sort price_total), that the calendar carries availability only and no price per day, that relative dates count from the run day (weekday stays: a weekly schedule with multiples of 7), more currency examples (MXN, CHF, SGD, INR, THB), and that proxy and compute are included in the event price. Feature gaps the testers named, for a later release: Superhost and minimum-rating filters, a price sort.
1.2 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows.
Title: "Listings" added; "Prices, Availability Calendar" kept as one phrase (it ranks first for that phrase); "Occupancy" moved from the title into the description — the Airbnb Occupancy Rate Scraper is the answer to occupancy requests and holds those ranks.
Description now says what one row is (nightly rate, stay total, rating, bedrooms, coordinates, Superhost, photos), names the optional rows (24-month availability calendar with occupancy, reviews) and the free extras (amenities, house rules, host, price breakdown).
The input form is reordered: what to price, the stay and guests, how many listings and which rows (includeDetails, calendarMonths, maxReviewsPerListing, reviewsSort — the last two were below the fold), then filters. minBeds, minBathrooms, proxy and pacing moved lower; nothing was renamed or removed.
Every input now says what to pass, with an example, its default, what it changes and what it costs.checkIn says that without dates every listing row is billed at its displayed price; maxListingsPerQuery says filters apply before the cap; includeDetails lists what it adds and that it is free; calendarMonths says blocked and booked nights look the same; maxReviewsPerListing points to the Airbnb Reviews Scraper for rating filters and more than 200 reviews.
The pricing text lists what is never charged, that there is no start fee, and that a run stops at the maximum cost you set.
README: a section mapping common requests to the exact input and the status contract. seoDescription carries vacation rental, short term rental data and the Spanish, German, French, Portuguese and Italian words for prices.
1.2 — 2026-10-05
Fix: listings whose price Airbnb sends in its new format came back without a price. Airbnb now uses that format for every hotel and, in some cities, for ordinary rentals too — a few results per hundred in Lisbon, around half in Paris and Barcelona, most in New York and Tokyo. The actor read it as "no price", so those listing rows were delivered with price_total: null and were not billed. They now carry the same price fields as every other listing (price_total, price_original, price_nightly, price_nights, the breakdown), from a search and from listingIds / includeDetails alike. For a hotel this is Airbnb's "from" price for the stay: its cheapest room type. Billing is unchanged: one listing charge per row that carries a price.
2026-08-30
Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
Store listing: moved into the categories buyers actually browse (the old Business category has no Store page).
1.1 — 2026-08-26
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.
1.0 — 2026-08-26
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.