
GetYourGuide Scraper
scrape.ly/store/roamandroof/getyourguide-scraperTravelE-commerce
1 monthly user

Scrape public Booking.com hotels and search results: names, prices, ratings, rooms, facilities, and photos.
Collect hotels, apartments, and other stays from Booking.com with prices, ratings, rooms, facilities, photos, and guest-score breakdowns. Search a city, paste a search URL, or paste a hotel URL, and get one clean row per property you can export to JSON, CSV, or Excel. Properties cost $2.80 per 1,000.
No Booking.com login is needed. The actor reads public search and property data over plain HTTP, so runs are quick.
| Field | Type | Description |
|---|---|---|
search | string | City or area to search, for example Lisbon. |
startUrls | array | Booking.com search URLs or hotel URLs. Filters in a search URL are kept for that URL. |
maxItems | integer | Maximum properties for the destination, and again for each URL. Default 10, up to 1,000. |
checkIn, checkOut | string | YYYY-MM-DD or relative, such as 21 days. Prices need dates. |
adults, children, rooms | integer | Guests and rooms for price and availability. |
propertyType | string | Hotels, Apartments, Hostels, Villas, Resorts, and more. |
starsCount | string | any, 1 to 5, or unrated. |
minScore | string | Minimum guest rating on a 1 to 10 scale, for example 8.4. |
minMaxPrice | string | Nightly price range such as 100-150 or 100+. |
sortBy | string | Distance, top reviewed, price, and other sort orders. |
currency, language | string | Price currency and text language. |
proxyConfiguration | object | Proxy settings. Datacenter is the default. |
{
"search": "Lisbon",
"maxItems": 10,
"checkIn": "2026-11-16",
"checkOut": "2026-11-18",
"adults": 2,
"rooms": 1,
"currency": "USD",
"language": "en-gb"
}
A hotel URL returns that property. A check-in date in the past is moved 21 days forward so a saved input keeps returning availability.
One dataset row per property.
| Field | Description |
|---|---|
name, type, stars, description | Property name, type, star rating, and description. |
price, currency | Stay price for your dates and the currency shown. |
rating, ratingLabel, reviews | Guest score, label, and review count. |
checkIn, checkOut, checkInDate, checkOutDate | House-rule times and your stay dates. |
address, location | Full address, city, country, postal code, and coordinates. |
rooms | Room types, beds, facilities, and price options with cancellation type. |
images, roomImages | Gallery and room photos. |
categoryReviews, reviewSummary | Category scores and a short review summary when shown. |
highlights, finePrint, policies | Location highlights and property rules. |
A trimmed item from a real run:
{
"order": 1,
"startUrlOrQuery": "Lisbon",
"name": "FLH Praça Rossio Elegant Flat",
"type": "apartment",
"stars": null,
"price": 309.57,
"currency": "US$",
"rating": 8.9,
"ratingLabel": "Fabulous",
"reviews": 70,
"checkIn": "From 15:00",
"checkOut": "Until 11:00",
"checkInDate": "2026-11-16",
"checkOutDate": "2026-11-18",
"location": { "lat": "38.7141408", "lng": "-9.1388485" },
"address": {
"full": "93 Praça Dom Pedro IV, Santa Maria Maior, 1100-157 Lisbon, Portugal",
"postalCode": "1100-157",
"city": "Lisbon",
"country": "pt"
},
"rooms": [
{
"roomType": "One-Bedroom Apartment",
"persons": 3,
"bedTypes": [{ "room": null, "beds": ["2 single beds", "1 sofa bed"] }],
"facilities": ["Air conditioning", "Iron"],
"options": [{ "price": 309.57, "currency": "US$", "cancellationType": "non_refundable" }]
}
],
"categoryReviews": [
{ "title": "Cleanliness", "score": 9.6 },
{ "title": "Comfort", "score": 9.2 }
]
}
You pay $0.0028 per property saved, which is $2.80 per 1,000 properties. Platform usage (compute and proxy) is billed on top at the usual rates; datacenter proxy traffic is $1 per GB.
Worked example: a 10-property city search costs 10 x $0.0028 = $0.028 in event fees. A billed staging run of that size cost about $0.035 in total, including compute and proxy.
No. The actor only reads public search results and property pages.
It reads public pages that anyone can open. You are responsible for how you use the data and for following the terms and laws that apply to you.
Prices and room options appear when check-in and check-out dates are set. Star rating is empty when Booking.com does not show stars, which is common for apartments. A hotel URL that does not exist produces no row and the run still succeeds.
Yes. Set property type, stars, a minimum guest rating, a nightly price range, currency, language, guests, and sort order. A search URL's own filters are kept for that URL.
Up to 1,000 per search, which is the most Booking.com shows for one search.
Yes. Schedule runs, start them through the API, and read the dataset in any export format.
If you are moving a hotel search from another scraper, the same destination, dates, guest counts, and hotel URLs work here.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchstringOptionalDestination
City or area to search, the same way you would type it into Booking.com. Example: Lisbon.
startUrlsarrayOptionalStart URLs
Booking.com search URLs or hotel URLs such as https://www.booking.com/hotel/pt/the-lumiares.html. Filters in a search URL are used for that URL. The destination search is collected first.
maxItemsintegerOptionaldefault 10Maximum properties
Maximum number of properties to return for the destination, and again for each start URL. Booking shows about 1,000 properties per search, so 1,000 is the most one search can return.
Dates, guests, property type, stars, rating, and price. These apply to the destination and to search URLs that do not already set them.
checkInstringOptionalCheck-in
Check-in date in YYYY-MM-DD format, or a relative date such as 21 days. Prices and room options need dates. A date in the past is moved forward so a saved run stays useful.
checkOutstringOptionalCheck-out
Check-out date in YYYY-MM-DD format, or a relative date such as 23 days.
roomsintegerOptionaldefault 1Rooms
Number of rooms for the price and availability search.
adultsintegerOptionaldefault 2Adults
Number of adult guests.
childrenintegerOptionaldefault 0Children
Number of child guests. Ages default to 10 when you do not pass them in a URL.
propertyTypeenumOptionaldefault "none"Property type
Limit results to one property type.
sortByenumOptionaldefault "distance_from_search"Sort
Order of the search results.
starsCountenumOptionaldefault "any"Stars
Only properties with this star rating. Unrated keeps properties that Booking.com does not show with stars.
minScorestringOptionalMinimum rating
Minimum guest rating on a 1 to 10 scale, for example 8.4.
minMaxPricestringOptionalPrice range per night
Minimum and maximum nightly price in the selected currency, for example 100-150 or 100+.
currencyenumOptionaldefault "USD"Currency
Currency for prices.
languageenumOptionaldefault "en-gb"Language
Language of names, descriptions, and review labels.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to reach Booking.com. Datacenter is enough for the public search API.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| image | string | null | Main photo URL |
| name | string | null | Property name |
| type | string | null | Property type, such as hotel or apartment |
| address | object | null | Street, city, postal code, and country |
| stars | number | null | Star rating |
| rating | number | null | Guest rating from 1 to 10 |
| ratingLabel | string | null | Rating label, such as Fabulous |
| reviews | number | null | Number of guest reviews |
| price | number | null | Stay price in the selected currency |
| currency | string | null | Currency symbol |
| checkIn | string | null | Check-in time |
| checkOut | string | null | Check-out time |
| url | string | null | Property page URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One Booking.com property saved to the dataset. | $0.0028 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/booking-scraper').call({
"search": "Lisbon",
"startUrls": [],
"maxItems": 10,
"checkIn": "2026-11-16",
"checkOut": "2026-11-18",
"rooms": 1,
"adults": 2,
"children": 0,
"propertyType": "none",
"sortBy": "distance_from_search",
"starsCount": "any",
"minMaxPrice": "100-250",
"currency": "USD",
"language": "en-gb",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/booking-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/booking-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Stays with prices in EUR for dates a month ahead.
Hotels sorted by review score.
Full details and prices for a single property.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.