> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapebadger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Booking.com Scraper by ScrapeBadger — Overview

> Scrape Booking.com hotel search with filters and sorting, destination autocomplete, full property detail, complete room rate tables, and paginated guest reviews — worldwide, with structured JSON responses.

## Scraper API for Booking.com

Search hotels, apartments and every other stay type Booking.com sells, resolve
free-text destinations to exact ids, pull a property's full detail — facilities,
rooms, house rules, score breakdown, photos and guest Q\&A — pull its complete
rate table for any dates, and page through guest reviews with language and
guest-type filters. ScrapeBadger handles sessions and parsing automatically —
no Booking.com account or API key required.

## Key Features

<CardGroup cols={3}>
  <Card title="Global Hotel Search" icon="earth-americas">
    Free-text [`location`](/api-reference/endpoint/booking/search) or an exact `dest_id`, with dates, occupancy, sorting and Booking's own filter ids.
  </Card>

  <Card title="Destination Autocomplete" icon="magnifying-glass">
    Resolve a prefix like `amsterd` to cities, districts, airports, landmarks and regions — each with an id you can pass straight to search.
  </Card>

  <Card title="Full Property Detail" icon="hotel">
    Description, address, GPS, star rating, score breakdown by category, 60-110 facilities, room types with beds and photos, house rules and guest Q\&A.
  </Card>

  <Card title="Full Rate Table" icon="bed">
    Every rate on every room type for your dates — 30+ rates across 5 room types in one call, with per-room facilities, alternative bed layouts and meal plans.
  </Card>

  <Card title="Paginated Reviews" icon="star">
    Positive and negative text, per-review score, stay dates, guest type, room stayed in, partner reply and photos.
  </Card>

  <Card title="Numeric Prices" icon="tag">
    Every price comes back as both Booking's localized display string and a numeric `amount` + `currency`, so you never parse `"€ 265,09"`.
  </Card>

  <Card title="SDK Support" icon="code">
    First-class support via the ScrapeBadger Node.js and Python SDKs.
  </Card>
</CardGroup>

<Note>
  Coverage is global — every country Booking.com sells in is reachable. Every
  endpoint accepts `currency` and `language`, defaulting to `USD` and `en-us`,
  so you can request prices and text in the market's own currency and language
  without changing anything else. `language` also localizes review-score words,
  room type names and price formatting.
</Note>

## Coverage & Defaults

| Parameter | Default | Notes |
| - | - | - |
| `currency` | `USD` | Any Booking-supported currency, e.g. `EUR`, `GBP`, `JPY`. |
| `language` | `en-us` | Any Booking locale, e.g. `fr`, `de`, `es`, `it`. |
| Room sizes | Follows `language` | [`/rooms`](/api-reference/endpoint/booking/get-rooms) reports `area_unit` as `SQUARE_METER` or `SQUARE_FEET` depending on the requested locale. |
| Geography | Worldwide | Free-text `location` is geocoded by Booking; an exact `dest_id` + `dest_type` pair is also accepted. |

<Tip>
  Resolve a destination once with
  [`/destinations`](/api-reference/endpoint/booking/search-destinations), then
  pass its `dest_id` + `dest_type` to
  [`/search`](/api-reference/endpoint/booking/search) for an exact area instead
  of free-text geocoding. Every search result carries `country_code` and `slug`
  — the two path segments for
  [`/properties/{country_code}/{slug}`](/api-reference/endpoint/booking/get-property),
  [`/rooms`](/api-reference/endpoint/booking/get-rooms) and
  [`/reviews`](/api-reference/endpoint/booking/get-reviews).
</Tip>

## Quick Start

<CodeGroup>
  ```javascript Node.js theme={null}
  const res = await fetch(
    "https://scrapebadger.com/v1/booking/search?" +
      new URLSearchParams({
        location: "Rome, Italy",
        checkin: "2026-09-12",
        checkout: "2026-09-15",
        adults: "2",
        filters: "class=5;mealplan=1",
        currency: "EUR",
      }),
    { headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
  );
  const data = await res.json();
  console.log(data.total_results, "properties");
  ```

  ```python Python theme={null}
  import requests

  res = requests.get(
      "https://scrapebadger.com/v1/booking/search",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={
          "location": "Rome, Italy",
          "checkin": "2026-09-12",
          "checkout": "2026-09-15",
          "adults": 2,
          "filters": "class=5;mealplan=1",
          "currency": "EUR",
      },
  )
  data = res.json()
  print(data["total_results"], "properties")
  ```

  ```bash cURL theme={null}
  curl "https://scrapebadger.com/v1/booking/search?location=Rome%2C%20Italy&checkin=2026-09-12&checkout=2026-09-15&adults=2&filters=class%3D5%3Bmealplan%3D1&currency=EUR" \
    -H "X-API-Key: YOUR_API_KEY"
  ```
</CodeGroup>

## Endpoints

| Endpoint | Method | Description |
| - | - | - |
| [`/v1/booking/search`](/api-reference/endpoint/booking/search) | GET | Search properties by destination, with filters and sorting |
| [`/v1/booking/destinations`](/api-reference/endpoint/booking/search-destinations) | GET | Resolve free text to Booking destination ids |
| [`/v1/booking/properties/{country_code}/{slug}`](/api-reference/endpoint/booking/get-property) | GET | Full detail for a single property |
| [`/v1/booking/properties/{country_code}/{slug}/rooms`](/api-reference/endpoint/booking/get-rooms) | GET | Every room type with its full rate table for given dates |
| [`/v1/booking/properties/{country_code}/{slug}/reviews`](/api-reference/endpoint/booking/get-reviews) | GET | Paginated guest reviews |

## Credit Costs

| Endpoint | Cost |
| - | - |
| Search properties | 5 credits |
| Search destinations | 3 credits |
| Get property detail | 5 credits |
| Get rooms & rates | 10 credits |
| Get reviews | 10 credits |
| Health check | 0 credits |
| Failed requests | 0 credits |

## Authentication

All requests require your API key in the `X-API-Key` header:

```bash theme={null}
curl "https://scrapebadger.com/v1/booking/search?location=Rome%2C%20Italy" \
  -H "X-API-Key: YOUR_API_KEY"
```

Credits are charged per request (see the table above) and reported on the
`X-Credits-Used` response header.

## Next Steps

<CardGroup cols={2}>
  <Card title="Search Properties" icon="magnifying-glass" href="/api-reference/endpoint/booking/search">
    Full API reference for searching Booking.com stays
  </Card>

  <Card title="Get Property Detail" icon="hotel" href="/api-reference/endpoint/booking/get-property">
    Retrieve a property's complete detail by country code and slug
  </Card>
</CardGroup>

***

*ScrapeBadger is an independent tool and is not affiliated with, endorsed by, or sponsored by Booking.com. "Booking.com" is a trademark of Booking.com B.V., used here only to describe the platform this scraper is designed to work with.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.