The NanoScrape Booking Com Scraper is an Apify actor that extracts marketplace listings from booking.com. It returns 36 fields per result including name, location, city, address, review_count, priced at $1/1k result, with no API key or monthly subscription required.
Scrape hotel listings from Booking.com with 34+ fields: prices, GPS coordinates, guest review scores, street addresses, discount badges, cancellation policies, sold-out signals, and high-res photos (source platform). HTTP-only, fast, no browser required.
| Field | Type | Example | Group | Fill % |
|---|---|---|---|---|
id | number | 14205448 | Core | 100% |
name | string | Mama Shelter Zurich | Core | 100% |
url | string | https://www.booking.com/hotel/ch/mama-shelter-zurich.html | Core | 100% |
photo_url | string | null | https://cf.bstatic.com/xdata/images/hotel/square240/905697688.webp?k=db09c169f7553800c0... | Core | 100% |
photo_url_high_res | string | null | https://cf.bstatic.com/xdata/images/hotel/square600/905697688.webp?k=db09c169f7553800c0... | Core | 100% |
discount_badge_id | string | null | Limited Time Deal | Core | 26% |
room_id | string | number | null | 1420544801 | Core | 100% |
location | string | null | Oerlikon, Zurich | Location | 100% |
city | string | null | Zurich | Location | 100% |
property_city | string | null | Zurich | Location | 100% |
property_country | string | null | Switzerland | Location | 100% |
country_code | string | null | ch | Location | 100% |
address | string | null | Schulstrasse 44 | Location | 100% |
latitude | number | null | 47.4107767584471 | Location | 100% |
longitude | number | null | 8.54370507934572 | Location | 100% |
star_rating | number | null | 4 | Reviews / rating | 90% |
review_score | number | null | 8.8 | Reviews / rating | 100% |
review_count | number | null | 1951 | Reviews / rating | 100% |
review_score_word | string | null | Fabulous | Reviews / rating | 100% |
secondary_score | number | null | 0 | Reviews / rating | 100% |
scraped_at | string | 2026-09-13T06:42:09.378Z | Metadata | 100% |
photos | array | null | (populated when data available) | Media | — |
is_closed | boolean | false | Other | 100% |
district | string | null | Oerlikon, Zurich | Other | 100% |
distance_from_center | string | null | 2.7 miles from downtown | Other | 100% |
price | number | null | 231.615701689209 | Other | 100% |
price_per_night | number | null | 231.62 | Other | 100% |
original_price | number | null | 188.8247 | Other | 100% |
original_price_stay | string | null | $331 | Other | 26% |
currency | string | null | USD | Other | 100% |
is_sold_out | boolean | false | Other | 100% |
discount_badge | string | null | Limited-time Deal | Other | 26% |
free_cancellation | boolean | true | Other | 100% |
free_cancellation_until | string | null | 2026-09-13T22:00:00Z | Other | 21% |
no_prepayment | boolean | true | Other | 100% |
meal_plan | string | number | null | 2 | Other | 100% |
{
"destination": "Berlin",
"checkin": "2026-04-15",
"checkout": "2026-04-17",
"maxResults": 30
}{
"id": 14205448,
"name": "Mama Shelter Zurich",
"url": "https://www.booking.com/hotel/ch/mama-shelter-zurich.html",
"star_rating": 4,
"is_closed": false,
"photo_url": "https://cf.bstatic.com/xdata/images/hotel/square240/905697688.webp?k=db09c169f7553800c0e48e829647c6e0c47688819b8b3f9b89c41b944688ad0f&o=",
"location": "Oerlikon, Zurich",
"district": "Oerlikon, Zurich",
"city": "Zurich",
"country_code": "ch",
"distance_from_center": "2.7 miles from downtown",
"price": 231.615701689209,
"original_price": 188.8247,
"currency": "USD",
"free_cancellation": true,
"free_cancellation_until": "2026-09-13T22:00:00Z",
"no_prepayment": true,
"room_id": "1420544801",
"meal_plan": 2,
"scraped_at": "2026-09-13T06:42:09.378Z",
"photo_url_high_res": "https://cf.bstatic.com/xdata/images/hotel/square600/905697688.webp?k=db09c169f7553800c0e48e829647c6e0c47688819b8b3f9b89c41b944688ad0f&o=",
"latitude": 47.4107767584471,
"longitude": 8.54370507934572,
"address": "Schulstrasse 44",
"property_city": "Zurich",
"property_country": "Switzerland",
"price_per_night": 231.62,
"is_sold_out": false,
"discount_badge": "Limited-time Deal",
"discount_badge_id": "Limited Time Deal",
"original_price_stay": "$331",
"photos": null,
"review_score": 8.8,
"review_count": 1951,
"review_score_word": "Fabulous",
"secondary_score": 0
}Priced at $0.0010 per result. 10 results ≈ $0.01, 100 ≈ $0.10, 1,000 ≈ $1.00. The first runs land inside Apify's $5/mo free-tier credit — pay only for what you extract, no monthly subscription.
Click Open on Apify above to run booking-com-scraper in your browser - no code, no install. In the Apify console you get:
To run this actor from your own code you need an Apify API token. Get one in about a minute:
Free tier: Apify credits your account with $5 of platform usage every month, no credit card required. Enough to test any actor meaningfully - at $0.001 per result on typical scrapers, that is roughly 5,000 results for free every month.
Run this actor from any language via the Apify REST API. Replace YOUR_TOKEN with your API token and adapt the input JSON to your needs.
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~booking-com-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('santamaria-automations/booking-com-scraper').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('santamaria-automations/booking-com-scraper').call(run_input={})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(items)// dotnet add package Apify.Client
using Apify.Client;
var client = new ApifyClient("YOUR_TOKEN");
var run = await client.Actor("santamaria-automations/booking-com-scraper").CallAsync(new { });
var items = await client.Dataset(run.DefaultDatasetId).ListItemsAsync();// Maven: com.apify:apify-client
import com.apify.client.ApifyClient;
ApifyClient client = new ApifyClient("YOUR_TOKEN");
ActorRun run = client.actor("santamaria-automations/booking-com-scraper").call(Map.of());
List<Map<String,Object>> items = client.dataset(run.getDefaultDatasetId()).listItems();This actor is available on the Apify MCP server, so you can drive it from any MCP-compatible AI client - Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or a custom agent - without writing any code.
https://mcp.apify.com?tools=santamaria-automations/booking-com-scraperExample prompt once connected:
"Use <code>booking-com-scraper</code> to run a scrape on my target list and give me the results as a table."
Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.
Trigger this actor from your favorite automation tool. Every platform below can call the Apify API in a few clicks - no code required.
@apify/n8n-nodes-apify).santamaria-automations/booking-com-scraper.https://api.apify.com/v2/acts/santamaria-automations~booking-com-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.application/json.https://api.apify.com/v2/acts/santamaria-automations~booking-com-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, method POST, body raw JSON.https://api.apify.com/v2/acts/santamaria-automations~booking-com-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.steps.http.$return_value in subsequent steps.https://api.apify.com/v2/acts/santamaria-automations~booking-com-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, body type JSON.$1.00 / 1,000 result, billed per result on Apify. Apify's $5/month free tier covers the first runs. No monthly subscription — you only pay for what you extract.
36 fields per result. Full field catalog is listed in the 'What you can scrape' table above — includes core identifiers, descriptive text, dates, and any category-specific data.
Scraping publicly available data is generally permitted in most jurisdictions, but GDPR applies to any personal data you collect. Review your local rules and consult a lawyer for commercial use.
No. This actor reads public pages over HTTP with datacenter proxies. No API key, no OAuth, no rate-limit management on your side.
Every run pulls live data at execution time. Set up a schedule (daily/hourly/weekly cron) in the Apify console to keep your dataset current automatically.