Booking.com price API: hotel prices and price-drop alerts as JSON
If you need Booking.com prices in your own tool, whether for a travel site, a revenue manager watching competitors or a traveller waiting for a rate to fall, the first question is whether there is an API. Booking.com does have a partner API, but it is meant for approved affiliate and connectivity partners, not for reading search results on demand. For everyone else the options are copying prices by hand, building and maintaining a scraper, or using one that already works.
This page covers the third option: the Booking.com Price Scraper, an unofficial Booking.com price API that runs on Apify. You give it a city (or hotel links), a check-in date, number of nights and guests, and it returns one JSON record per hotel. It reads only the public search results that anyone sees without logging in.
What you get
- hotel name, link, area, star rating, review score, review label and number of reviews;
- price per night and total price in the currency you ask for, the original price and discount when Booking.com shows a deal badge;
- whether free cancellation and breakfast are included, the room type shown, and the position in the results;
- check-in and check-out dates, guests and rooms, so each record says exactly what was priced;
- with a fixed
monitorName, achangeTypeand the previous price per night, so you can alert when a rate drops by more than a threshold (10% by default); - a free destination summary at the end of each run.
A real example
This record comes from a real run on 2026-11-09 for Lisbon, one night from 2026-12-12, two adults, limited to 5 hotels (selected fields only):
{
"type": "hotel",
"location": "Lisbon",
"checkIn": "2026-12-12",
"checkOut": "2026-12-13",
"nights": 1,
"adults": 2,
"position": 1,
"name": "Lisbon Art Stay Hotel & Apartments",
"url": "https://www.booking.com/hotel/pt/lisbon-short-stay-apartments-baixa.en-gb.html",
"stars": 4,
"reviewScore": 8.8,
"reviewCount": 4792,
"dealBadge": "Limited-time Deal",
"pricePerNight": 79,
"originalPriceTotal": 159,
"discountPct": 50,
"currency": "EUR",
"freeCancellation": false,
"breakfastIncluded": false,
"changeType": null,
"scrapedAt": "2026-11-09T19:07:19.770Z"
}
Set up a price-drop alert in three steps
- Describe the stay: one or more locations, check-in date, nights, adults and rooms. You can also scan several dates in a row with
numberOfDatesanddaysBetweenDates, and filter by review score, stars, price range, free cancellation or breakfast. - Schedule the run in Apify Console, for example once a day, always with the same
monitorNameso the scraper remembers earlier prices. Turn ononlyChangesif you want only the hotels whose price moved. - Connect a channel: a Telegram bot, a Discord or Slack webhook, or your own webhook URL.
To call it from code:
curl -X POST "https://api.apify.com/v2/acts/euroscrape~booking-prices/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locations": ["Lisbon"], "checkInDate": "2026-12-12", "nights": 1, "maxHotelsPerLocation": 25}'
AI agents can call it through the Apify MCP server: https://mcp.apify.com?tools=euroscrape/booking-prices.
How much does it cost?
You pay per result, with no subscription: $0.003 to start a run and $0.002 per hotel returned (prices read from the Actor page on 2026-11-09). A test with 25 hotels costs about $0.053. A monitoring run that finds nothing new costs only the start. Apify subscribers get a 10 to 30 percent discount depending on the plan.
Frequently asked questions
Does Booking.com have a public API for hotel prices? It has a partner API for approved partners. We did not find a public one for reading search results on demand, so this tool is unofficial and reads public pages only. Check the site terms for your use case.
Is the price I get the one a guest would pay? It is the price shown in the search results for the dates, guests and currency you set on the day of the run (see scrapedAt). Taxes and fees may or may not be included, which is why the record has a taxesIncluded field, and the final price can change at checkout.
How is this different from Google Hotels data? Google Hotels compares several sites. This tool gives you Booking.com’s own listing prices and deal badges. For a multi-site view see the Google Hotels API guide.
Can I track one hotel over time? Yes: pass its Booking.com link in hotelUrls, schedule the run daily with the same monitorName, and read the price history from the runs.
Open Booking.com Price Scraper on Apify
Related pages: Google Hotels API, Vinted price alert and all guides.
Run these numbers yourself. Every EuroScrape Actor runs on Apify, pay per result, first results free. Open the Store page →
EuroScrape Data Letter
Five numbers a week from official registers and public prices, each one reproducible with an Actor. Free, one e-mail on Thursdays.
Archive and unsubscribe: buttondown.com/Euroscrape.