# Booking.com Scraper API — Hotels, Prices, Reviews & Contacts (`pro100chok/booking-all-in-one-scraper`) Actor

Booking.com scraper and unofficial Booking API: extract hotel listings, live room prices and availability, guest reviews, full property details and professional host contacts. Scrape by destination or URL, anti-bot and pagination handled. Export JSON, CSV, Excel. From $0.70/1k hotels.

- **URL**: https://apify.com/pro100chok/booking-all-in-one-scraper.md
- **Developed by:** [Raven](https://apify.com/pro100chok) (community)
- **Categories:** Travel, Automation, Developer tools
- **Stats:** 6 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 properties

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Booking.com Scraper — Hotels, Prices, Reviews & Host Data

**Scrape Booking.com hotel data by destination or URL: live room prices, availability, guest reviews, ratings, full property details and professional host contacts.** Point the scraper at a city (like `Amsterdam`) or paste Booking.com URLs, and export clean, structured data to JSON, CSV, Excel, XML or via API — for rate shopping, revenue management, market research or B2B lead lists.

One actor replaces a whole stack of single-purpose tools: a **Booking hotels scraper**, a **Booking price scraper** (room-level, with a price calendar up to **365 days ahead**), a **Booking reviews scraper**, and a **host / owner contact scraper**.

> ✅ No login, no cookies, no API key, no browser setup. The scraper handles Booking.com's anti-bot protection (AWS WAF) and pagination automatically.

### What does Booking.com Scraper do?

It extracts public data from Booking.com search results and hotel pages and returns it as clean dataset records (each tagged with `dataType`):

- 🏨 **Hotel search results** — every property for a destination: name, price, star rating, review score, address, GPS coordinates, photo, host type and sold-out status.
- 💶 **Prices & availability** — room-level offers by room type: current price, original (pre-discount) price, occupancy, meal plan, free-cancellation deadline and **rooms left at this price** (scarcity signal) for your dates — plus a multi-day **price calendar** (up to a full year ahead).
- ⭐ **Guest reviews** — every review with score, title, positive/negative text, reviewer name & country, stay dates, room type and the owner's reply — plus aggregate **category scores** (staff, cleanliness, comfort, value, location, Wi-Fi).
- 📋 **Hotel details** — description, stars, rating, address, coordinates, facilities & amenities, photos, check-in/out times, pet & child policies, languages spoken, room types, Q\&A, chain & brand, sustainability — plus **hotel surroundings ("what's nearby")**: landmarks, top attractions, restaurants & cafes, public transport, closest airports and beaches with walking/driving distances.
- 🧑‍💼 **Host / owner contacts** — the legally published professional-host block: company name, registration number, email, phone and address. Ready for B2B outreach to property managers.

### Why use this Booking.com Scraper?

- **All Booking.com data in one actor** — hotels, prices, reviews, details and host contacts in a single run, instead of juggling three or four separate scrapers.
- **HTTP-only, no browser** — it talks to Booking.com's pages and internal GraphQL API directly. Faster and cheaper than browser-based scrapers, with no JavaScript-rendering failures.
- **Anti-bot handled for you** — Booking.com gates non-browser clients behind an AWS WAF challenge; this actor solves it automatically. No tokens, no CAPTCHA solving, nothing to configure.
- **Real pagination** — search results and reviews are fetched through Booking's GraphQL API page after page, up to your limits (the plain `offset=` URL trick other scrapers rely on silently returns page 1).
- **Sequential crawl** — scrape a search, then auto-drill into each hotel for its details / reviews / prices / host contact, returned as **one tidy record per hotel** with nested data.
- **No coding required** — run it from the Apify Console, schedule it, or call it via API and MCP.
- **Clean, structured output** — flat fields ready for spreadsheets, BI tools and databases; export to JSON, CSV, Excel, XML, HTML.

### Who is it for?

- **Revenue managers & hoteliers** — rate shopping: monitor competitor room prices, discounts and availability.
- **Travel agencies & OTAs** — power apps and price-comparison sites with fresh accommodation data.
- **Market researchers & analysts** — build datasets of hotel inventory, ratings and reviews by city or country.
- **Data scientists** — collect review text and category scores for sentiment analysis and NLP models.
- **Sales & lead-gen teams** — gather professional host / property-manager contacts (email, phone, company).
- **Developers** — a practical **Booking.com API alternative**: no partner agreement, no scraping infrastructure to maintain.

### What data can you extract from Booking.com?

| Data type (`dataType`) | Key fields you get |
|---|---|
| **property** (search result) | name, url, stars, rating, ratingLabel, reviewsCount, price, originalPrice, currency, taxesAndCharges, roomName, beds/bedrooms/bathrooms, address, city, countryCode, latitude, longitude, distanceFromCenter, hostType, image, isSustainable, isSoldOut |
| **price** (room offer) | hotelName, checkIn, checkOut, roomId, roomName, occupancy, mealPlanId, price, originalPrice, currency, roomsLeft, freeCancellationUntil |
| **review** | score, title, positiveText, negativeText, language, reviewDate, userName, userCountry, guestType, customerType, roomType, numNights, checkInDate, checkOutDate, stayStatus, ownerReply, photos, helpfulVotesCount |
| **reviewScores** | totalReviews, scores\[] (name, label, value, lowerBound, higherBound) |
| **hotel** (details) | description, stars, rating, address, latitude, longitude, checkInFrom, checkOutUntil, petsAllowed, child & crib policy, languagesSpoken, highlights, popularFacilities, facilities, amenities, meals, finePrints, roomTypes, questionsAnswers, photos, chainId, brandName, sustainability & certifications, host profile, surroundings (whatsNearby, topAttractions, restaurants, cafesBars, publicTransport, closestAirports, beaches, naturalBeauty — each POI with distance, walking/driving time and GPS) |
| **host / hostContact** | companyName, personName, registrationNumber, tradeRegisterName, email, phone, addressLine1/2, city, postalCode, countryCode, subjectType |

### How much does it cost to scrape Booking.com?

You pay **per result** — platform usage, proxies and compute are **included**. Prices per 1,000 results (plus a negligible actor-start fee of $0.00005 per run); higher Apify plans get a discount, up to the Gold rate:

| Result (`dataType`) | Price / 1,000 | Gold discount |
|---|---|---|
| Property (search result) | $1.50 | $0.70 |
| Room price offer | $3.00 | $1.20 |
| Guest review | $2.00 | $0.40 |
| Review category scores (per hotel) | $3.00 | $1.00 |
| Hotel details | $4.00 | $2.00 |
| Host / owner contact | $5.00 | $2.50 |

**Worked examples:**

- List **1,000 hotels** for a city → **$1.50** (from $0.70 on paid plans)
- **1,000 guest reviews** → **$2.00** (from $0.40 on paid plans)
- **100 hotels** with full details **and** host contacts → **$0.90** (from $0.45)
- **1,000 room-price offers** for rate monitoring → **$3.00** (from $1.20)

Apify's **free plan includes $5 of usage every month** — enough to list roughly **3,300 hotels per month for free**. Start free and scale as you go.

### How to scrape Booking.com hotels (step by step)

**Option A — by destination (no URLs needed):**

1. Click **Try for free** / **Start**.
2. Leave **What to scrape** on **Search results** (or pick another mode).
3. In **Destinations**, type one or more places, e.g. `Amsterdam`, `Paris, France`.
4. *(Optional)* set check-in/check-out dates, guests, currency, language, star/price filters and **Max properties**.
5. *(Optional)* tick **Also scrape for each result** (Hotel details, Prices, Reviews, Host) to drill into every hotel.
6. Click **Save & Start**, then download your data as JSON, CSV or Excel.

**Option B — by URL (specific hotels or a filtered search):**

1. Open the search or hotel page you want on booking.com and copy its URL.
2. Paste it into **Booking.com URLs** (`startUrls`).
3. Pick the mode — hotel URLs feed Reviews / Hotel details / Host / Prices; search URLs feed Search results / Prices.
4. Click **Save & Start**.

#### How to scrape Booking.com hotel prices

Set **What to scrape → Prices**, enter destinations (or hotel/search URLs) and your dates. Each room offer is returned as its own record with room name, occupancy, meal plan, current and original price, the free-cancellation deadline and **`roomsLeft`** — how many rooms remain at that price when Booking shows its "We have X left" scarcity message. For a rate calendar, set **Price calendar — days ahead** (`daysAhead`, up to **365**) to scrape one-night prices for consecutive dates — a full-year price calendar in one run.

#### How to scrape Booking.com reviews

Set **What to scrape → Reviews** and paste hotel URLs (or a destination, whose top hotels are used). You get every guest review with text, score, reviewer details, stay info and the owner's reply, plus one aggregate category-scores record per hotel. Control volume with **Max reviews per hotel** and order with **Sort reviews by** (newest, oldest, highest/lowest score).

#### How to scrape hotel surroundings ("what's nearby")

Whenever hotel details are scraped (**Hotel details** / **All** modes, or the Hotel details enrich option), the actor also collects the property's **surroundings** block: what's nearby, top attractions, restaurants & cafes, public transport stops, closest airports, beaches and natural-beauty spots — each with the localized distance, walking/driving distance and time, and GPS coordinates. Turn it off with **Include surroundings** (`includeSurroundings: false`) to save one request per hotel.

#### How to extract Booking.com host / owner contacts

Set **What to scrape → Host / owner contact info** and paste hotel URLs. For professional hosts, Booking.com is legally required (EU trader-transparency rules) to publish a business contact block — company name, registration number, email, phone and address — which the actor returns as one clean record per property. Ideal for property-manager and rental-agency lead lists.

### Scrape modes

| Mode | What you get | Input |
|------|--------------|-------|
| `search` | List of properties for a destination | Destinations or Booking search URLs |
| `prices` | Room-level offers (+ price calendar) | Destinations or Booking search URLs |
| `reviews` | Every guest review + category scores | Hotel URLs or a destination |
| `hotelDetails` | Full property profile | Hotel URLs |
| `hostInfo` | Host / owner contact block | Hotel URLs |
| `all` | Details + host + reviews per hotel (nested) | Hotel URLs |

#### Sequential crawl (search → details / reviews / prices / host)

In **Search** mode, use **Also scrape for each result** (`enrichWith`) to drill into every property automatically. The drilled-down data is returned **nested inside one record per hotel** — `prices` and `reviews` arrays, a `reviewScores` array and a `hostContact` object alongside the detail fields — so you get one row per property instead of scattered records. The `all` mode does the same starting from hotel URLs.

### Input example

```json
{
  "scrapeType": "search",
  "searchQueries": ["Amsterdam"],
  "enrichWith": ["hotelDetails", "reviews"],
  "checkIn": "2026-07-15",
  "checkOut": "2026-07-16",
  "adults": 2,
  "rooms": 1,
  "currency": "USD",
  "language": "en-us",
  "maxItems": 100,
  "maxReviews": 50,
  "sortBy": "review_score_and_price"
}
```

Other useful parameters: `startUrls` (hotel or search URLs), `starRating`, `minScore`, `minPrice` / `maxPrice`, `sortReviewsBy`, `children` + `childrenAges`, `daysAhead` (price calendar), `includeSurroundings` (what's-nearby POIs with hotel details, on by default), `maxConcurrency`, `proxyConfiguration` (Apify residential by default; your own HTTP or SOCKS5 proxies are supported).

### Output example

```json
{
  "dataType": "property",
  "name": "Mercure Amsterdam Sloterdijk Station",
  "url": "https://www.booking.com/hotel/nl/mercure-amsterdam-sloterdijk-station-opening-july-2015.en-us.html",
  "stars": 4, "rating": 8.6, "ratingLabel": "Excellent", "reviewsCount": 4177,
  "price": 126.21, "priceRounded": "$126", "currency": "USD",
  "city": "Amsterdam", "countryCode": "nl", "latitude": 52.387911, "longitude": 4.834296,
  "distanceFromCenter": "4.3 km from downtown",
  "hostType": "PROFESSIONAL",
  "isSoldOut": false,
  "image": "https://cf.bstatic.com/xdata/images/hotel/square600/873579185.webp"
}
```

In the sequential / `all` modes one hotel record also carries nested `prices[]`, `reviews[]`, `reviewScores[]` and `hostContact{}`.

### Understanding key fields

- **`dataType`** — tags every record (`property`, `price`, `review`, `reviewScores`, `hotel`, `host`) so you can filter mixed exports in one click.
- **`price` vs `originalPrice`** — the current (possibly discounted) price vs the strike-through price before the discount; the gap is the active promotion.
- **`isSoldOut`** — the property has no availability for your dates; useful as a demand/occupancy signal for revenue management.
- **`roomsLeft`** — the number from Booking's "We have X left at this price" urgency message on a room offer; present only when Booking shows the scarcity banner. Combined with `isSoldOut`, a practical occupancy proxy.
- **`surroundings`** — nested per-category POI lists on hotel-detail records (`whatsNearby`, `topAttractions`, `restaurants`, `cafesBars`, `publicTransport`, `closestAirports`, `beaches`, `naturalBeauty`); each POI carries `distance` (localized), `distanceKm`, walking/driving distance and time, and GPS coordinates.
- **`freeCancellationUntil`** — the exact timestamp until which a room offer is refundable.
- **`reviewScores.lowerBound` / `higherBound`** — Booking's benchmark range for that category in the destination, so you can see how a hotel compares to its market.
- **`hostType`** — whether the property is run by a `PROFESSIONAL` trader (these have legal contact blocks) or a private host.
- **Empty fields are omitted** — Booking.com doesn't publish every field for every property (e.g. host contacts exist only for professional traders).

### Tips for best results

- Keep the default **residential proxies** for the best reliability.
- Booking.com search returns at most ~1,000 properties per query — split big cities by district or star rating (`starRating`, `minPrice`/`maxPrice` filters) to cover the full inventory.
- Set `checkIn`/`checkOut` to get realistic prices and availability; without dates Booking shows default rates.
- For price monitoring, start with a short `daysAhead` window to validate your setup, then scale to 365.
- Use `maxItems` and `maxReviews` to cap costs on large runs.

### Integrations & export

Download results as **JSON, CSV, Excel, XML or HTML**, or fetch them through the **Apify API**. Connect the scraper to **Google Sheets, Make, Zapier, n8n, Slack, Discord**, or your own backend with **webhooks**. Use **Schedules** to keep data fresh — e.g. a daily price-monitoring run that appends to a Google Sheet.

### Use with AI agents (MCP)

The scraper works as a tool for AI assistants via the **Apify MCP server** — let Claude, Cursor or any LLM agent pull Booking.com data on demand:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=pro100chok/booking-all-in-one-scraper"
```

Then just ask your assistant:

> "Scrape the top 20 hotels in Barcelona for next weekend with their prices and reviews from Booking.com."

### How do I monitor Booking.com hotel prices over time?

Use **Prices** mode with your dates — or set **Price calendar — days ahead** for a multi-night calendar up to a full year — then **schedule** the run daily or hourly from the Apify Console. Pipe the output to Google Sheets or a database via integration/webhook to build a price-history dashboard, track competitor discounts and set up rate-shopping alerts.

### Does Booking.com block scrapers?

Booking.com serves an AWS WAF anti-bot challenge to non-browser clients and hides pagination behind its internal GraphQL API. This actor handles both automatically — it solves the WAF challenge in about a second, re-solves it whenever it expires, and paginates through the GraphQL API — so you never deal with tokens, CAPTCHAs or empty page-2 results.

### What are the best alternatives to the official Booking.com API?

Booking.com's official API is **partner-only**: you need a commercial agreement, and it exposes booking functionality rather than open data access. For public hotel, price and review data, a scraper like this one is the practical alternative — no partner contract, no rate-limit negotiations, pay only per result.

### Is it legal to scrape Booking.com?

This scraper collects only **publicly available** information — the same data any visitor sees without logging in. Web scraping of public data is broadly legal, but you are responsible for how you use it: avoid collecting personal data without a lawful basis, respect **GDPR/CCPA** and Booking.com's Terms, and consult a lawyer for your specific use case. Host contact details are business information that Booking.com publishes under **EU trader-transparency rules**, i.e. data professional hosts are legally required to disclose.

### FAQ

**Do I need a Booking.com account, cookies, or a token?** No. The scraper handles access and anti-bot protection automatically — no login, no API key, no setup.

**Does it support pagination?** Yes — search results and reviews are paginated through Booking's GraphQL API up to your `maxItems` / `maxReviews`.

**Can I scrape all hotels in a city?** Yes — enter the city in **Destinations** and raise **Max properties**. For markets with more than ~1,000 listings, split the search with star/price filters.

**Can I scrape a specific hotel by name?** Search the name as a destination, or paste the hotel's Booking.com URL into **Booking.com URLs**.

**Can I get hotels, prices, reviews and host info together?** Yes — use **Search** mode with **Also scrape for each result**, or `all` mode with hotel URLs. Everything for a hotel is nested in one record.

**How many reviews can I scrape per hotel?** All of them — set **Max reviews per hotel** as high as you need; the actor pages through the full review list.

**Can I scrape reviews in a specific language or order?** Use **Sort reviews by** (newest, oldest, best, worst); each review record includes its own `language` field.

**Which export formats are supported?** JSON, JSONL, CSV, Excel, XML and HTML, plus the Apify API and webhooks.

**Which currencies and languages are supported?** Any that Booking.com supports — set `currency` (USD, EUR, GBP, …) and `language` (en-us, en-gb, de, fr, es, it, ru, …).

**Why are some fields empty?** Booking.com doesn't publish every field for every property — e.g. host contacts exist only for professional traders, and star ratings are missing on some apartments. Empty values are omitted rather than returned as null.

**Does it include hotel surroundings / "what's nearby"?** Yes — hotel-detail records include the surroundings block: landmarks, top attractions, restaurants & cafes, public transport, closest airports, beaches and natural beauty, each with distances, walking/driving times and GPS coordinates. Disable with `includeSurroundings: false`.

**Can I see how many rooms are left?** Yes — room-price offers include `roomsLeft` whenever Booking shows its "We have X left at this price" message, and properties carry `isSoldOut`.

**Can I use my own proxies?** Yes — add HTTP or SOCKS5 proxy URLs in the proxy configuration. Apify residential proxies are the default and work out of the box.

**How fast is it?** It's HTTP-only (no browser), so runs are quick and memory-light; hotel-level modes process several hotels in parallel (`maxConcurrency`).

### Related scrapers

Combine Booking.com data with other sources in one pipeline:

- [TripAdvisor Hotels & Reviews Scraper](https://apify.com/pro100chok/tripadvisor-all-in-one) — cross-reference ratings and reviews from TripAdvisor.
- [Google Maps Scraper](https://apify.com/pro100chok/google-maps-scraper) — enrich hotels with Google reviews, photos and contact details.
- [Apartments.com Scraper](https://apify.com/pro100chok/apartments-scraper-usage) — rentals, prices and reviews from Apartments.com.
- [Website Contact Scraper](https://apify.com/pro100chok/extract-emails) — turn hotel websites into emails, phones and socials for outreach.

### Support & feedback

The actor is actively maintained. Found a bug, missing a field, or need a new filter? Open an issue from the actor's **Issues** tab — most requests are handled quickly.

### Changelog

- **July 2026** — added **hotel surroundings** ("what's nearby": landmarks, attractions, restaurants, transport, airports, beaches with walking/driving distances) to hotel details, and **`roomsLeft`** (rooms remaining at a price) to room offers.
- **June 2026** — initial public release: 6 scrape modes (search, prices, reviews, hotel details, host contacts, all), sequential crawl with nested one-record-per-hotel output, 365-day price calendar, automatic AWS WAF handling, custom HTTP/SOCKS5 proxy support.

***

#### Tags

`booking` · `booking.com` · `booking-scraper` · `booking-com-scraper` · `booking-api` · `booking-com-api-alternative` · `hotel-scraper` · `hotels` · `hotel-data` · `hotel-prices` · `room-prices` · `price-scraper` · `price-calendar` · `price-monitoring` · `rate-shopping` · `revenue-management` · `availability` · `rooms-left` · `sold-out-detection` · `booking-reviews` · `reviews-scraper` · `hotel-reviews` · `ratings` · `review-scores` · `hotel-surroundings` · `whats-nearby` · `landmarks` · `host-scraper` · `hotel-contacts` · `property-manager-leads` · `lead-generation` · `b2b-leads` · `travel` · `travel-data` · `hospitality` · `accommodation` · `ota` · `web-scraping` · `data-extraction` · `crawler` · `api` · `no-code` · `mcp` · `ai-agents` · `json` · `csv` · `excel`

# Actor input Schema

## `scrapeType` (type: `string`):

What the actor returns. "Search results" = a list of properties for a destination. The other modes work on hotel page URLs. Tip: with "Search results" you can tick the options below to also drill into each hotel.

## `enrichWith` (type: `array`):

Only used with the "Search results" mode. For every property found, also scrape these — they are returned nested inside the same hotel record. Leave empty to get just the listing.

## `searchQueries` (type: `array`):

Destinations to search — e.g. "Amsterdam", "Paris, France", "Bali". One per line. Used by the Search results & Prices modes. Skip this if you paste URLs below instead.

## `startUrls` (type: `array`):

Booking.com hotel page URLs and/or search-result URLs (paste straight from your browser). Hotel URLs feed Reviews / Hotel details / Host / Prices; search URLs feed Search results / Prices.

## `maxItems` (type: `integer`):

Maximum number of properties to return per destination (also caps how many hotels are processed in the hotel-centric modes).

## `maxReviews` (type: `integer`):

Maximum reviews to fetch per hotel. Only used when reviews are scraped (Reviews mode, All mode, or the Reviews enrich option).

## `includeSurroundings` (type: `boolean`):

Only used when hotel details are scraped (Hotel details / All modes, or the Hotel details enrich option). Adds nearby POIs — landmarks, top attractions, restaurants & cafes, public transport, closest airports, beaches — with walking/driving distances. Costs one extra request per hotel.

## `checkIn` (type: `string`):

Format YYYY-MM-DD. Optional — affects prices and availability.

## `checkOut` (type: `string`):

Format YYYY-MM-DD. Optional.

## `daysAhead` (type: `integer`):

Prices mode only. If greater than 0, builds a price calendar of one-night stays for this many consecutive days starting at the check-in date (or today). Leave 0 for a single check-in/check-out range.

## `adults` (type: `integer`):

Number of adults per room.

## `children` (type: `integer`):

Number of children.

## `childrenAges` (type: `array`):

Ages of children (0–17), one per child.

## `rooms` (type: `integer`):

Number of rooms.

## `currency` (type: `string`):

ISO currency code, e.g. USD, EUR, GBP.

## `language` (type: `string`):

Booking language code, e.g. en-us, en-gb, de, fr, es, it, ru.

## `sortBy` (type: `string`):

Order of search results.

## `starRating` (type: `array`):

Filter by class, e.g. \["4","5"].

## `minScore` (type: `string`):

e.g. 8 or 9 (review score bucket).

## `minPrice` (type: `integer`):

Minimum price per night filter (in the chosen currency).

## `maxPrice` (type: `integer`):

Maximum price per night filter (in the chosen currency).

## `sortReviewsBy` (type: `string`):

Order of reviews. Used only when reviews are scraped.

## `maxConcurrency` (type: `integer`):

Parallel hotels processed in hotel-centric modes.

## `maxRetries` (type: `integer`):

Max retries per request on network errors or anti-bot challenges.

## `proxyConfiguration` (type: `object`):

Proxy used for all requests. Residential proxies are recommended. To use your own proxy (incl. SOCKS5), open the Custom proxies tab and add its URL.

## Actor input object example

```json
{
  "scrapeType": "search",
  "enrichWith": [],
  "searchQueries": [
    "Amsterdam"
  ],
  "maxItems": 50,
  "maxReviews": 100,
  "includeSurroundings": true,
  "daysAhead": 0,
  "adults": 2,
  "children": 0,
  "rooms": 1,
  "currency": "USD",
  "language": "en-us",
  "sortBy": "relevance",
  "sortReviewsBy": "relevance",
  "maxConcurrency": 5,
  "maxRetries": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `properties` (type: `string`):

No description

## `prices` (type: `string`):

No description

## `reviews` (type: `string`):

No description

## `hosts` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "Amsterdam"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pro100chok/booking-all-in-one-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQueries": ["Amsterdam"] }

# Run the Actor and wait for it to finish
run = client.actor("pro100chok/booking-all-in-one-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "Amsterdam"
  ]
}' |
apify call pro100chok/booking-all-in-one-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pro100chok/booking-all-in-one-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ndx8v7vE2UZLdaPh3/builds/ZCXtY4coDbVjqTrE0/openapi.json
