TripAdvisor Reviews Scraper | Hotels, Restaurants, Attractions avatar

TripAdvisor Reviews Scraper | Hotels, Restaurants, Attractions

Pricing

from $0.30 / 1,000 reviews

Go to Apify Store
TripAdvisor Reviews Scraper | Hotels, Restaurants, Attractions

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

3 TripAdvisor reviews in 7.6 seconds

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.

Run it on Apify

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), charged and scraped_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

ParameterTypeDefaultWhat it does
urlsarray of stringsrequired (form prefill: the Broadway Plaza Hotel link)TripAdvisor hotel, restaurant or attraction review page links.
maxReviewsinteger (1 to 10,000)5Most reviews for the whole run (see "Several listings" above). Reviews come 10 per page.
languagestringenAccepted 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.
sortBystringdate_descAccepted for compatibility, but currently not used: reviews always come newest first, TripAdvisor's default order.
includeReviewInsightsbooleanfalseAdd one review_insights row per listing that delivered at least one review, charged $0.02.
proxyConfigobjectApify residential proxy, USTripAdvisor 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):

FieldWhat it holds
reviewIdTripAdvisor review ID; deduplicate on it
ratingStars, 1 to 5
titleReview title
textFull review text
publishedDateDate the review was published
visitDateMonth of the visit, as a date
visitTypeTrip type, such as COUPLES
reviewerNameReviewer display name
reviewerContributionsNumber of reviews the reviewer has written
helpfulVotesHelpful votes on the review
listingUrlThe link you gave
listingNameHotel, restaurant or attraction name
listingTypehotel, restaurant or attraction
scraped_atISO 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.

EventFreeBronzeSilverGold 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

Social media and video

Leads and business directories

LinkedIn

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.