{
  "openapi": "3.0.1",
  "info": {
    "title": "🔥 Booking Scraper",
    "description": "⚡️ Fast, no-code Booking.com scraper with LLM- & 🤖 agent-optimized input & output. Extract hotels, apartments, hostels, B&Bs & villas by location, URL or property ID — prices, availability, star ratings, review scores, photos, facilities & coordinates. Export to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "1KyMlMlcotNjRZmxQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bebity~booking-stays-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bebity-booking-stays-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/bebity~booking-stays-scraper/runs": {
      "post": {
        "operationId": "runs-sync-bebity-booking-stays-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/bebity~booking-stays-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-bebity-booking-stays-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region, or area to search (e.g., 'Paris', 'Bali, Indonesia', 'London'). Booking accepts free-form strings — anything its search box accepts works here."
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "ISO date YYYY-MM-DD. If left empty, Booking's default flexible-dates view is used."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "ISO date YYYY-MM-DD. Must be strictly after check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of children. If > 0, you must also provide `childrenAges` with the same length.",
            "default": 0
          },
          "childrenAges": {
            "title": "Children ages",
            "type": "array",
            "description": "List of children ages (0-17), one entry per child. Required if `children` > 0.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Number of rooms requested.",
            "default": 1
          },
          "propertyClass": {
            "title": "Property class (stars)",
            "type": "array",
            "description": "Filter by star rating. Multi-select.",
            "items": {
              "type": "string",
              "enum": [
                "1-star",
                "2-stars",
                "3-stars",
                "4-stars",
                "5-stars"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "reviewScoreMin": {
            "title": "Minimum review score",
            "enum": [
              "pleasant-6+",
              "good-7+",
              "very-good-8+",
              "wonderful-9+"
            ],
            "type": "string",
            "description": "Booking's review-score lower bound."
          },
          "priceMin": {
            "title": "Min price per night",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price per night, in the currency selected below."
          },
          "priceMax": {
            "title": "Max price per night",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price per night, in the currency selected below."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Filter by property category. Multi-select.",
            "items": {
              "type": "string",
              "enum": [
                "apartments",
                "hostels",
                "hotels",
                "bed-and-breakfasts",
                "villas",
                "boats",
                "guesthouses",
                "vacation-homes",
                "homestays"
              ],
              "enumTitles": [
                "Apartments",
                "Hostels",
                "Hotels",
                "Bed and Breakfasts",
                "Villas",
                "Boats",
                "Guesthouses",
                "Vacation Homes",
                "Homestays"
              ]
            }
          },
          "mealPlans": {
            "title": "Meals included",
            "type": "array",
            "description": "Filter by meal plans on offer.",
            "items": {
              "type": "string",
              "enum": [
                "breakfast-included",
                "breakfast-and-dinner",
                "kitchen-facilities"
              ],
              "enumTitles": [
                "Breakfast included",
                "Breakfast & dinner",
                "Kitchen facilities"
              ]
            }
          },
          "hotelFacilities": {
            "title": "Property facilities",
            "type": "array",
            "description": "Property-level amenities (pool, parking, spa, etc.).",
            "items": {
              "type": "string",
              "enum": [
                "free-wifi",
                "parking",
                "swimming-pool",
                "spa",
                "hot-tub-jacuzzi"
              ],
              "enumTitles": [
                "Free Wi-Fi",
                "Parking",
                "Swimming pool",
                "Spa",
                "Hot tub / Jacuzzi"
              ]
            }
          },
          "roomFacilities": {
            "title": "Room facilities",
            "type": "array",
            "description": "Room-level amenities (AC, balcony, private bathroom, etc.).",
            "items": {
              "type": "string",
              "enum": [
                "air-conditioning",
                "balcony",
                "private-bathroom",
                "private-pool",
                "kitchen-kitchenette"
              ],
              "enumTitles": [
                "Air conditioning",
                "Balcony",
                "Private bathroom",
                "Private pool",
                "Kitchen / kitchenette"
              ]
            }
          },
          "accessibleFacilities": {
            "title": "Property accessibility",
            "type": "array",
            "description": "Accessibility features at the property level.",
            "items": {
              "type": "string",
              "enum": [
                "toilet-grab-rails",
                "raised-toilet",
                "lowered-sink",
                "bathroom-emergency-cord",
                "visual-aids-braille",
                "visual-aids-tactile-signs",
                "auditory-guidance"
              ],
              "enumTitles": [
                "Toilet with grab rails",
                "Raised toilet",
                "Lowered sink",
                "Bathroom emergency cord",
                "Visual aids (Braille)",
                "Visual aids (tactile signs)",
                "Auditory guidance"
              ]
            }
          },
          "accessibleRoomFacilities": {
            "title": "Room accessibility",
            "type": "array",
            "description": "Accessibility features at the room level.",
            "items": {
              "type": "string",
              "enum": [
                "unit-on-ground-floor",
                "upper-floors-via-elevator",
                "unit-wheelchair-accessible",
                "toilet-grab-rails",
                "adapted-bath",
                "roll-in-shower",
                "walk-in-shower",
                "raised-toilet",
                "lower-sink",
                "emergency-cord-bathroom",
                "shower-chair"
              ],
              "enumTitles": [
                "Unit on ground floor",
                "Upper floors accessible by elevator",
                "Entire unit wheelchair accessible",
                "Toilet with grab rails",
                "Adapted bath",
                "Roll-in shower",
                "Walk-in shower",
                "Raised toilet",
                "Lower sink",
                "Emergency cord in bathroom",
                "Shower chair"
              ]
            }
          },
          "distanceFromCenter": {
            "title": "Distance from city center",
            "enum": [
              "1km",
              "3km",
              "5km"
            ],
            "type": "string",
            "description": "Maximum distance from the city centre."
          },
          "ratedHigh": {
            "title": "Highly rated features",
            "type": "array",
            "description": "Booking's 'Highly rated for X' badges.",
            "items": {
              "type": "string",
              "enum": [
                "very-good-breakfast"
              ],
              "enumTitles": [
                "Very good breakfast"
              ]
            }
          },
          "sustainabilityLevel": {
            "title": "Sustainability certification",
            "enum": [
              "certified"
            ],
            "type": "string",
            "description": "Filter to properties carrying a sustainability certification."
          },
          "paymentTypes": {
            "title": "Payment options",
            "type": "array",
            "description": "Filter by payment methods accepted.",
            "items": {
              "type": "string",
              "enum": [
                "accepts-online-payments"
              ],
              "enumTitles": [
                "Accepts online payments"
              ]
            }
          },
          "bedPreference": {
            "title": "Bed preference",
            "enum": [
              "twin-beds",
              "double-bed"
            ],
            "type": "string",
            "description": "Twin beds vs. one double bed."
          },
          "reservationPolicy": {
            "title": "Reservation policy",
            "enum": [
              "free-cancellation"
            ],
            "type": "string",
            "description": "Restrict to free-cancellation offers."
          },
          "stayType": {
            "title": "Travel group / stay type",
            "type": "array",
            "description": "Filter for pet-friendly, adults-only, or LGBTQ+ friendly properties.",
            "items": {
              "type": "string",
              "enum": [
                "pet-friendly",
                "adults-only",
                "travel-proud"
              ],
              "enumTitles": [
                "Pet friendly",
                "Adults only",
                "Travel Proud (LGBTQ+ friendly)"
              ]
            }
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "popularity",
              "price",
              "review-score-and-price",
              "distance-from-landmark"
            ],
            "type": "string",
            "description": "How Booking sorts results within each (sub-)search.",
            "default": "popularity"
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Paste one or more booking.com/searchresults URLs. Useful when you need a contextual filter (district, chain, landmark, …) that the typed filters above don't support — copy the URL from your browser after applying the filter on Booking and paste it here.",
            "items": {
              "type": "string"
            }
          },
          "bbox": {
            "title": "Bounding box",
            "type": "object",
            "description": "Search within a geographic rectangle. Provide either bbox OR center+radius."
          },
          "center": {
            "title": "Center point",
            "type": "object",
            "description": "Latitude + longitude of the search center. Pair with `radiusMeters`."
          },
          "radiusMeters": {
            "title": "Radius (meters)",
            "minimum": 500,
            "maximum": 50000,
            "type": "integer",
            "description": "Radius around the center, in meters (500–50,000)."
          },
          "chain": {
            "title": "Hotel chain",
            "enum": [
              "mercure",
              "ibis",
              "ibis-styles",
              "astotel",
              "guestready",
              "studio-prestige",
              "check-my-guest",
              "belvilla",
              "sweett",
              "hiphop-hostels"
            ],
            "type": "string",
            "description": "Restrict to a specific hotel chain. For chains not in this list, copy the corresponding `chaincode=` URL from Booking and paste it in section 2 (Search by URL)."
          },
          "propertyUrls": {
            "title": "Property URLs",
            "type": "array",
            "description": "Direct hotel detail page URLs (booking.com/hotel/{cc}/{slug}.html). Each URL produces one full-schema row.",
            "items": {
              "type": "string"
            }
          },
          "propertySlugs": {
            "title": "Property slugs",
            "type": "array",
            "description": "Property identifiers as { slug, cc } pairs. The slug is the segment of the Booking URL after `/hotel/{cc}/`. Example: `[{\"slug\":\"hotelcameliaprestige\",\"cc\":\"fr\"}]`."
          },
          "scrapeDetails": {
            "title": "Scrape full detail page",
            "type": "boolean",
            "description": "If true, fetch the detail page for every stay returned by a search (modes A/B/E/F). Adds rooms, photos, facilities, coordinates, and richer descriptions — at the cost of one extra HTTP request per stay (charged as detail-page).",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Hard ceiling on how many stays to return. Set to 0 for unlimited.",
            "default": 1000
          },
          "currency": {
            "title": "Output currency",
            "enum": [
              "EUR",
              "USD",
              "GBP",
              "JPY",
              "AUD",
              "CAD",
              "CHF",
              "CNY",
              "SEK",
              "NZD",
              "BRL",
              "INR",
              "KRW",
              "MXN",
              "SGD",
              "HKD",
              "NOK",
              "DKK",
              "PLN",
              "TRY",
              "ZAR",
              "AED",
              "THB",
              "IDR",
              "MYR",
              "PHP",
              "CZK",
              "HUF",
              "RON",
              "ILS",
              "SAR"
            ],
            "type": "string",
            "description": "Booking's `selected_currency` URL param — forces all prices to this currency, regardless of the IP-geo default.",
            "default": "EUR"
          },
          "language": {
            "title": "Output language",
            "enum": [
              "en-us",
              "en-gb",
              "fr",
              "fr-ca",
              "de",
              "es",
              "es-ar",
              "it",
              "pt-pt",
              "pt-br",
              "nl",
              "pl",
              "cs",
              "da",
              "sv",
              "no",
              "fi",
              "ru",
              "tr",
              "ja",
              "ko",
              "zh-cn",
              "zh-tw",
              "th",
              "id",
              "ar"
            ],
            "type": "string",
            "description": "Booking's `lang` URL param — forces locale on titles, descriptions, address rendering.",
            "default": "en-us"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum parallel requests. Higher = faster, but more aggressive — Booking's WAF flags excessive concurrency. 5 is a safe default.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy is enabled by default with residential IPs. You can override or disable it here.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}