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

# Scrape Booking.com hotel reviews

> Given a Booking.com `hotel` (page URL or `<cc>/<slug>`), returns its newest guest `reviews`: `id`, `reviewDate`, `rating`, `ratingText`, `title`, `ratingBand`, `positiveText`, `negativeText`, `reviewer` (`name`, `country`, `countryCode`), `tripType`, `travelerType`, `nights`, `stayMonth`, `helpfulVotes`, `submittedFromMobile`, `language` and the raw `tags`. Booking serves the newest 15 reviews written in each language: pick the languages with `languages` (or `all`), cap the total with `max_results` and drop older reviews with `since`. Billed one unit per language page fetched (`pagesFetched`).



## OpenAPI

````yaml /api-reference/openapi.json post /travel/booking-reviews
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /travel/booking-reviews:
    post:
      tags:
        - Plugins
      summary: Scrape Booking.com hotel reviews
      description: >-
        Given a Booking.com `hotel` (page URL or `<cc>/<slug>`), returns its
        newest guest `reviews`: `id`, `reviewDate`, `rating`, `ratingText`,
        `title`, `ratingBand`, `positiveText`, `negativeText`, `reviewer`
        (`name`, `country`, `countryCode`), `tripType`, `travelerType`,
        `nights`, `stayMonth`, `helpfulVotes`, `submittedFromMobile`, `language`
        and the raw `tags`. Booking serves the newest 15 reviews written in each
        language: pick the languages with `languages` (or `all`), cap the total
        with `max_results` and drop older reviews with `since`. Billed one unit
        per language page fetched (`pagesFetched`).
      operationId: booking_reviews_travel_booking_reviews_post
      parameters:
        - name: hotel
          in: query
          required: true
          schema:
            type: string
            description: >-
              Booking.com hotel page URL, e.g.
              https://www.booking.com/hotel/fr/le-meurice.html (a locale suffix
              such as .en-gb.html and query parameters are fine), or
              `<cc>/<slug>` such as fr/le-meurice.
            title: Hotel
          description: >-
            Booking.com hotel page URL, e.g.
            https://www.booking.com/hotel/fr/le-meurice.html (a locale suffix
            such as .en-gb.html and query parameters are fine), or `<cc>/<slug>`
            such as fr/le-meurice.
        - name: languages
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Review languages to read, comma-separated, or `all`: en, de, fr,
              es, it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs, tr.
              Default en. Booking serves the newest 15 reviews written in each
              language; each language is one page and one billed unit, fetched
              in the order given until max_results is reached.
            title: Languages
          description: >-
            Review languages to read, comma-separated, or `all`: en, de, fr, es,
            it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs, tr. Default en.
            Booking serves the newest 15 reviews written in each language; each
            language is one page and one billed unit, fetched in the order given
            until max_results is reached.
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              How many reviews to return across languages (1-270, at most 15 per
              language).
            default: 15
            title: Max Results
          description: >-
            How many reviews to return across languages (1-270, at most 15 per
            language).
        - name: since
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Only reviews written on or after this date (YYYY-MM-DD).
            title: Since
          description: Only reviews written on or after this date (YYYY-MM-DD).
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Exit-IP country (ISO-2).
            title: Proxy Country
          description: Exit-IP country (ISO-2).
      responses:
        '200':
          description: JSON with `hotel`, a `reviews` array and per-language results.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters / not a Booking.com hotel URL.
        '404':
          description: Booking has no hotel at that URL.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: Blocked by Booking or no review list returned.
        '504':
          description: Fetch timed out.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

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