Booking Hotel Availability Monitor · Day-by-Day
Pricing
from $6.00 / 1,000 hotel availability calendar retrieveds
Booking Hotel Availability Monitor · Day-by-Day
Paste Booking.com hotel URLs — get a day-by-day availability calendar with prices, free cancellation flags, and promo detection for up to 180 days ahead. No login needed.
Pricing
from $6.00 / 1,000 hotel availability calendar retrieveds
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Booking Availability Monitor · Hotel Calendar Tracker
Track day-by-day availability and nightly rates for Booking.com hotels — up to 180 days ahead. Paste a hotel URL, a city search URL, or both. Get a full availability calendar per hotel with prices, free cancellation flags, and promo detection.
No login. No API key. No Booking.com account needed.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Travel agency | Check whether specific hotels have rooms for a client's dates | Paste hotel URLs, set lookAheadDays to cover the travel window |
| Revenue manager | Monitor your own property's open dates and rack rates | Paste your hotel URL, schedule daily |
| Event planner | Find hotels open across a block of 7–14 dates for a group | Paste hotel URLs + search URL for the city |
| Competitor analyst | Map market-wide occupancy and rate trends in a resort | Paste a Booking.com search URL for the market |
| Deal hunter | Know when a sold-out hotel reopens or drops its price | Single hotel URL, scheduled weekly |
By default you get: hotel name, availability calendar (available/not + nightly rate per day), summary stats (avg/min/max price, occupancy rate), free cancellation and promo flags.
Quick start
Option A — Monitor specific hotels
- Open any hotel on booking.com and copy its URL
— e.g.
https://www.booking.com/hotel/fr/novotel-paris-tour-eiffel.html - Paste it into Booking.com URLs
- Set Days to look ahead and Number of adults
- Click Start
Option B — Monitor an entire market
- Go to booking.com, search for a city, apply any filters (stars, property type…)
- Copy the search result URL from your browser
— e.g.
https://www.booking.com/searchresults.html?ss=Marbella%2C+Spain - Paste it into Booking.com URLs
- Click Start — the actor collects all hotels from the search, then fetches a full calendar for each
You can mix hotel URLs and search URLs in the same run. Duplicates are removed automatically.
What you get
Overview (one row per hotel)
| Field | Description |
|---|---|
hotelName | Hotel name from Booking.com |
hotelId | Internal Booking.com property ID |
checkFrom / checkTo | Date range checked |
availableDays | Days with rooms available and a listed price |
totalDays | Total days checked |
occupancyRate | % of days with no available rooms |
firstAvailableDate | Earliest bookable date |
lastAvailableDate | Latest bookable date |
avgPricePerNight | Average nightly rate across available dates |
minPricePerNight | Lowest nightly rate in the window |
maxPricePerNight | Peak nightly rate in the window |
currency | Currency of all prices |
Calendar (nested in each row — calendar array)
| Field | Description |
|---|---|
date | Check-in date (YYYY-MM-DD) |
available | true if rooms are available and priced |
pricePerNight | Nightly rate for that date |
currency | Currency |
freeCancellation | true if free cancellation is offered |
hasPromo | true if a promotional badge is present |
Example output
{"hotelName": "Don Carlos Marbella","hotelId": 93697,"hotelUrl": "https://www.booking.com/hotel/es/don-carlos-beach-golf-resort.html","checkFrom": "2026-06-15","checkTo": "2026-07-14","availableDays": 25,"totalDays": 30,"occupancyRate": 16.67,"firstAvailableDate": "2026-06-15","lastAvailableDate": "2026-07-13","avgPricePerNight": 575.91,"minPricePerNight": 489.0,"maxPricePerNight": 643.77,"currency": "EUR","nbAdults": 2,"calendar": [{ "date": "2026-06-15", "available": true, "pricePerNight": 575.0, "currency": "EUR", "hasPromo": false, "freeCancellation": false },{ "date": "2026-06-16", "available": false, "pricePerNight": null, "currency": null, "hasPromo": false, "freeCancellation": false }]}
Set up automated availability alerts
Most users run this actor on a daily or weekly schedule to detect when sold-out hotels become available or when prices drop.
Step 1 — Schedule the run
In the Apify Console, open this actor → click Schedule → set frequency (daily at 08:00 is a good default).
Step 2 — Add a webhook
Go to Integrations → Webhooks → create one that fires on RUN_SUCCEEDED. Send results to Slack, email, or your own endpoint.
Step 3 — Compare runs over time
Each run produces a dataset. Export to Google Sheets or a database to track occupancy and price trends day over day.
How much does it cost to use Booking Availability Monitor?
This actor uses pay-per-event pricing — you pay per hotel availability calendar retrieved. Compute is cheap (HTTP-only, no browser).
| Scenario | Hotels | FREE | GOLD |
|---|---|---|---|
| Quick test — 2 specific hotels, 30 days | 2 | ~$0.07 | ~$0.06 |
| Small market — 20 hotels, 14 days | 20 | ~$0.25 | ~$0.17 |
| Full market — 50 hotels, 30 days | 50 | ~$0.55 | ~$0.35 |
| Large market — 200 hotels, 30 days | 200 | ~$2.05 | ~$1.25 |
Pricing tiers per hotel calendar (subscribers pay less):
| Tier | Per hotel | Run start |
|---|---|---|
| FREE | $0.010 | $0.05 |
| BRONZE | $0.009 | $0.05 |
| SILVER | $0.007 | $0.05 |
| GOLD | $0.006 | $0.05 |
| PLATINUM / DIAMOND | $0.005 | $0.05 |
No residential proxy needed — HTTP-only access to Booking.com's data layer.
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
urls | string[] | — | Booking.com hotel page URLs or search result URLs (auto-detected) |
lookAheadDays | integer | 30 | Days to check ahead (1–180) |
nbAdults | integer | 2 | Adults per room (affects pricing) |
proxyConfiguration | object | auto | Apify Proxy (required on cloud) |
API-only field (not shown in Console):
| Field | Type | Default | Description |
|---|---|---|---|
verboseLogs | boolean | false | Log each date result individually |
Notes
- Sold out vs closed:
available: falsemeans either no rooms are listed at that price point, or the hotel enforces a minimum stay that excludes 1-night bookings. - Currency: prices are in the currency Booking.com shows for the proxy location. Majority-currency filtering prevents mixed-currency averages.
- Hotel URL format: must be a direct hotel page —
booking.com/hotel/<country>/<slug>.html. Dates in the URL are ignored; the actor always queries from today. - Search URL: any Booking.com search page URL works. Filters (stars, property type, neighbourhood…) are preserved automatically.
- No browser required: HTTP-only. Fast and memory-efficient (512 MB).
Is it legal to scrape Booking.com?
This actor only accesses data that Booking.com makes publicly available to any visitor without a login. It does not bypass authentication, collect personal data, or perform actions a human user could not do manually. Ensure your use complies with Booking.com's terms of service, GDPR, and any applicable regulations.
Also available
- Booking.com Hotel Search Scraper — Search any destination and export all hotels with prices, ratings, policies, and coordinates. Beats the 1,000 result cap.
- Booking.com Price Monitor — Track rate trends for a market across 5 upcoming date windows (avg, min, max, discounts).
Local development
cd booking-availability-monitornpm install# Edit storage/key_value_stores/default/INPUT.json to match input_schema prefillapify run# Or use a custom input:apify run --input-file=./input.json
storage/key_value_stores/default/INPUT.json must include the urls field (required). The root input.json is for heavy local presets — it is ignored by apify run unless --input-file is used.