Booking Scraper API
Extract structured accommodation data from public Booking pages as JSON. Send a accommodation URL and receive the fields exposed by the target page.
Decide before you build
- Endpoint
- POST /scrape/booking
- Scrapers
- Booking accommodation pages
- Cost
- from 1 credit / call
- Free plan
- 500 credits / month
- Call pattern
- sync, POST
- On failure
- credits refunded
- Response format
- JSON
- Concurrency
- by plan tier
Booking & Travel requests are synchronous. Cost depends on the options selected for the request.
Try the Booking scraper on your own targetRun a request against a public accommodation page and inspect the JSON before you integrate.
Open the live testWhat you get back
accommodation dataBooking data in JSON
Retrieve the accommodation information exposed by the public Booking page.
- Accommodation name, description and images
- Rates, currency and availability when available
- Location, facilities and room information
- Ratings and booking details exposed publicly
Request optionsControl how the page is collected
Use rendering or proxy options only when the target requires them.
- JavaScript rendering with useChrome
- Premium proxy and country targeting
- Public URL input; no account login required
- Structured JSON in the same response
Call the Booking scraper
Send a public accommodation URL to the Booking & Travel endpoint. The API returns the result in the same response.
# POST - scrape a public accommodation page
curl -X POST "https://api.scraping-bot.io/scrape/booking" \
-u "yourUsername:yourApiKey" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hotel/example",
"options": {
"useChrome": false,
"premiumProxy": false
}
}'Code example
Authenticate with your ScrapingBot username and API key, then read the returned JSON.
const auth = "Basic " + Buffer.from("yourUsername:yourApiKey").toString("base64");
const response = await fetch("https://api.scraping-bot.io/scrape/booking", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: auth },
body: JSON.stringify({ url: "https://example.com/hotel/example", options: { useChrome: false, premiumProxy: false } }),
});
const result = await response.json();Run this call in two minutesCreate an account, copy your API key, then use the example above.
Get your API keyRequest parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — | Full public page URL, including https://. |
options.useChrome | boolean | false | Render JavaScript when the target page requires a browser. |
options.premiumProxy | boolean | false | Use a premium proxy for targets that require it. |
options.proxyCountry | string | — | Country targeting with a premium proxy. |
Response example
Example of the structured data returned for a public Booking accommodation page. Available fields vary with the target page.
{
"data": {
"image": "https://cf.bstatic.com/xdata/images/hotel/max1024x768/47059461.jpg?k=cb2ca47ff74b9fd72ba4ff8f05309585311e00b4cf4b740aef790567690a37ef&o=&hp=1",
"images": [
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/47059461.jpg?k=cb2ca47ff74b9fd72ba4ff8f05309585311e00b4cf4b740aef790567690a37ef&o=&hp=1",
"https://cf.bstatic.com/xdata/images/hotel/max500/47057760.jpg?k=5712433615383ee5f11dbc021d53590657154d974c640ea21c34f472f9c28d49&o=&hp=1",
"https://cf.bstatic.com/xdata/images/hotel/max500/47057752.jpg?k=f20bc84cc7816657fddd1764b48d73908eb41287f76f044a9e30d92711c711cc&o=&hp=1",
],
"title": "Hôtel de l'Océan, La Rochelle (tarifs actualisés 2024)",
"price": 42,
"currency": "EUR",
"siteURL": "https://www.booking.com/hotel/fr/de-l-ocean-la-rochelle.fr.html?aid=304142&label=gen173nr-1FCAEoggI46AdIM1gEaE2IAQGYAQ24ARfIAQzYAQHoAQH4AQyIAgGoAgO4Ao_1nLYGwAIB0gIkYzM2ZDY4ZDAtNmQzYy00YjBhLTlkN2MtODYwMTg5MDIzM2Ni2AIG4AIB&sid=ea3b770484f2dd18f43261be1721027e&all_sr_blocks=23803703_363690028_0_2_0%3Bcheckin%3D2024-10-04%3Bcheckout%3D2024-10-08%3Bdest_id%3D-1438604%3Bdest_type%3Dcity%3Bdist%3D0%3Bgroup_adults%3D2%3Bgroup_children%3D0%3Bhapos%3D12%3Bhighlighted_blocks%3D23803703_363690028_0_2_0%3Bhpos%3D12%3Bmatching_block_id%3D23803703_363690028_0_2_0%3Bno_rooms%3D1%3Breq_adults%3D2%3Breq_children%3D0%3Broom1%3DA%2CA%3Bsb_price_type%3Dtotal%3Bsr_order%3Dpopularity%3Bsr_pri_blocks%3D23803703_363690028_0_2_0__36580%3Bsrepoch%3D1724333525%3Bsrpvid%3D4deb5d9916ca0073%3Btype%3Dtotal%3Bucfs%3D1&checkin=2024-10-04&checkout=2024-10-08",
"siteHtml": null,
"statusCode": 200,
"htmlLength": 1230358,
"captchaFound": false,
"isHtmlPage": true,
"host": "www.booking.com",
"rooms": [
{
"name": "Chambre Double Standard - Côté Port ",
"id": 23803701,
"rooms": [
{
"price": {
"current": 402,
"original": null,
"discount": null,
"current_nightly_price": 100
},
"currency": "EUR",
"maxPersons": 2
}
],
"facilities": [
"Vue sur la mer",
"Vue sur un site d'intérêt",
"Climatisation",
"Salle de bains privative dans l'hébergement",
"Télévision à écran plat",
"Insonorisation",
"Wi-Fi Gratuit",
"Douche",
"Toilettes",
"Serviettes",
"Bureau",
"Téléphone",
"Fer à repasser",
"Chauffage",
"Sèche-cheveux",
"Réveil",
"Armoire ou penderie",
"Papier toilette",
"Gel hydroalcoolique"
]
}
],
"reviews": {
"rate": 8.4,
"count": 843,
"detailsRating": [
{
"title": "Personnel",
"rate": 9.424698829650879
},
{
"title": "Équipements",
"rate": 8.155048370361328
},
{
"title": "Propreté",
"rate": 9.019783973693848
},
{
"title": "Confort",
"rate": 8.79227066040039
},
{
"title": "Rapport qualité/prix",
"rate": 8.713854789733887
},
{
"title": "Situation géographique",
"rate": 9.689384460449219
},
{
"title": "Connexion Wi-Fi gratuite",
"rate": 8.035714149475098
}
],
"list": [
{
"username": "Seznec",
"title": "",
"rating": 9,
"positiveReview": "Excellent accueil et idéalement placé, l'hôtel de l'Océan est un établissement que je recommande chaudement.",
"negativeReview": "Rien"
},
{
"username": "Sylvie",
"title": "",
"rating": 9,
"positiveReview": "L'accueil et la gentillesse du personnel ainsi que la situation sur le vieux port en plein cœur du quartier historique.",
"negativeReview": "L'unique bémol vient du fait qu'il n'y ait pas d'ascenseur mais les escaliers sont faciles à monter."
}
]
},
"description": "Construit en 1646, l'Hôtel de l'Océan se trouve dans le quartier du Vieux Port, au cœur de La Rochelle. Il propose des chambres insonorisées avec climatisation et connexion Wi-Fi gratuite.\nCertaines chambres offrent une vue sur le golfe de Gascogne et le port.\nUn petit-déjeuner continental est servi sur la terrasse, en chambre ou dans la salle prévue à cet effet.\nL'Hôtel de L'Océan est situé à 2 minutes à pied des principaux sites touristiques de La Rochelle. L'Aquarium La Rochelle est accessible en 15 minutes de marche. Vous pourrez rejoindre l'île d'Aix, Fort Boyard ainsi que les îles de Ré et d'Oléron grâce aux navettes en bateau disponibles en face de l'hôtel."
}
}Credits, failures and limits
| Case | Credits | Notes |
|---|---|---|
| Standard request | from 1 credit / call | Current plans start at this rate. |
| JavaScript rendering | Additional credits | Enable only when the target requires it. |
| Premium proxy | Additional credits | Use for targets that require a premium proxy. |
| Unsuccessful request | Not deducted | Only successful requests count towards the monthly limit. |
Booking & Travel API or Raw HTML scraper?
| Booking & Travel API | Raw HTML scraper | |
|---|---|---|
| Endpoint | /scrape/booking | /scrape/raw-html |
| Returns | Structured accommodation JSON | Rendered page HTML |
| Flow | One synchronous request | One synchronous request |
| Starting cost | from 1 credit / call | from 1 credit / call |
| Use it when | You need parsed accommodation fields | You need your own extraction logic |
Questions about the Booking API
- Does the Booking scraper access private data?
- No. This guide covers public accommodation pages and does not require signing in to a Booking account.
- Are all fields always available?
- No. Returned data depends on what the public Booking page exposes and what the extractor supports.
- Can I collect multiple pages at once?
- Each request takes one public URL. Submit one request per page you need to collect.
- When should I use a premium proxy?
- Use it only when a target requires it or when you need country targeting for a public page.
Source: ScrapingBot API documentation.
Other booking & travel scrapers
Browse the Booking & Travel category for the complete list of guides. Visit the ScrapingBot blog for implementation guides.
Trusted by developers using Booking & Travel data.
Customer reviews apply to ScrapingBot's service overall, not specifically to this scraper.
Start scraping Booking today
500 free credits every month. No card required, cancel anytime.
