Airbnb Availability Scraper — Calendar & Open Dates
Pricing
from $0.26 / 1,000 results
Airbnb Availability Scraper — Calendar & Open Dates
Export an Airbnb stay's booking calendar night by night. Paste one room link or a list and get up to a year of dates, each marked free or taken, with whether a stay can start or end on it and the minimum and maximum nights the host allows.
Pricing
from $0.26 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Airbnb Availability Scraper
The Actor exports an Airbnb stay's booking calendar, one row per night: whether the date is free, whether it can actually be booked, whether a stay can start or end on it, and the minimum and maximum nights the host allows. Up to twelve months are returned for each stay.
This Actor returns availability, not prices. Airbnb does not publish nightly rates on its calendar to anyone who is not signed in, so no price column exists here. The Airbnb Search Scraper returns a total price when given check-in and check-out dates, and that is where pricing for a specific stay length comes from.
Accepted input
stay_ids is required and takes one or more stays. Room page links and bare numeric stay IDs are
both accepted, and the two may be mixed in one list. A link is reduced to its /rooms/<id>
segment, so the tracking query string Airbnb appends to shared links can be left in place.
months sets how many months to return, from 1 to 12, and defaults to 12. Unlike the paging limits
on the other Airbnb Actors, this one carries no speed penalty: the whole window arrives in a single
request per stay, so twelve months take no longer to fetch than one and only affect how many rows
are written.
calendarStart sets which month to begin from and defaults to the current month. Airbnb's calendar
is month-granular — any date is accepted, and the whole month containing it is returned rather than
a window beginning on that day.
{"stay_ids": ["https://www.airbnb.com/rooms/4518031","1348596009084608060"],"months": 12,"calendarStart": "2026-10-01"}
Response fields
Every row carries stay_id, stay_url, date, available, bookable, available_for_checkin,
available_for_checkout, min_nights, and max_nights.
available and bookable are not the same field twice. A night can be free while still being
impossible to book, because the stay it would form falls short of the host's minimum-nights rule.
Filtering on available alone will return dates that cannot be reserved.
available_for_checkin and available_for_checkout mark which nights can begin or end a stay.
Hosts commonly allow arrivals on some days of the week and not others, and a night that is free for
the middle of a stay is not necessarily one a booking can start on.
min_nights and max_nights are the host's stay-length rules for a booking beginning on that
night, and they vary across the calendar rather than being one setting for the listing.
{"stay_id": "4518031","stay_url": "https://www.airbnb.com/rooms/4518031","date": "2026-10-14","available": true,"bookable": true,"available_for_checkin": true,"available_for_checkout": true,"min_nights": 1,"max_nights": 7}
Why a stay can return nothing
Airbnb does not answer an unknown stay ID with a 404. It returns an ordinary response with an empty calendar, and a stay that has been delisted or taken off the market behaves the same way. Nothing in the response separates the two cases.
The Actor treats that as the real answer it is: the stay is logged as having no calendar and skipped, and no rows are written. It is not reported as an error, because a listing being gone is a legitimate outcome rather than a failure of the run.
The most common cause of an unexpected empty result is a propertyId used in place of a stay ID.
Both appear on Airbnb search results, both are long numbers, and only the stay ID resolves. The id
field returned by the Airbnb Search Scraper is always the correct one.
How far ahead the calendar goes
Airbnb publishes a limited booking window and it is not the same for every listing. Asking for twelve months does not guarantee twelve months back — a stay whose host has opened fewer will return fewer, with no error and no indication in the data itself.
Each stay is therefore logged with the window that actually came back, and the first and last dates
present in the rows are the authoritative answer to how far the calendar reaches. The months input
is a ceiling, not a promise.
Behaviour on partial results
A list input is processed to the end regardless of individual failures. A stay that cannot be fetched, whether removed or erroring upstream, is logged and skipped while the remainder continue, so one dead link in a list of fifty does not cost the other forty-nine.
Rows are therefore not guaranteed to cover every stay in the input list. Matching on the returned
stay_id is reliable; matching on position is not.
Related Actors
The Airbnb Search Scraper finds stays by destination when no IDs are held, and its id output
feeds directly into this Actor's stay_ids. It is also where prices come from, given check-in and
check-out dates.
The Airbnb Listing Scraper returns the stay itself — description, amenities, host, and review scores.
The Airbnb Reviews Scraper returns the individual guest reviews for the same stay.
