Airbnb Availability Calendar ($1.5 for 1000 dates)
Pricing
from $1.50 / 1,000 dates
Airbnb Availability Calendar ($1.5 for 1000 dates)
Airbnb availability scraper that extracts daily calendar data — available dates, min/max nights, check-in/out and bookable status — from any Airbnb listing URL (any country domain). Track occupancy, monitor competitors, and power vacation rental & STR analytics. No API key needed.
Pricing
from $1.50 / 1,000 dates
Rating
0.0
(0)
Developer
Lofomachines
Maintained by CommunityActor stats
0
Bookmarked
30
Total users
8
Monthly active users
3 days ago
Last modified
Categories
Share
Airbnb Availability Scraper — Daily Calendar Data, No API Key Required
Turn any Airbnb listing URL into structured daily availability data. This Airbnb availability scraper extracts the full public booking calendar — available dates, minimum/maximum nights, check-in/check-out flags, and bookable status — for one or thousands of listings at once. No login, no Airbnb API key, no browser automation. Just paste a URL and get clean, ready-to-use Airbnb calendar data in seconds.
Works with every Airbnb country domain (.com, .it, .co.uk, .de, .fr, and more) — only the /rooms/<ID> part of the URL matters.
Table of contents
- Why use this Airbnb availability scraper
- Who it's for
- What you get
- How it works
- Input configuration
- Output data
- Handling invalid URLs
- Use cases
- Integrate with n8n, Zapier, and Make
- FAQ
- More data tools by Lofomachines
Why use this Airbnb availability scraper
- Daily granularity — one row per calendar day, not a vague "X nights booked this month" summary.
- Any Airbnb domain —
airbnb.com,airbnb.it,airbnb.co.uk,airbnb.de, etc. all work out of the box. - No Airbnb account, API key, or headless browser — a lightweight direct API call, which means faster runs and lower cost than browser-based Airbnb scrapers.
- Bulk-ready — paste one listing or thousands; the Actor scrapes them concurrently.
- Resilient to bad input — a mistyped URL doesn't crash the whole run (see Handling invalid URLs).
- Automation-friendly output — flat JSON rows that drop straight into Google Sheets, a database, a BI tool, or a no-code workflow like n8n, Zapier, or Make.
Who it's for
| Role | What they use it for |
|---|---|
| Airbnb hosts & property managers | Monitor their own listing's calendar and booking pace |
| Vacation rental agencies | Track availability across an entire portfolio |
| Revenue managers | Feed occupancy data into pricing and demand models |
| STR (short-term rental) analysts | Build market-level occupancy and seasonality datasets |
| Real estate investors | Evaluate a market's booking activity before acquiring a property |
| Travel & market intelligence teams | Power dashboards, reports, and competitor benchmarking |
What you get
One dataset row per calendar day, per listing:
| Field | Description |
|---|---|
listingId | Airbnb listing ID extracted from the URL |
url | The original listing URL you provided |
date | Calendar date (YYYY-MM-DD) |
available | Whether the date is available to book |
minNights | Minimum nights required for that date |
maxNights | Maximum nights allowed for that date |
availableForCheckin | Whether guests can check in on that date |
availableForCheckout | Whether guests can check out on that date |
bookable | Combined bookability flag |
scrapedAt | ISO timestamp of when the row was scraped |
How it works
The Actor calls the same public GraphQL calendar endpoint the Airbnb website itself uses to render the booking calendar — no headless browser required. That keeps runs fast, cheap, and less likely to trip anti-bot defenses than a full-page scraper. Datacenter proxies are used by default; switch to residential proxies in the input only if you start seeing IP-blocked errors.
Input configuration
Every field has a sensible default, so the minimum required input is a list of listing URLs.
{"listingUrls": [{ "url": "https://www.airbnb.com/rooms/1639027" },{ "url": "https://www.airbnb.it/rooms/1457828879261644144" }],"days": 90,"monthCount": 12,"startDate": "2026-07-01","currency": "EUR","locale": "it","timezone": "Europe/Rome","proxyConfiguration": {"useApifyProxy": true}}
| Field | Type | Default | Notes |
|---|---|---|---|
listingUrls | array (required) | — | One or more Airbnb room URLs, any country domain |
days | integer | 90 | How many days of availability to return per listing |
monthCount | integer | 12 | How many calendar months to request from Airbnb in one call |
startDate | date | today | Date picker in the UI; first day to include |
currency | string | EUR | Dropdown with common currencies, or type any ISO code |
locale | string | it | Dropdown with common locales, or type any locale code |
timezone | string | Europe/Rome | Dropdown with common IANA timezones, or type any zone |
proxyConfiguration | object | Datacenter (automatic) | Switch to residential only if you see IP-blocked errors |
Concurrency is fixed internally to a level that stays under Airbnb's IP-reputation radar, so it isn't exposed as an input.
Output data
A normal scraped day:
{"listingId": "1639027","url": "https://www.airbnb.com/rooms/1639027","date": "2026-08-06","available": false,"minNights": 2,"maxNights": 1125,"availableForCheckin": false,"availableForCheckout": false,"bookable": false,"scrapedAt": "2026-07-01T16:10:00.000Z"}
A row for a listing URL that couldn't be parsed (see next section):
{"listingId": null,"url": "https://www.airbnb.com/wishlists/12345","date": null,"available": null,"minNights": null,"maxNights": null,"availableForCheckin": null,"availableForCheckout": null,"bookable": null,"scrapedAt": "2026-07-01T16:10:00.000Z","error": "Invalid URL format in input (missing a numeric /rooms/<ID> path). Expected format: https://www.airbnb.<domain>/rooms/<ID> (any Airbnb country domain works, e.g. .com, .it, .co.uk), example: https://www.airbnb.com/rooms/1639027"}
Handling invalid URLs
A typo or a pasted search/wishlist link used to fail the entire run. It no longer does:
- Every
listingUrlsentry is validated independently. - A URL that isn't a valid
airbnb.<domain>/rooms/<ID>link does not stop the run. - Instead, it produces a single dataset row with
errorexplaining exactly what's wrong (and the expected format). - The same message is written to the run log, so you can spot bad input at a glance.
- The Actor still finishes with a SUCCEEDED status, and every valid URL in the same batch is scraped normally.
This makes the Actor safe to drive from spreadsheets, forms, or automation tools where you don't fully control the URL quality of every row.
Use cases
- Competitor calendar monitoring — track when nearby listings open up or fill their calendar to react on pricing.
- Occupancy trend analysis — build a rolling dataset of availability to estimate booking pace and seasonality.
- Revenue & pricing strategy — feed daily availability into a revenue management model alongside your own rates.
- STR market mapping — aggregate availability across a neighborhood or city to estimate market-wide occupancy.
- Investment due diligence — check how booked-up comparable listings are before acquiring a short-term rental property.
- Availability change alerts — run on a schedule and diff results to detect cancellations or new bookings.
Integrate with n8n, Zapier, and Make
The Actor can be triggered from any no-code/low-code platform through the Apify API, so results land directly in your existing automations without extra glue code.
The universal way to call it is the run-sync-get-dataset-items endpoint, which runs the Actor and returns the dataset rows in a single HTTP call:
POST https://api.apify.com/v2/acts/lofomachines~airbnb-availability-calendar-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>Content-Type: application/json{"listingUrls": [{ "url": "https://www.airbnb.com/rooms/1639027" }],"days": 30}
n8n
- Add an HTTP Request node (or the community Apify node) to your workflow.
- Set the method to
POSTand the URL to the endpoint above, with your Apify API token. - Pass the Actor input as the JSON body — map it from a previous node (e.g. a Google Sheet of listing URLs).
- Connect the response straight into the next node (Google Sheets, Slack, a database, an AI summarizer, etc.).
Zapier
- Add the Apify app to your Zap and connect your account with your API token.
- Use the Run Actor action, choose
lofomachines/airbnb-availability-calendar-scraper, and map thelistingUrlsfield from a previous step (e.g. new row in a spreadsheet). - Add a following step (Google Sheets "Create Row", Slack message, email digest) using the returned dataset items.
Make (Integromat)
- Add the Apify module (or an HTTP > Make a request module pointed at the endpoint above).
- Configure it to run this Actor with your
listingUrlsand optional fields. - Use an Iterator to loop over the returned dataset rows and route them into Sheets, Airtable, a CRM, or a notification module.
FAQ
Do I need an Airbnb account or API key? No. The Actor uses Airbnb's own public web calendar endpoint with sensible built-in defaults — just paste listing URLs and run it.
Does it work with airbnb.it, airbnb.co.uk, or other country domains?
Yes. Any airbnb.<domain>/rooms/<ID> URL works, regardless of the country extension.
What happens if I paste an invalid or non-Airbnb URL?
The run still finishes successfully. That URL gets a single dataset row with an error field describing the problem, and the same message appears in the log — see Handling invalid URLs.
How far into the future can I check availability?
Airbnb typically exposes up to 12 months of calendar data; use days and monthCount to control how much of that window you retrieve.
Do I need residential proxies? No — datacenter proxies are used by default and work for most listings. Switch to residential only if you start seeing IP-blocked errors at higher volumes.
Can I run this on a schedule to track changes over time? Yes. Use Apify's built-in Actor scheduler to run it daily or hourly and diff the results over time to detect cancellations, new bookings, or price/availability shifts.
More data tools by Lofomachines
More scrapers and lead-gen tools from the same developer — see the full catalog:
- Immobiliare.it Scraper – Listings & Agencies — Italian real estate listings and agency data, useful alongside Airbnb data for market and investment research.
- Fresh Lead Finder — find people actively looking for a service or product on social media in real time.
- Contact Extractor — pull emails, phone numbers, and social links from any website, handy for building host or agency outreach lists.
- Lead Sonar – Website Contact & Company Intelligence — turn a list of websites into enriched, sales-ready company and contact data.
- Universal E-commerce Scraper — turn any e-commerce category or product page into clean, structured data.
