Airbnb Availability Scraper — Calendar & Open Dates avatar

Airbnb Availability Scraper — Calendar & Open Dates

Pricing

from $0.26 / 1,000 results

Go to Apify Store
Airbnb Availability Scraper — Calendar & Open Dates

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

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

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.

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.