Airbnb Availability Calendar & Occupancy Scraper
Pricing
from $1.00 / 1,000 calendar days
Airbnb Availability Calendar & Occupancy Scraper
Airbnb availability calendar for any listing: 12 months of day-by-day availability, min/max nights, check-in rules, optional nightly prices, monthly occupancy, and booking-change monitoring. HTTP-only, no browser.
Pricing
from $1.00 / 1,000 calendar days
Rating
0.0
(0)
Developer
Patarapong Limvipaveeanan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
What does Airbnb Availability Calendar & Occupancy Scraper do?
Airbnb Availability Calendar Scraper takes Airbnb listing URLs and returns each listing's day-by-day availability calendar for up to 12 months: whether each date is open, whether guests can check in or out that day, minimum and maximum nights, and optionally the nightly price for upcoming bookable days. It also writes a monthly occupancy summary and can run in monitoring mode, outputting only the days that were booked or reopened since the last run.
It reads the calendar Airbnb already serves to its own website, over plain HTTP with no headless browser. One request returns a full year for a listing, so it's fast and cheap: a full year for one listing costs about $0.37. On Apify you also get API access, scheduling, integrations (Google Sheets, Slack, webhooks) and monitoring.
Why scrape Airbnb availability calendars?
- Occupancy and booking pace: see how many nights competitors have filled this month and next.
- Revenue management for hosts and property managers: compare your open dates, minimum stays and nightly rates against the listings you compete with.
- Investment analysis: estimate occupancy and nightly rates for an area before you buy.
- Booking alerts: schedule a daily run with Only output changed days and get just the newly booked or newly opened dates.
- Market research and data products: build occupancy datasets without browser automation.
How to scrape an Airbnb calendar
- Collect the listing URLs you care about (
https://www.airbnb.com/rooms/<id>, any Airbnb domain works). - Paste them into Room URLs and choose how many Months ahead you need.
- Tick Include nightly prices if you want nightly rates (the next 30 bookable days by default).
- Click Start. Download the calendar as JSON, CSV, Excel or HTML, or fetch it through the Apify API.
- For monitoring, save the run as a task, tick Only output changed days and schedule it daily.
Input
| Field | Description |
|---|---|
startUrls | Airbnb room URLs like https://www.airbnb.com/rooms/12345. Other URLs are skipped. |
months | Months of calendar to return, starting today (1-12, default 12). |
includePrices | Also return the nightly rate for days guests can check in (default off). Slower: one extra request per priced day. |
maxPricedDays | With prices on: price at most this many bookable check-in days per listing, from today (default 30). Airbnb slows down bursts of price requests, so large values make runs much longer. |
onlyChanges | Monitoring mode: output only days that became booked or reopened since this Actor's previous run on your account. The first run outputs nothing and saves the baseline. |
adults, currency | Guests and currency for prices (default 2, USD). |
proxyConfiguration | Optional. Usually not needed. Turn on Apify Proxy only if you see repeated HTTP 403 or 429 errors. |
{"startUrls": [{ "url": "https://www.airbnb.com/rooms/32422325" },{ "url": "https://www.airbnb.co.uk/rooms/1764409719853216298" }],"months": 6,"includePrices": true,"currency": "EUR"}
Output example
One row per listing per day:
{"listingId": "1764409719853216298","url": "https://www.airbnb.com/rooms/1764409719853216298","date": "2026-10-13","available": true,"availableForCheckin": true,"availableForCheckout": true,"minNights": 3,"maxNights": 365,"pricePerNight": 51.23,"currency": "USD","change": null}
And a monthly summary per listing in the run's key-value store, record OCCUPANCY (free, not charged):
{"32422325": [{ "month": "2026-11", "days": 30, "unavailableDays": 8, "occupancyPct": 26.7, "avgPricePerNight": 124.51 }]}
Data fields
| Field | Description |
|---|---|
date, available | Calendar date and whether it can be booked |
availableForCheckin, availableForCheckout | Whether a stay can start or end that day (Airbnb's check-in-day and gap rules) |
minNights, maxNights | Minimum and maximum stay starting that day |
pricePerNight, currency | Nightly rate for the shortest allowed stay from that day, from Airbnb's price breakdown (only with Include nightly prices, only for check-in days) |
change | booked or opened compared to the previous run, otherwise null |
occupancyPct (OCCUPANCY record) | Share of the month's days that are unavailable |
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
How much does it cost to scrape Airbnb calendars?
You pay $1 per 1,000 calendar days (plus a tiny start fee per run), nightly prices included, with no subscription. That's about $0.37 for a full year of one listing. In monitoring mode you only pay for days that changed. The Apify free plan's monthly credits cover thousands of days, so you can test for free. Set a maximum cost per run in the run options and the scraper stops cleanly when it's reached.
Tips
- Occupancy is an estimate. Airbnb's calendar shows a day as unavailable whether it's booked or blocked by the host, and this scraper can't tell the two apart. Hosts who block long periods will look fully occupied.
- Use Months ahead to pay only for the window you need: 3 months of calendar is a quarter of the cost of 12.
- Prices are for the shortest allowed stay starting that day, so weekly or monthly discounts aren't reflected.
- Removed, unlisted or invalid listings are skipped and not charged.
FAQ
Is it legal to scrape Airbnb? This scraper collects only publicly visible calendar data and doesn't log in. It doesn't collect host names, profiles or reviews. Check Airbnb's terms and make sure your use complies with the laws that apply to you, including GDPR.
Need listing details (title, rating, amenities) too? Use our Airbnb Rooms Scraper with the same URLs.
Something broke or you need another field? Open an issue on the Issues tab. Custom solutions are available on request.