Booking Hotel Photos Scraper
Pricing
Pay per event
Booking Hotel Photos Scraper
Extract full public Booking.com hotel galleries into structured photo rows with image URLs, captions, hotel IDs, categories, and order.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract full public photo galleries from Booking.com hotel pages. This actor accepts direct Booking.com hotel URLs and returns one dataset row per public image, including the hotel name, hotel ID, high-resolution image URL, thumbnail URL, caption, category, order, and scrape timestamp.
What does Booking Hotel Photos Scraper do?
Booking Hotel Photos Scraper turns public Booking.com hotel gallery pages into a structured image dataset. Instead of copying thumbnails manually, you can provide one or many hotel URLs and export clean rows for every gallery image the actor can see.
Who is it for?
- 🏨 Hotel content teams checking how property media appears on Booking.com
- ✈️ Travel affiliate publishers building destination pages
- 🧑💻 OTA data teams monitoring property media coverage
- 📊 Market researchers comparing visual merchandising across hotels
- 🔎 SEO teams auditing hotel image assets and captions
Why use this actor?
Booking.com hotel pages often contain many public property photos, but broad hotel scrapers usually return only one representative image. This focused scraper is built for photo workflows where every gallery image matters.
What data can you extract?
| Field | Description |
|---|---|
| hotelUrl | Booking.com hotel URL supplied in the input |
| hotelName | Hotel name detected on the page |
| hotelId | Booking hotel identifier when available |
| photoUrl | Normalized image URL |
| highResPhotoUrl | Best high-resolution URL the actor can derive |
| thumbnailUrl | Original thumbnail/source image URL when different |
| caption | Alt text, title, or gallery caption when available |
| category | Gallery category or label when available |
| photoOrder | Photo order in the extracted gallery |
| sourcePageUrl | Actual page URL where the image was observed |
| imageHost | Image host, usually bstatic.com |
| width / height | Dimensions parsed from the Booking image URL when available |
| scrapedAt | ISO timestamp for the extraction |
How much does it cost to scrape Booking hotel photos?
The actor uses pay-per-event pricing: a small run-start charge plus a per-photo charge for each saved dataset row. Keep maxItems low for first tests, then increase it for larger gallery exports after confirming the output matches your workflow.
How to use Booking Hotel Photos Scraper
- Open the actor on Apify.
- Paste one or more direct Booking.com hotel URLs into Booking hotel URLs.
- Set Maximum photos total and Maximum photos per hotel.
- Run the actor.
- Export the dataset as JSON, CSV, Excel, or through the Apify API.
Input example
{"startUrls": [{ "url": "https://www.booking.com/hotel/gb/the-savoy.html" },{ "url": "https://www.booking.com/hotel/us/the-manhattan-at-times-square.html" }],"maxItems": 100,"maxPhotosPerHotel": 80,"language": "en-us","proxyCountryCode": "US","useResidentialProxy": false}
Output example
{"hotelUrl": "https://www.booking.com/hotel/gb/the-savoy.html?lang=en-us","hotelName": "The Savoy","hotelId": "280149","photoUrl": "https://r-xx.bstatic.com/xdata/images/hotel/max1280x900/example.webp","highResPhotoUrl": "https://r-xx.bstatic.com/xdata/images/hotel/max1280x900/example.webp","thumbnailUrl": "https://r-xx.bstatic.com/xdata/images/hotel/608x352/example.webp","caption": "The Savoy","category": "main","photoOrder": 1,"sourcePageUrl": "https://www.booking.com/hotel/gb/the-savoy.html","imageHost": "r-xx.bstatic.com","width": 608,"height": 352,"scrapedAt": "2026-06-26T02:41:25.988Z"}
Supported URLs
Use direct Booking.com hotel detail URLs such as:
https://www.booking.com/hotel/gb/the-savoy.htmlhttps://www.booking.com/hotel/us/the-manhattan-at-times-square.htmlhttps://www.booking.com/hotel/fr/ritz-paris.html
Current limitations
The v1 actor intentionally avoids broad Booking.com search crawling. It does not discover hotels from a city query. Use our related Booking.com Scraper for search and hotel discovery, then pass selected hotel URLs into this photo scraper.
Tips for best results
- Use direct hotel pages, not search result pages.
- Start with 20–100 photos to validate output and cost.
- Keep
useResidentialProxydisabled first; enable it only if Booking.com challenges your URLs. - Use English
language: "en-us"when you want English hotel names and captions. - Increase
maxPhotosPerHotelfor large luxury hotels with extensive galleries.
Integrations
You can connect the actor to:
- Google Sheets for hotel media QA lists
- Airtable for travel content planning
- S3 or GCS for downstream image workflows
- Data warehouses for competitive visual analysis
- Apify webhooks for recurring hotel photo monitoring
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/booking-hotel-photos-scraper').call({startUrls: [{ url: 'https://www.booking.com/hotel/gb/the-savoy.html' }],maxItems: 50});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_APIFY_TOKEN')run = client.actor('automation-lab/booking-hotel-photos-scraper').call(run_input={'startUrls': [{'url': 'https://www.booking.com/hotel/gb/the-savoy.html'}],'maxItems': 50,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~booking-hotel-photos-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.booking.com/hotel/gb/the-savoy.html"}],"maxItems":50}'
MCP usage
Use this actor from Claude Code or Claude Desktop through Apify MCP:
https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper
Add the Apify MCP server in Claude Code:
$claude mcp add apify "https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper"
Claude Desktop JSON configuration example:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper"}}}
Example prompts:
- “Scrape all public photos from these Booking.com hotel URLs and return a CSV.”
- “Monitor whether this hotel added new Booking.com gallery images.”
- “Compare the number of gallery photos for these competitor hotels.”
Legal and ethical use
This actor extracts publicly visible hotel photo metadata and public image URLs from Booking.com pages. You are responsible for using the output in accordance with Booking.com terms, copyright law, and applicable data protection rules. Do not use the actor for private account data or restricted content.
Legality checklist
Use the scraper only for public hotel pages, respect Booking.com terms, avoid republishing copyrighted images without permission, and keep crawl volumes reasonable for your legitimate business workflow.
Troubleshooting
Why did I get zero photos?
Check that the input URL is a direct Booking.com hotel detail page. If the URL is valid but Booking.com challenges the run, enable useResidentialProxy and try a smaller maxItems value.
Why are captions missing?
Booking.com does not expose captions for every image. The actor fills captions from alt text, title attributes, or gallery labels when available.
Related scrapers
- Booking.com Scraper — discover hotels by destination and extract prices, ratings, availability, and one representative photo.
- Booking Reviews Scraper — extract Booking.com guest reviews.
FAQ
Can it download image files?
The actor returns image URLs. You can use the dataset URLs in your own downloader, storage pipeline, or image processing workflow.
Can it scrape search results?
Not in v1. This actor is URL-based to keep the workflow focused, reliable, and cost-controlled.
Can I run it on hundreds of hotels?
Yes, but start with a small sample and scale gradually. Use maxItems and maxPhotosPerHotel to control spend.
Does it require login?
No. It is designed for public Booking.com hotel pages only.
Changelog
- 0.1 — Initial URL-based Booking.com hotel photo gallery extractor.
Dataset quality notes
The actor de-duplicates images by normalized high-resolution URL. Thumbnail URLs are preserved when the source image differs from the normalized URL. Width and height are parsed from Booking/bstatic URL patterns when present.
Operational notes
Booking.com may vary page layout by locale, region, and WAF state. The actor uses Playwright and optional Apify Proxy settings to load public hotel pages and extract gallery images from rendered DOM content.
Need broader hotel data?
Use Booking.com Scraper first to discover hotels for a destination, export hotel URLs, then feed those URLs into this actor for full-gallery media extraction.