HRS Hotel Scraper
Pricing
from $1.50 / 1,000 hotels
HRS Hotel Scraper
HRS (hrs.com) hotel listings by location and travel dates: prices, ratings, amenities, and optional pictures, hotel details, and guest reviews. Structured JSON per hotel.
HRS Hotel Scraper
Pricing
from $1.50 / 1,000 hotels
HRS (hrs.com) hotel listings by location and travel dates: prices, ratings, amenities, and optional pictures, hotel details, and guest reviews. Structured JSON per hotel.
You can access the HRS 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": "1.0", "x-build-id": "725uokR1cecUvCzrA" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/datascrapers~hrs-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-datascrapers-hrs-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/datascrapers~hrs-scraper/runs": { "post": { "operationId": "runs-sync-datascrapers-hrs-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/datascrapers~hrs-scraper/run-sync": { "post": { "operationId": "run-sync-datascrapers-hrs-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": { "locations": { "title": "Locations", "type": "array", "description": "City or region names to search on HRS (e.g. Berlin, Munich, Paris). Resolved via the HRS location autocomplete API.", "items": { "type": "string" } }, "locationIds": { "title": "Location IDs", "type": "array", "description": "Optional HRS location IDs to skip autocomplete (e.g. 55133 for Berlin). Use instead of or together with location names." }, "checkInDate": { "title": "Check-in date", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string", "description": "Check-in date in YYYY-MM-DD format. Defaults to today. If a past date is provided (including stale prefill values), it is automatically moved to today and check-out is set to six nights later." }, "checkOutDate": { "title": "Check-out date", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string", "description": "Check-out date in YYYY-MM-DD format. Defaults to six nights after check-in. Adjusted automatically when check-in is moved forward from a past date." }, "language": { "title": "Language", "enum": [ "en", "de", "fr", "es", "it", "nl", "pl" ], "type": "string", "description": "Language code for location search and hotel URLs.", "default": "en" }, "roomType": { "title": "Room type", "enum": [ "SINGLEROOM", "DOUBLEROOM", "THREEBEDROOM", "FOURBEDROOM" ], "type": "string", "description": "HRS room type for the search request.", "default": "SINGLEROOM" }, "rooms": { "title": "Rooms", "minimum": 1, "maximum": 8, "type": "integer", "description": "Number of rooms to request.", "default": 1 }, "adults": { "title": "Adults per room", "minimum": 1, "maximum": 6, "type": "integer", "description": "Number of adults per room.", "default": 1 }, "children": { "title": "Children per room", "minimum": 0, "maximum": 6, "type": "integer", "description": "Number of children per room.", "default": 0 }, "currency": { "title": "Currency", "enum": [ "EUR", "USD", "GBP", "CHF" ], "type": "string", "description": "Expected price currency (informational; prices come from the API).", "default": "EUR" }, "includePictures": { "title": "Include pictures", "type": "boolean", "description": "Fetch additional hotel pictures beyond the search thumbnail.", "default": true }, "includeHotelDetails": { "title": "Include hotel details", "type": "boolean", "description": "Fetch full hotel detail page data (description, amenities, room offers, contact info, all pictures). Adds extra API calls per hotel.", "default": false }, "includeReviews": { "title": "Include reviews", "type": "boolean", "description": "Fetch guest reviews and extended rating breakdowns from the hotel detail page. Adds extra API calls per hotel.", "default": false }, "maxReviewsPerHotel": { "title": "Max reviews per hotel", "minimum": 0, "type": "integer", "description": "Maximum number of guest reviews to include per hotel when Include reviews is enabled (0 = all available).", "default": 0 }, "maxItems": { "title": "Max Items", "minimum": 0, "type": "integer", "description": "Maximum number of hotels to scrape (0 = unlimited)", "default": 0 }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Proxy settings for anti-bot protection", "default": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ] } } } }, "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 HRS 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: