Booking Hotel Scraper
Pricing
from $1.00 / 1,000 results
You can access the Booking Hotel Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, youβll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "1uEgD72sEi3dLe8Nh" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/api-ninja~booking-hotel-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-api-ninja-booking-hotel-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/api-ninja~booking-hotel-scraper/runs": { "post": { "operationId": "runs-sync-api-ninja-booking-hotel-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/api-ninja~booking-hotel-scraper/run-sync": { "post": { "operationId": "run-sync-api-ninja-booking-hotel-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": { "searchMode": { "title": "π Search mode", "enum": [ "url", "manual" ], "type": "string", "description": "Choose a Booking.com search URL or build a search with the manual destination and filters below. Filters can also override URL values.", "default": "url" }, "url": { "title": "π Booking.com search URL", "type": "string", "description": "Paste a booking.com/searchresults.html URL. Its destination, dates, guests, filters, currency and language are used automatically. Any explicitly passed parameter overrides its URL counterpart; invalid URL hints (past dates, unknown codes) are ignored rather than rejected. Pagination starts at page 1, regardless of the URL offset." }, "maxResults": { "title": "π― Desired number of hotels", "minimum": 25, "type": "integer", "description": "Maximum number of unique hotels to save (at least 25). Stops earlier if the API returns an empty results array. Ignored when Scrape all is enabled.", "default": 100 }, "scrapeAll": { "title": "βΎοΈ Scrape all available hotels", "type": "boolean", "description": "Automatically fetch pages until the API returns an empty results array. No fixed page or result cap. Ignores the desired result count.", "default": false }, "query": { "title": "π Destination / search query", "type": "string", "description": "Location to search, e.g. New York, Berlin or Paris. Resolves to the first matching destination. Required in manual mode unless both destination ID and type are supplied. In URL mode, a nonblank query overrides the URL destination." }, "dest_id": { "title": "π Destination ID", "type": "string", "description": "Booking destination ID from Autocomplete. Supply together with destination type instead of a query." }, "dest_type": { "title": "πΊοΈ Destination type", "type": "string", "description": "Destination type from Autocomplete, paired with destination ID. Copy the exact returned value (e.g. city)." }, "checkin": { "title": "π
Check-in date", "type": "string", "description": "YYYY-MM-DD, today or later. Leave blank to use the URL date or, without a valid URL date, tomorrow." }, "checkout": { "title": "π
Check-out date", "type": "string", "description": "YYYY-MM-DD, after check-in. Leave blank to use the URL date or, without a valid URL date, check-in + 1 night." }, "adults": { "title": "π§ Adults", "minimum": 1, "maximum": 30, "type": "integer", "description": "Number of adults (1β30). Leave blank to use the URL value or 2 adults.", "default": null }, "children_ages": { "title": "π§ Childrenβs ages", "type": "string", "description": "Comma-separated ages from 0 to 17, e.g. 5,12. Leave blank to keep URL ages or travel without children. To clear ages from a URL, remove its age and group_children parameters." }, "rooms": { "title": "ποΈ Rooms", "minimum": 1, "maximum": 30, "type": "integer", "description": "Number of rooms (1β30). Leave blank to use the URL value or 1 room.", "default": null }, "sort_by": { "title": "βοΈ Sort hotels", "type": "string", "description": "Leave blank for the URL order or Bookingβs top picks (popularity). Website order codes such as bayesian_review_score, price_from_high_to_low, distance_from_search and upsort_bh are accepted. You can also enter an endpoint-supported order code." }, "price_min": { "title": "π° Minimum stay price", "minimum": 0, "type": "integer", "description": "Minimum total price for the stay in the selected currency. Leave blank to keep the URL filter or apply no minimum.", "default": null }, "price_max": { "title": "π° Maximum stay price", "minimum": 0, "type": "integer", "description": "Maximum total price for the stay in the selected currency. Must be at least the minimum price. Leave blank to keep the URL filter or apply no maximum.", "default": null }, "stars": { "title": "β Star ratings", "type": "string", "description": "Comma-separated hotel star ratings to include, from 1 to 5 (e.g. 4,5). Leave blank to keep URL filters or include all ratings." }, "min_review_score": { "title": "π¬ Minimum guest review score", "enum": [ "", "6", "7", "8", "9" ], "type": "string", "description": "Leave blank to keep the URL filter or apply no minimum. Choose 6 (Pleasant), 7 (Good), 8 (Very good) or 9 (Superb)." }, "locale": { "title": "π Response language", "type": "string", "description": "Booking language code, e.g. en-us, de or fr. Leave blank to keep the URL language or use en-us." }, "currency": { "title": "π± Display currency", "type": "string", "description": "3-letter currency code, e.g. USD, EUR or GBP. Leave blank to keep the URL currency or use USD." } } }, "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 }, "PROXY_UNBLOCKER_UNITS": { "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 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Booking Hotel Scraper from the options below:
If youβd like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: