TripAdvisor Reviews Scraper | Hotels, Restaurants, Attractions
Pricing
from $0.30 / 1,000 reviews
TripAdvisor Reviews Scraper | Hotels, Restaurants, Attractions
Extract reviews, ratings, reviewer profiles and owner responses from any TripAdvisor hotel, restaurant or attraction page. Pay per review. Use as an MCP server in Claude & AI agents.
Pricing
from $0.30 / 1,000 reviews
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Paste a TripAdvisor hotel, restaurant or attraction link and get its reviews as clean rows: star rating, title, full text, publish date, visit month, trip type, reviewer name and contribution count, helpful votes, and, when TripAdvisor shows them, the owner's reply, sub ratings, photos and the reviewer's home town. Turn on review insights for a star breakdown, the most common complaint words, the owner reply rate on bad reviews and a monthly rating trend. No TripAdvisor account and no API key.
Why choose this actor?
- Real reviews, newest first, in seconds. On 1 September our test run returned the 3 newest reviews of the Broadway Plaza Hotel in New York in 7.6 seconds, each with rating, title, full text, publish date, trip type and reviewer, with no blocks.
- Never charged for fake or dead pages. When an old TripAdvisor link redirects to a city "best hotels" page, which carries machine written summaries instead of reviews, the actor rejects the page and charges nothing. Blocked attempts are retried on a new IP and never charged.
- From $0.30 per 1,000 reviews. $0.00039 per review on the Free plan and $0.0003 on Gold, plus a start fee of $0.0025 to $0.005 per run. The residential proxy TripAdvisor requires is included.
Part of The Mine Works Marketing, SEO and reviews family: Facebook Ad Library Scraper, Google Ads Transparency Scraper, Similarweb Scraper, Google News Scraper, Trustpilot Reviews Scraper, Google Trends Scraper.
Try it in one minute
Paste this into the JSON tab of the input page and press Start:
{"urls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d223019-Reviews-Broadway_Plaza_Hotel-New_York_City_New_York.html"],"maxReviews": 10}
You get the 10 newest reviews of that hotel.
Give listings in urls as full TripAdvisor review page links: Hotel_Review, Restaurant_Review or Attraction_Review pages from tripadvisor.com, copied from your browser's address bar. A link that already points at a later page of reviews (with -or10 in it) is reset to the first page.
Apify's free plan includes $5 of credit every month, which covers about 11,000 reviews at this actor's Free plan price ($0.00039 a review plus the $0.005 start fee, in runs of 100 reviews).
Copy to your AI assistant
themineworks/tripadvisor-reviews on Apify. Scrapes reviews from TripAdvisor hotel, restaurant and attraction pages, newest first: reviewId, rating, title, text, publishedDate, visitDate, visitType, reviewerName, reviewerContributions, helpfulVotes, listingName, listingType, plus owner reply, sub ratings, photos and reviewer home town when TripAdvisor shows them. Call ApifyClient("TOKEN").actor("themineworks/tripadvisor-reviews").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: urls (string[] of TripAdvisor review page URLs). Optional: maxReviews (default 5; caps the whole run, so use one URL per run for a per listing cap), includeReviewInsights (default false; adds one _type "review_insights" row per listing, $0.02 each), proxyConfig (default Apify residential, US; keep it). language and sortBy are accepted but have no effect. Rows with _type "summary" or "info" are run reports and never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~tripadvisor-reviews/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
Key features
- Up to 21 fields per review: 16 about the review and reviewer, plus
listingUrl,listingName,listingType(hotel, restaurant or attraction, read from the link),chargedandscraped_at. Fields TripAdvisor does not show for a review are left out of the row. - Hotels, restaurants and attractions from the same input, read 10 reviews per page from the review data TripAdvisor builds into each page, newest first.
- Review insights row per listing (optional): count and percent of reviews at each star level, the share of 1 and 2 star reviews the owner answered, up to 12 common words or word pairs in bad reviews, and the average rating per month.
- Built for TripAdvisor's bot wall. Plain requests over Apify's US residential proxy, a new IP on every retry, up to 5 tries per page, and stops that end a run early when a listing is blocked or dead instead of spending on it.
- Deduplicated within a run by TripAdvisor's review ID, so a review that shifts between pages is delivered and charged once.
How to use it
Basic: the latest reviews of one hotel
{"urls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d223019-Reviews-Broadway_Plaza_Hotel-New_York_City_New_York.html"],"maxReviews": 100}
Several listings: one run per listing
maxReviews caps the whole run, not each listing. With several links in one run, the first listing can use up the cap and the rest get nothing, and the run stops after two listings in a row return no reviews. To get 100 reviews from each of three restaurants, start three runs (or three saved tasks) with one link each, or one run with maxReviews set to the total and the links in priority order.
Weekly reputation check with insights
{"urls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d223019-Reviews-Broadway_Plaza_Hotel-New_York_City_New_York.html"],"maxReviews": 50,"includeReviewInsights": true}
Save it as a task and schedule it weekly (for example 0 9 * * 1). Each run returns the newest 50 reviews and one insights row with the star breakdown, the owner reply rate on 1 and 2 star reviews and the words guests complain about most. Deduplicate on reviewId across runs to keep only reviews you have not seen; every run charges for every review it returns.
Competitor benchmarking in one city
Run the same input for your property and three competitors, one link per run, with maxReviews of 200 and insights on. Compare the insights rows side by side, and group the reviews by visitType to see which kind of traveller each place pleases or loses.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
urls | array of strings | required (form prefill: the Broadway Plaza Hotel link) | TripAdvisor hotel, restaurant or attraction review page links. |
maxReviews | integer (1 to 10,000) | 5 | Most reviews for the whole run (see "Several listings" above). Reviews come 10 per page. |
language | string | en | Accepted for compatibility, but currently not used: the run returns the reviews TripAdvisor shows on the page, and each row's language is reported when TripAdvisor gives it. |
sortBy | string | date_desc | Accepted for compatibility, but currently not used: reviews always come newest first, TripAdvisor's default order. |
includeReviewInsights | boolean | false | Add one review_insights row per listing that delivered at least one review, charged $0.02. |
proxyConfig | object | Apify residential proxy, US | TripAdvisor blocks datacenter IPs (5 of 5 attempts were refused in our 2 October test), so keep the residential default. |
Run options. The default memory is 512 MB and the default timeout is 300 seconds, which suits a few hundred reviews. For 1,000 or more, raise the timeout in the run options; a run that reaches its timeout saves what it collected and ends with a summary row.
What data do you get?
One row per review. Fields TripAdvisor does not show for a review are left out of the row rather than sent empty.
The review: reviewId, rating (1 to 5), title, text (full text), publishedDate (YYYY-MM-DD), visitDate (the month of the stay or visit, given as a date at the end of that month), visitType (such as COUPLES), helpfulVotes.
The reviewer: reviewerName (as TripAdvisor shows it, usually a first name and initial) and reviewerContributions (how many reviews they have written). The reviewer's home town is added when their profile shows one.
When TripAdvisor shows them: the owner's reply and its date, hotel sub ratings (such as cleanliness, service and value), photo links and the review's language. These did not appear in the reviews of our test run, so expect them on some rows only.
The listing: listingUrl (your link), listingName and listingType (hotel, restaurant or attraction, from the link).
Run fields: scraped_at, and charged, which is true on every review row.
Review insights rows (includeReviewInsights: true) carry _type: "review_insights", the listing's link, name and type, the star breakdown, the owner reply rate on 1 and 2 star reviews (empty when there were none), the top complaint terms with counts, the monthly rating trend (empty when all reviews fall in one month), the number of reviews and of bad reviews behind it, and the time it was computed.
Each run ends with a _type: "summary" row (total_reviews, charged_for, rejected_pages, datadome_blocks and the actor's own cost estimate) and a _type: "info" row. Neither is charged. Skip rows that have a _type field when you load reviews.
Stable fields for automations
These 14 fields were present in every review we sampled (the 3 reviews of our 1 September test run):
| Field | What it holds |
|---|---|
reviewId | TripAdvisor review ID; deduplicate on it |
rating | Stars, 1 to 5 |
title | Review title |
text | Full review text |
publishedDate | Date the review was published |
visitDate | Month of the visit, as a date |
visitType | Trip type, such as COUPLES |
reviewerName | Reviewer display name |
reviewerContributions | Number of reviews the reviewer has written |
helpfulVotes | Helpful votes on the review |
listingUrl | The link you gave |
listingName | Hotel, restaurant or attraction name |
listingType | hotel, restaurant or attraction |
scraped_at | ISO timestamp when the row was captured |
We will not rename these fields. New fields may be added over time; existing ones keep their names.
Output examples
Real rows from our test run on 1 September 2026 (Broadway Plaza Hotel, New York), with reviewer names masked.
A review row:
{"reviewId": "1074218919","rating": 5,"title": "Amazing hotel, just book it!","text": "We had a fantastic stay here, the location is perfect for exploring and there are loads of great restaurants and bars right on the doorstep. Hotel itself is beautiful, room was spotless and we slept really well. Staff were also great, particular shout out to concierge Anthony who helped us with taxis and is super friendly and helpful. We will definitely be back!!","publishedDate": "2026-08-21","visitDate": "2025-12-31","visitType": "COUPLES","reviewerName": "A** P","reviewerContributions": 2,"helpfulVotes": 0,"listingUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d223019-Reviews-Broadway_Plaza_Hotel-New_York_City_New_York.html","listingName": "Broadway Plaza Hotel","listingType": "hotel","charged": true,"scraped_at": "2026-09-01T21:14:51.914Z"}
The summary row of the same run (never charged; the cost estimate and guard fields are left out here):
{"_type": "summary","total_reviews": 3,"charged_for": 3,"charge_failures": 0,"rejected_pages": 0,"datadome_blocks": 0,"scraped_at": "2026-09-01T21:14:52.101Z"}
Pricing
Pay per event: you pay for each review delivered to your dataset, a start fee per run, and $0.02 per insights row if you ask for insights.
| Event | Free | Bronze | Silver | Gold and above |
|---|---|---|---|---|
review-scraped, per review | $0.00039 | $0.00036 | $0.00033 | $0.0003 |
review-scraped, per 1,000 reviews | $0.39 | $0.36 | $0.33 | $0.30 |
apify-actor-start, per GB of run memory | $0.005 | $0.00375 | $0.003 | $0.0025 |
review-insights-computed, per listing | $0.02 | $0.02 | $0.02 | $0.02 |
The start fee, exactly. Apify's apify-actor-start event is charged once when a run starts, at the price above for each GB of memory the run uses, with a minimum of one event. This actor runs on 512 MB by default, so a default run pays one event: $0.005 on the Free plan and $0.0025 on Gold.
Worked examples. 100 reviews of one hotel on the Free plan: $0.039 plus $0.005. The same with insights: $0.039 plus $0.02 plus $0.005, $0.064 in all. 1,000 reviews on Gold: $0.30 plus $0.0025.
Never charged: blocked attempts and retries, pages from dead or merged listings that redirect to a city summary page, a review already delivered in the same run, insights for a listing that delivered no reviews, and the summary and info rows. A run that delivers nothing pays only the start fee.
There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your own plan; if it and this table ever differ, the Pricing tab is right.
FAQ
What does it read from TripAdvisor? The public review pages of hotels, restaurants and attractions, the same pages anyone sees without logging in. TripAdvisor builds each page's reviews into the page itself; the actor reads them from there, 10 per page.
How many reviews can I get?
As many as the listing has, up to maxReviews per run (at most 10,000). Large hotels have thousands; each 10 reviews is one page request.
In what order do reviews come?
Newest first, which is TripAdvisor's default. The sortBy input is not used at the moment.
Can I get reviews in one language only?
Not at the moment: the language input is not used, and the run returns the reviews TripAdvisor's page shows. Filter the rows yourself on the review language when TripAdvisor gives it.
Why does a second listing in the same run return nothing?
Because maxReviews is a cap for the whole run today. Put one listing in each run, or set maxReviews to the total you want.
Do I need a TripAdvisor account, cookies or an API key? No. You need only an Apify account.
Which proxy does it use? Apify's residential proxy in the US, included in the price. TripAdvisor blocks datacenter IPs outright. Blocked attempts are retried on a new IP up to 5 times per page and never charged.
What happens with a closed or merged listing?
TripAdvisor often redirects an old listing link to a city "best of" page with machine written summaries. The actor detects that, rejects the page, counts it in rejected_pages and charges nothing.
Can I run it on a schedule?
Yes. Save your input as a task, then in Apify Console go to Schedules, Create new, and pick a time or a cron expression such as 0 9 * * 1. The actor does not remember earlier runs, so deduplicate on reviewId and keep maxReviews near the number of new reviews you expect.
How do I export the data?
From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. Drop the rows that have a _type field if you want reviews only.
Can I use it from Claude, ChatGPT or another AI assistant?
- Connector URL:
https://mcp.apify.com/?tools=themineworks/tripadvisor-reviews. - Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http tripadvisor-reviews "https://mcp.apify.com/?tools=themineworks/tripadvisor-reviews".
Is it legal to scrape TripAdvisor reviews? The actor reads only reviews that TripAdvisor publishes to anyone, without logging in. Reviewer names are personal data, so you are responsible for how you store and use them, including TripAdvisor's terms and data protection laws such as GDPR and CCPA. This actor is not affiliated with TripAdvisor. This is general information, not legal advice.
Integrations
- Google Sheets: export a run to a sheet, or use Apify's Google Sheets integration to append each week's reviews.
- Make, Zapier and n8n: use the Apify app or node to start a run and send 1 and 2 star reviews to Slack or a helpdesk.
- Webhooks: have Apify call your URL when a run succeeds, then read the dataset.
- API and client libraries: start runs and read datasets from Python, JavaScript or any HTTP client. The "Copy to your AI assistant" block above has the exact call.
- MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code can call the actor as a tool through
https://mcp.apify.com.
For service businesses, pair it with Trustpilot Reviews Scraper, which adds company replies.
More from The Mine Works
Marketing, SEO and reviews
- Facebook Ad Library Scraper
- Google Ads Transparency Scraper
- Similarweb Scraper
- Google News Scraper
- Trustpilot Reviews Scraper
- Google Trends Scraper
- Semrush Scraper
- App Review Monitor
- Trustpilot Business Search
- E-commerce Intel MCP
- Username Checker
- Backlink Building Agent
Social media and video
Leads and business directories
Real estate
Science, health and government data
Jobs and hiring
Company and business data
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a listing that returns no reviews, or need a field we do not return yet? Open an issue on the Issues tab of this page with the link and the run ID, and we will reply there. To ask for a new review source, email dmineworks@gmail.com.
TripAdvisor Reviews Scraper turns hotel, restaurant and attraction pages into review rows with ratings, trip types and optional insights, charged only per review delivered.

