Expedia Reviews Scraper
Pricing
from $0.02 / 1,000 review saveds
Go to Apify Store
Expedia Reviews Scraper
Export public Expedia hotel reviews, ratings, guest text, dates, photos and management responses for hospitality research.
Expedia Reviews Scraper
Pricing
from $0.02 / 1,000 review saveds
Export public Expedia hotel reviews, ratings, guest text, dates, photos and management responses for hospitality research.
You can access the Expedia Reviews 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.1", "x-build-id": "Wvx5nTd3DMpsbHm7u" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/fetch_cat~expedia-reviews-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-fetch_cat-expedia-reviews-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/fetch_cat~expedia-reviews-scraper/runs": { "post": { "operationId": "runs-sync-fetch_cat-expedia-reviews-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/fetch_cat~expedia-reviews-scraper/run-sync": { "post": { "operationId": "run-sync-fetch_cat-expedia-reviews-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": { "propertyIds": { "title": "Expedia property IDs", "type": "array", "description": "Numeric Expedia property IDs, for example 905202. Provide at least one property ID or hotel URL; both lists are combined when supplied. No Expedia login is needed. Connections use the Actor's built-in direct access; no proxy setting or automatic proxy fallback is supported.", "items": { "type": "string" } }, "startUrls": { "title": "Expedia hotel URLs", "type": "array", "description": "Expedia Hotel-Information or Hotel-Reviews URLs containing .h<property ID>. Provide at least one hotel URL or property ID. Both lists are processed when supplied; repeated entries can repeat work.", "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "URL of a web page", "format": "uri" } } } }, "maxReviewsPerHotel": { "title": "Maximum reviews per hotel", "minimum": 1, "maximum": 10000, "type": "integer", "description": "Maximum unique reviews saved per property, from 1 to 10000. The form default is 20; the raw runtime fallback is 100 if this field reaches the Actor omitted. Set an explicit small limit in API inputs. Available results may be fewer.", "default": 20 }, "sortBy": { "title": "Sort reviews", "enum": [ "MOST_RELEVANT", "NEWEST_TO_OLDEST", "HIGHEST_TO_LOWEST_RATING", "LOWEST_TO_HIGHEST_RATING" ], "type": "string", "description": "Request relevance, newest-first, highest-rating-first or lowest-rating-first ordering from Expedia. Defaults to newest first. Actual order depends on Expedia's response and does not guarantee complete historical coverage.", "default": "NEWEST_TO_OLDEST" }, "includeRatingsOnly": { "title": "Include ratings-only reviews", "type": "boolean", "description": "Ask Expedia to include ratings-only entries, which may have null title and text. Defaults to true. Set false to request written reviews only; filtering depends on Expedia's response.", "default": true }, "search": { "title": "Review text search", "type": "string", "description": "Optional review-text search sent to Expedia. Leave empty for no text filter. Matching and availability depend on Expedia; the Actor does not apply an additional local text filter." }, "pageSize": { "title": "Reviews per request", "minimum": 1, "maximum": 50, "type": "integer", "description": "Reviews requested at a time, from 1 to 50; default 20. Also capped by the per-property review limit. Smaller values can require more requests for the same export.", "default": 20 }, "travelerType": { "title": "Traveler type", "type": "string", "description": "Optional traveler-type value sent to Expedia. Leave blank for no traveler filter. Accepted values and filtering depend on Expedia; arbitrary values are not guaranteed to work. This does not populate the reserved travelerType output field." }, "locale": { "title": "Expedia locale", "type": "string", "description": "Expedia locale for labels and submission dates; default en_US. Dates remain localized source text rather than normalized ISO dates. This does not translate guest review text.", "default": "en_US" }, "maxRuntimeSecs": { "title": "Runtime budget (seconds)", "minimum": 60, "maximum": 3600, "type": "integer", "description": "Shared time budget across all properties, in seconds; omitted means 270. The Actor reserves 30 seconds for saving output and its summary. The platform timeout can end the run earlier. Completed output is preserved, but this is not a guarantee that every requested property finishes." } } }, "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 Expedia Reviews 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: