TripAdvisor Reviews Scraper - Hotels, Restaurants, Attractions
Pricing
from $0.50 / 1,000 dataset items
TripAdvisor Reviews Scraper - Hotels, Restaurants, Attractions
TripAdvisor Reviews Scraper extracts hotel, restaurant and attraction reviews by URL. At $0.50 per 1,000 reviews, all in with the per-place query charge, it returns 22 structured fields per review across 20 locale domains.
TripAdvisor Reviews Scraper
TripAdvisor Reviews Scraper is an Apify actor that extracts reviews from TripAdvisor hotel, restaurant and attraction listings by start URL. TripAdvisor Reviews Scraper charges $0.005 per place plus $0.0005 per review, or $0.50 per 1,000 reviews beyond each place's free allowance.
The TripAdvisor Reviews Scraper accepts 8 input fields, reads from 20 TripAdvisor locale domains, returns 22 top-level fields per review, and bills through 2 pay-per-event charge events. Every price below is a per-event charge with no subscription and no monthly minimum. The TripAdvisor Reviews Scraper runs on the Apify platform and needs only a list of TripAdvisor URLs to start.
What Does the TripAdvisor Reviews Scraper Extract?
The TripAdvisor Reviews Scraper returns 22 top-level fields per review, grouped into 8 categories. Seven of the 22 fields are nested objects or arrays that carry further detail.
| Category | Top-level field | Nested detail |
|---|---|---|
| Review content | id, createdDate, publishedDate, publishPlatform, rating, language, originalLanguage, translationType, title, text, url, helpfulVotes, mcid | 13 flat fields |
| Trip context | tripInfo | 2 fields: stayDate, tripType |
| Sub-ratings | additionalRatings | array, 2 fields per entry: ratingLabel, rating |
| Photos | photos | array, 2 fields per entry: id, url |
| Reviewer profile | userProfile | 7 fields, including a nested contributionCounts object of 2 fields |
| Management response | ownerResponse | 7 fields: id, publishedDate, language, text, username, responder, connectionToSubject |
| Listing details | location | 4 fields: locationId, placeType, parentGeoId, name |
| Source metadata | inputSource | 4 fields: startUrl, placeId, pageNumber, filters |
translationType is set to MACHINE and originalLanguage holds the source language whenever the languages filter caused TripAdvisor to return a machine-translated review.
Which TripAdvisor Listing Types Does the TripAdvisor Reviews Scraper Accept?
The TripAdvisor Reviews Scraper accepts 3 TripAdvisor listing types through the startUrls field: Hotel_Review, Restaurant_Review and Attraction_Review detail pages. Each URL must use the http or https protocol and resolve to a hostname that contains tripadvisor, and it must carry a place ID in the -d<digits>- segment of its path. A URL that fails either check is logged and skipped rather than stopping the run.
startUrlstakes an array of TripAdvisor detail URLs, such ashttps://www.tripadvisor.com/Hotel_Review-g60763-d15288822-Reviews-...html, and queues one review query per unique place ID found in the array.- Two start URLs that resolve to the same place ID are deduplicated: only the first is queued, and the TripAdvisor Reviews Scraper logs the later one as already queued.
Who Uses the TripAdvisor Reviews Scraper?
Listed below are the 4 roles that run the TripAdvisor Reviews Scraper against TripAdvisor listing data.
- Market analysts and researchers read
rating,additionalRatingsandtripInfoacross every place instartUrlsto compare listings on price-independent, structured sub-ratings such as Value, Rooms, Location and Cleanliness. - Hospitality teams filter with
sinceandratingsto pull recent low-scoring reviews, then readtext,ownerResponseandhelpfulVotesto prioritize which guest complaints already have a management reply and which do not. - Content creators and bloggers read
text,photosanduserProfile.displayNameto source quotable, attributable guest feedback for destination and accommodation write-ups. - Academic and tourism researchers use
languagesandlocaletogether withcustomMapFunctionto build multi-language datasets of guest-generated content across hotels, restaurants and attractions.
What Does the TripAdvisor Reviews Scraper Cost?
The TripAdvisor Reviews Scraper charges 2 pay-per-event types. A review-query costs $0.005 and a dataset-item costs $0.0005.
| Event | Price | Charged for |
|---|---|---|
review-query | $0.005 | Once per unique place in startUrls, charged up front regardless of how many pages of reviews that place needs. |
dataset-item | $0.0005 | Once per review written to the dataset. On paid plans, the first 10 reviews of every place are free; on free plans every review is charged. |
TripAdvisor Reviews Scraper Cost Examples
The table below prices 4 scenarios against the rate card above.
| Scenario | Charge events | Calculation | Total cost |
|---|---|---|---|
| 1 place, 100 reviews, paid plan | 1 review-query + 90 dataset-item (10 free) | $0.005 + (90 x $0.0005) | $0.05 |
| 3 places, 10 reviews each, paid plan | 3 review-query + 0 dataset-item (all 30 free) | 3 x $0.005 | $0.015 |
| 1 place, 10 reviews, free plan | 1 review-query + 10 dataset-item (no free allowance) | $0.005 + (10 x $0.0005) | $0.01 |
| 5 places, 50 reviews each, paid plan | 5 review-query + 200 dataset-item (10 free per place) | (5 x $0.005) + (200 x $0.0005) | $0.125 |
TripAdvisor Reviews Scraper Unit Economics
The 4 figures below are derived from the rate card above. None of them include the review-query charge unless stated.
| Metric | Value |
|---|---|
Reviews per $1, dataset-item charges only | 2,000 |
| Cost per 1,000 reviews beyond a place's free allowance (paid plan) | $0.50 |
Ratio between a review-query charge and a dataset-item charge | 10x |
| Free reviews per place, paid plan only | 10 |
A run also checks its budget before it starts. If ACTOR_MAX_TOTAL_CHARGE_USD cannot cover one review-query per place, or, on a free plan, leaves no room for at least one dataset-item charge afterward, the TripAdvisor Reviews Scraper stops before queuing any request. In that case a non-paying account is charged for 10 dataset-item events as a minimum charge before the run exits; a paid account is not, since its per-place free allowance can still cover output on a query-only budget.
Does the TripAdvisor Reviews Scraper Offer a Free Demo Mode?
Yes. Free-plan accounts can run the TripAdvisor Reviews Scraper without a subscription, capped at 5 runs per month and 10 items per run. This cap overrides any maxItems value passed in the input: a Free-plan run does not scrape past 10 items per run, regardless of what maxItems requests. The Apify API is not available on the Free plan. Subscribing to a paid plan removes both caps and enables API access.
How Is the TripAdvisor Reviews Scraper Configured?
The TripAdvisor Reviews Scraper exposes 8 input fields covering start URLs, date and rating filters, language and locale, pagination and output shaping.

| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | Yes | TripAdvisor detail URLs to scrape. Only Hotel_Review, Restaurant_Review and Attraction_Review URLs are accepted. |
since | string | No | Only return reviews published on or after this date, as YYYY-MM-DD. |
ratings | array of 1 to 5 | No | Only return reviews with these star ratings. |
languages | array | No | Target language for the reviews, as a language code such as en. Only the first value is applied; reviews not written in it come back machine-translated with translationType set to MACHINE. |
locale | string, 1 of 20 values | No | TripAdvisor domain the reviews are read from, such as tr for tripadvisor.com.tr. It does not translate on its own; translation follows languages. |
endPage | integer | No | Final page to scrape, applied per start URL. |
maxItems | integer | No | Maximum reviews to output, applied across all start URLs combined. |
customMapFunction | string | No | A JavaScript function that takes each output object and returns the object that gets pushed. |
The locale field accepts 20 values: fr, de, it, es, pt, nl, sv, da, no, tr, ru, he, th, ko, zh, ja, el, vi, id and ar.
Which Input Rules Does the TripAdvisor Reviews Scraper Enforce?
The TripAdvisor Reviews Scraper enforces 9 input rules covering URL validation, deduplication, filter scope and output shaping.
| # | Rule |
|---|---|
| 1 | At least one entry in startUrls is required; an empty or missing list fails the run before any charge. |
| 2 | Each start URL must use http or https and resolve to a hostname containing tripadvisor; anything else is logged and skipped. |
| 3 | Each start URL must contain a place ID in its path; one that does not is logged as error C001 and skipped. |
| 4 | Two start URLs pointing at the same place ID are deduplicated to a single review-query charge. |
| 5 | languages applies only its first value; further entries in the array are ignored downstream. |
| 6 | endPage limits pages per start URL; maxItems limits total reviews across every start URL. |
| 7 | The months and types inputs from the previous, non pay-per-event version of the actor are no longer supported. Passing them logs a warning and does not affect the run. |
| 8 | If customMapFunction throws, the TripAdvisor Reviews Scraper logs a warning and pushes the untransformed review instead of failing the run. |
| 9 | A free-plan run additionally needs budget headroom for at least one dataset-item charge after its review-query charges, or it stops before starting. |
The proxy and extendOutputFunction inputs from the previous, non pay-per-event version of the actor were removed from the input schema; passing them does not break a run, they are simply ignored.
How Do You Run a Basic Scrape with the TripAdvisor Reviews Scraper?
The TripAdvisor Reviews Scraper needs only startUrls to run: queue one or more TripAdvisor detail URLs and leave every other field unset to pull every review for those places, page by page, in the language it was written in.
{"startUrls": ["https://www.tripadvisor.com/Restaurant_Review-g60763-d25324283-Reviews-Allora_Fifth_Ave-New_York_City_New_York.html","https://www.tripadvisor.com/Hotel_Review-g60763-d15288822-Reviews-SpringHill_Suites_New_York_Manhattan_Times_Square_South-New_York_City_New_York.html"]}
How Do You Run a Filtered Scrape with the TripAdvisor Reviews Scraper?
The TripAdvisor Reviews Scraper narrows to recent, high-rated, English-language reviews when since, ratings, languages, endPage and maxItems are added: this example caps the first page of each place at 20 reviews total and reshapes each item with customMapFunction before it is pushed.
{"startUrls": ["https://www.tripadvisor.com/Restaurant_Review-g60763-d25324283-Reviews-Allora_Fifth_Ave-New_York_City_New_York.html","https://www.tripadvisor.com/Hotel_Review-g60763-d15288822-Reviews-SpringHill_Suites_New_York_Manhattan_Times_Square_South-New_York_City_New_York.html"],"since": "2024-01-01","ratings": ["4", "5"],"languages": ["en"],"endPage": 1,"maxItems": 20,"customMapFunction": "(object) => { return {...object} }"}
Which Fields Does the TripAdvisor Reviews Scraper Output?
The TripAdvisor Reviews Scraper outputs 22 top-level fields per review, listed in the capability table above, plus an inputSource object that records which startUrl, placeId, pageNumber and filter set produced the item. A real dataset item looks like this:
{"id": 1071727142,"locationId": 1469038,"createdDate": "2026-08-05","publishedDate": "2026-08-05","publishPlatform": "OTHER","rating": 1,"language": "en","originalLanguage": "en","translationType": null,"title": "SEVERE HYGIENE ISSUES - fleas and black mold","text": "Our stay at Hotel Cosmopolitan Bologna was an absolute nightmare...","url": "https://www.tripadvisor.com/ShowUserReviews-g187801-d1469038-r1071727142-Hotel_Cosmopolitan_Bologna-Bologna_Province_of_Bologna_Emilia_Romagna.html","helpfulVotes": 0,"mcid": 0,"tripInfo": {"stayDate": "2026-08-31","tripType": "COUPLES"},"additionalRatings": [{ "ratingLabel": "Value", "rating": 1 },{ "ratingLabel": "Rooms", "rating": 1 },{ "ratingLabel": "Location", "rating": 4 },{ "ratingLabel": "Cleanliness", "rating": 1 },{ "ratingLabel": "Service", "rating": 2 },{ "ratingLabel": "Sleep Quality", "rating": 1 }],"location": {"locationId": 1469038,"placeType": "ACCOMMODATION","parentGeoId": null,"name": "Hotel Cosmopolitan Bologna"},"provider": null,"photos": [{ "id": 874047470, "url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/34/18/e7/ee/caption.jpg?w=2252&h=-1&s=1" }],"userProfile": {"userId": "033CD45E8168DFF759DEE83BE8A69697","displayName": "Lucie M","username": "LucieKatM","avatar": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/ef/9c/default-avatar-2020-14.jpg?w=1200&h=-1&s=1","route": "/Profile/LucieKatM","hometown": null,"contributionCounts": {"sumAllUgc": 1,"helpfulVote": null}},"ownerResponse": {"id": 1072666621,"publishedDate": "2026-08-11","language": "en","text": "Dear Mrs Maredova, thank you for sharing your feedback...","username": "Daniele Scagliotti","responder": "Daniele Scagliotti","connectionToSubject": "Direttore generale"},"inputSource": {"startUrl": "https://www.tripadvisor.com/Hotel_Review-g187801-d1469038-Reviews-Hotel_Cosmopolitan_Bologna-Bologna_Province_of_Bologna_Emilia_Romagna.html","placeId": "1469038","pageNumber": 1,"filters": { "endPage": 1 }}}
Which Errors Does the TripAdvisor Reviews Scraper Report?
The TripAdvisor Reviews Scraper reports 6 error codes. 3 of the 6 codes are non-terminal, skipping one URL, place or page while the rest of the run continues. 3 codes terminate the run: C098, C099 and C100.
The 3 non-terminal codes split into 3 recovery behaviors:
- 1 code (
C001) skips a single start URL whose path carries no extractable place ID; every other start URL still runs. - 2 codes (
C005,C006) skip a single place's page after the request layer's retries (10 by default) are exhausted or return a response without areviewsarray; the TripAdvisor Reviews Scraper moves on to the next queued page.
| Code | Meaning | Terminal |
|---|---|---|
C001 | No place ID was found in a start URL's path. | No |
C005 | The reviews request for a place failed after retrying. | No |
C006 | The reviews response for a place and page was missing its reviews array. | No |
C098 | An unhandled promise rejection occurred during the run. | Yes |
C099 | An uncaught exception occurred during the run. | Yes |
C100 | The run failed to initialize against the TripAdvisor Reviews Scraper's policy service. | Yes |
Which TripAdvisor Reviews Scraper Questions Come Up Most Often?
Does the TripAdvisor Reviews Scraper support Hotel, Restaurant and Attraction pages?
Yes. The TripAdvisor Reviews Scraper accepts Hotel_Review, Restaurant_Review and Attraction_Review detail URLs in the same startUrls array.
Can the TripAdvisor Reviews Scraper filter reviews by date and rating?
Yes. The since field filters by a YYYY-MM-DD lower bound and the ratings field filters to the selected 1 to 5 star values; both are optional and combine with each other.
Does the TripAdvisor Reviews Scraper translate reviews?
No. The TripAdvisor Reviews Scraper does not translate on its own. Setting languages returns reviews machine-translated by TripAdvisor into that language, with originalLanguage and translationType: "MACHINE" marking the ones that were translated.
What happens when a TripAdvisor Reviews Scraper start URL is invalid?
The TripAdvisor Reviews Scraper logs the URL as invalid and skips it; the run continues with the remaining start URLs and no charge is made for the skipped one.
Are duplicate place URLs charged twice by the TripAdvisor Reviews Scraper?
No. The TripAdvisor Reviews Scraper deduplicates start URLs by place ID before queuing, so a place listed twice is charged one review-query.
Can maxItems be set per URL in the TripAdvisor Reviews Scraper?
No. maxItems caps the total reviews across every start URL in the run; endPage is the field that applies per start URL.
Is there a keyword-search version of the TripAdvisor Reviews Scraper?
Yes. The TripAdvisor Scraper actor runs keyword and location searches to discover place URLs, descriptions and ratings, which then feed into the TripAdvisor Reviews Scraper's startUrls.
Where Do You Get TripAdvisor Reviews Scraper Support?
The TripAdvisor Reviews Scraper is published and maintained by epctex. General product questions go through epctex.com, and direct support is available at business@epctex.com. A video walkthrough of the TripAdvisor Reviews Scraper is available on YouTube.