# Booking.com Hotels Scraper (voyager/booking-scraper)

> Booking.com Hotels Scraper (voyager/booking-scraper) is a paid API for AI agents from stableapify.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Starts an Apify actor run that scrapes Booking.com for hotel and accommodation data including prices, ratings, addresses, and reviews by keyword or URL.

## Facts

- Endpoint: POST https://stableapify.dev/api/actors/voyager/booking-scraper/call
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/booking-com-hotels-scraper-voyager-booking-scraper-7c0792c7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-eLBqzY1h4ObPucPZBtwz

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability booking-com-hotels-scraper-voyager-booking-scraper-7c0792c7 -d '<json body>'
```

Example prompt: Can you scrape Booking.com for hotels in Paris and get me their prices, ratings, and addresses — limit it to 100 results and use 1024 MB memory?

## When to prefer this

Choose this endpoint when you need structured accommodation data from Booking.com at scale — including prices, ratings, and addresses — and want to drive the query via keyword or URL. Prefer this over manual browsing or generic search APIs when you need bulk hotel data for price comparison, market research, or travel aggregation. Pair with the sibling dataset-fetch endpoint to retrieve results after the run completes.

## Known failure modes

- Actor run fails to start due to invalid input parameters or unsupported Booking.com URL format
- Memory limit too low causing actor to crash mid-run
- Max items exceeded or rate limiting by Booking.com during scrape
- Token expiration before dataset is fetched
- Payment failure via x402 protocol preventing run initiation
- Run starts but returns empty dataset if search keyword yields no results

## How this service works

Start the "Booking Scraper" Apify actor (voyager/booking-scraper). Scrape Booking with this hotels scraper and get data about accommodation on Booking.com. You can crawl by keywords or URLs for hotel prices, ratings, addresses…

## Output

Returns an actor run object with a run ID, status (e.g. READY), actor ID, start timestamp, total USD usage, and a default dataset ID where results will be stored once the run completes. Also returns a JWT token used to fetch the scraped dataset from the sibling endpoint.

## Example request

```json
{
 "input": {
  "username": "sarptecimer",
  "includeEmail": false
 },
 "options": {
  "memory": 1024,
  "maxItems": 100
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "extractAdditionalHotelData",
    "propertyType",
    "sortBy",
    "starsCountFilter",
    "currency",
    "language",
    "rooms",
    "adults",
    "children"
   ],
   "properties": {
    "rooms": {
     "type": "integer",
     "default": 1,
     "maximum": 50,
     "minimum": 1
    },
    "adults": {
     "type": "integer",
     "default": 2,
     "maximum": 50,
     "minimum": 1
    },
    "search": {
     "type": "string",
     "description": "Insert the destination name here"
    },
    "sortBy": {
     "enum": [
      "bayesian_review_score",
      "distance_from_search",
      "class_asc",
      "price",
      "review_score_and_price",
      "class_and_price"
     ],
     "type": "string",
     "default": "distance_from_search",
     "description": "Hotel attribute by which the results will be ordered"
    },
    "checkIn": {
     "type": "string",
     "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
     "description": "Select the check-in date in format YYYY-MM-DD or {number} {unit}. - ***Input the date in the UTC timezone!*** Booking uses the UTC timezone for all check-in and check-out dates, so we do the same."
    },
    "checkOut": {
     "type": "string",
     "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
     "description": "Select the check-out date in format YYYY-MM-DD or {number} {unit}. - ***Input the date in the UTC timezone!*** Booking uses the UTC timezone for all check-in and check-out dates, so we do the same."
    },
    "children": {
     "type": "integer",
     "default": 0,
     "maximum": 50,
     "minimum": 0
    },
    "currency": {
     "enum": [
      "ARS",
      "AUD",
      "AZN",
      "BHD",
      "BRL",
      "BGN",
      "CAD",
      "XOF",
      "CLP",
      "CNY",
      "COP",
      "CZK",
      "DKK",
      "EGP",
      "EUR",
      "FJD",
      "GEL",
      "HKD",
      "HUF",
      "INR",
      "IDR",
      "ILS",
      "JPY",
      "JOD",
      "KZT",
      "KRW",
      "KWD",
      "MYR",
      "MXN",
      "MDL",
      "NAD",
      "TWD",
      "NZD",
      "NOK",
      "OMR",
      "PLN",
      "GBP",
      "QAR",
      "RON",
      "RUB",
      "SAR",
      "SGD",
      "ZAR",
      "SEK",
      "CHF",
      "THB",
      "TRY",
      "AED",
      "USD",
      "UAH"
     ],
     "type": "string",
     "default"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/booking-com-hotels-scraper-voyager-booking-scraper-7c0792c7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableapify.dev](https://www.zero.xyz/host/stableapify.dev/llms.txt)
