Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
Tripadvisor Reviews Scraper icon

Tripadvisor Reviews Scraper

Extract Tripadvisor reviews for hotels, restaurants and attractions: rating, full text, reviewer, hometown, trip type, owner response and review URL.

30 runs on Apify $0.00025 per review ($0.25 / 1,000)
Run this in the cloudRun on Apify →

Reviews & Reputation Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust placeUrls, maxReviewsPerPlace, maxPlaces (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.00025 per review = $0.25 per 1,000

You are charged forWhenPrice
ReviewOne Tripadvisor review stored in the dataset. Sample rows and diagnostic rows are never charged.$0.00025
Actor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.001

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-10, and they are what you are actually charged.

Inputs

FieldWhat it doesType
placeUrlsTripadvisor hotel, restaurant or attraction review URLs. A bare slug such as Hotel_Review-g60763-d671150-Reviews-The_Empire_Hotel-New_York_City_New_York.html also works. Country domains (.co.uk, .fr, ...) are accepted. Leave empty to get one free, clearly labelled sample row.array
maxReviewsPerPlaceHow many reviews to return for each place, newest first. Tripadvisor serves 10 per page, so this rounds up to the next page. Only stored review rows are charged.integer
maxPlacesSafety bound on how many of the supplied URLs are processed in one run.integer

What you get

A structured dataset — each result includes fields like:

placeNameratingtitlereviewTextreviewerNamereviewerHometownpublishedAttripTypereviewUrl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Reviews & Reputation Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Booking.com Reviews Scraper iconReviews & Reputation Data

Booking.com Reviews Scraper

Extract public Booking.com guest reviews: rating, review title, positive and negative text, reviewer name and country.

Ready to run — no setup

Google Play Reviews Scraper iconApp Store Data

Google Play Reviews Scraper

Google Play reviews scraper at $0.09 per 1,000, flat at every volume. Unlimited reviews, any country or language, star and date filters. No API key.

Ready to run — no setup

2GIS Reviews Scraper iconMaps & Local Lead Generation

2GIS Reviews Scraper

Extract 2GIS reviews by place URL or city search: star rating, review text, author, date, photos, owner replies and aggregate rating. No 2GIS API key.

Ready to run — no setup

Yelp Scraper iconMaps & Local Lead Generation

Yelp Scraper

Scrape Yelp businesses and reviews via Yelp's official Fusion API: rating, review count, price, phone, address, GPS and review text.

Ready to run — no setup

Glassdoor Company Reviews Scraper iconJob Market Scrapers

Glassdoor Company Reviews Scraper

Scrape Glassdoor company reviews and ratings by company name or URL. Get pros, cons, recommend rate and CEO approval as rows for analysis.

20 use cases

Google Reviews Monitor — Multi-Location Alerts & Reports iconMaps & Local Lead Generation

Google Reviews Monitor — Multi-Location Alerts & Reports

Track Google Maps reviews across all your locations. Get only-new deltas, negative-review and rating-drop alerts to Slack, plus AI summaries and reply drafts.

4 use cases

See all Reviews & Reputation Data →

Tripadvisor Reviews Scraper

Give it a Tripadvisor hotel, restaurant or attraction URL and it returns the public reviews as structured rows: star rating, title, full review text, reviewer name and hometown, trip date and trip type, the owner's reply, and a direct link to the review on Tripadvisor.

No browser and no residential proxy, so it is fast and cheap. Plain HTTP requests, about 10-15 reviews per request.

$0.25 per 1,000 reviews ($0.00025 each), plus $0.001 each time a run starts. That is the cheapest Tripadvisor review scraping on the market.

What you get

One row per review. The coverage column below is measured on a single real run of 100 reviews pulled from four places at once - The Empire Hotel in New York, a restaurant, the Empire State Building, and a London hotel. These are counts from that run, not estimates.

FieldCoverageExample
reviewId100%1072411899
reviewUrl100%https://www.tripadvisor.com/ShowUserReviews-g60763-d671150-r1072411899-...
rating100%4
title100%Clean but Needs Remodeling
reviewText100%365 characters on average
publishedAt100%2026-08-10
createdAt100%2026-08-09
tripDate99%2026-08-31
tripType99%FAMILY, COUPLES, SOLO, FRIENDS, BUSINESS
language100%en, fr, it, es
helpfulVotes100% present, 0 on most reviews2
reviewerName100%amahmoud
reviewerId100%51BDB06A78983782F6571787209484D5
reviewerProfileUrl100%https://www.tripadvisor.com/Profile/amahmoud
reviewerContributions100%65
reviewerHometown42%Seattle, Washington
ownerResponseText53%the management reply, full text
ownerResponseAt53%2026-08-08
placeId100%671150
placeName100%The Empire Hotel
placeUrl100%the URL you supplied
placeType100%ACCOMMODATION, EATERY, ATTRACTION, ACTIVITY
placeRating100%3.7
placeReviewCount100%9795
scrapedAt100%ISO timestamp

reviewerHometown and ownerResponseText are below 100% because Tripadvisor genuinely does not have them for every review - reviewers can leave the hometown blank, and most reviews get no management reply. Every other column was populated on all 100 rows.

Sample output row

{
  "reviewId": "1072411899",
  "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g60763-d671150-r1072411899-The_Empire_Hotel-New_York_City_New_York.html",
  "rating": 4,
  "title": "Clean but Needs Remodeling",
  "reviewText": "Stayed four nights in a king room on the 9th floor. The bed was comfortable and the staff at the front desk were genuinely helpful with luggage and restaurant bookings...",
  "publishedAt": "2026-08-10",
  "createdAt": "2026-08-09",
  "tripDate": "2026-07-31",
  "tripType": "COUPLES",
  "language": "en",
  "helpfulVotes": 2,
  "reviewerName": "amahmoud",
  "reviewerId": "51BDB06A78983782F6571787209484D5",
  "reviewerProfileUrl": "https://www.tripadvisor.com/Profile/amahmoud",
  "reviewerContributions": 65,
  "reviewerHometown": "Seattle, Washington",
  "ownerResponseText": "Thank you for taking the time to share your feedback. We are glad the team looked after you...",
  "ownerResponseAt": "2026-08-08",
  "placeId": "671150",
  "placeName": "The Empire Hotel",
  "placeUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d671150-Reviews-The_Empire_Hotel-New_York_City_New_York.html",
  "placeType": "ACCOMMODATION",
  "placeRating": 3.7,
  "placeReviewCount": 9795,
  "scrapedAt": "2026-08-10T04:22:11.903Z"
}

Every row is flat - no nested objects, no arrays - so the dataset exports cleanly to CSV, Excel, JSON or XML straight from the run's Storage tab, or through the Apify API and any of the client libraries.

Input

{
  "placeUrls": [
    "https://www.tripadvisor.com/Hotel_Review-g60763-d671150-Reviews-The_Empire_Hotel-New_York_City_New_York.html"
  ],
  "maxReviewsPerPlace": 40
}
  • placeUrls - hotel, restaurant or attraction review URLs. A bare slug works too. Country

domains (.co.uk, .fr, .it, ...) work and return that domain's review set.

  • maxReviewsPerPlace - newest first. Up to 5000.
  • maxPlaces - safety bound on how many URLs one run processes.
  • proxyConfiguration - optional. Leave it empty; the run uses Apify's shared rotating datacenter

addresses, which cost nothing on top of the run. If you supply proxyUrls, your own servers are used exactly as given. Metered proxy groups are not offered and a request for one is replaced, with a notice on the output row, so a run can never quietly bill per gigabyte.

Input field names follow the conventions used across similar Actors, so switching is usually a drop-in change - point placeUrls at your existing list of place URLs and set the per-place limit.

Leave placeUrls empty and you get one clearly labelled sample row, free. A run with empty input was measured charging exactly zero review events.

Pricing

$0.25 per 1,000 reviews, plus a $0.001 run start fee. You are charged once per review row actually stored - a 100-review run was measured charging exactly 100 events. Sample rows and diagnostic rows are never charged, and a bad URL costs you nothing.

Reviews in a runReview costStart feeTotal
100$0.025$0.001$0.026
1,000$0.25$0.001$0.251
10,000$2.50$0.001$2.501
100,000$25.00$0.001$25.001

There is no subscription, no monthly minimum and no per-place fee. This is the cheapest Tripadvisor review scraping on the market.

How deep can it go

Verified on The Empire Hotel, which has 8,923 reviews: page requests worked all the way to offset 8,920 with no rate limiting and no cap. Hotels and attractions serve 10 reviews per page, restaurants serve 15; the actor works this out from the first page rather than assuming.

Each page request returns a block of reviews, so 1,000 reviews from a hotel is about 100 requests and finishes in a couple of minutes on the default 1 GB memory. Several place URLs in one run are processed one after another, each with its own limit, and one place failing does not stop the rest.

What to use it for

  • Reputation monitoring - schedule a daily run on your own properties and alert on any new

review below 3 stars. publishedAt and reviewId make deduplication trivial.

  • Competitive benchmarking on the demand side - pull the review sets of the hotels or

restaurants in one city and compare rating distributions and complaint themes over time.

  • Review-response coverage - ownerResponseText and ownerResponseAt show which reviews a

property answered and how fast, across a whole portfolio.

  • Training and evaluation data - rated, dated, language-tagged review text for sentiment

models, topic extraction or LLM evaluation sets.

  • Trip-context segmentation - tripType and tripDate split feedback into families, couples,

solo and business travellers, and into the season each stay actually happened in.

What this does not do

  • No review photos. Tripadvisor's review list returns an empty photo array on every review, so

there is no photo column rather than a column that is always empty. Photos need a different query that this actor does not make.

  • No place search. You supply the place URL; it does not find places by name or by city.
  • No sort or language filter options. Reviews come back in Tripadvisor's default order, newest

first. Options that were not verified to change results are not exposed.

  • Attraction pages return the attraction's product reviews. For a big attraction, Tripadvisor's

own review list is largely reviews of the bookable tickets and tours attached to it. Each row carries the placeName, placeId and placeType of what was actually reviewed, so you can tell them apart.

  • Vacation rental pages are not supported and return an uncharged diagnostic row.
  • No private or removed reviews - only what a logged-out visitor can see.
  • No reviewer contact details. Tripadvisor does not publish them and this actor does not guess.

FAQ

How do I scrape Tripadvisor reviews without getting blocked? Run this Actor and leave the proxy settings alone. It requests the public review pages the way an ordinary visitor's browser does, retries a refused page on a fresh exit address several times, and if a page still will not load you get an uncharged diagnostic row saying so instead of a silent gap. No headless browser is involved.

Does it need a residential proxy? No. It uses Apify's shared rotating datacenter addresses, which add nothing to the run cost. Metered proxy groups are deliberately not offered - review pages are large, and per-gigabyte bandwidth would cost more than the reviews themselves for no extra coverage.

Can I scrape all reviews for a hotel? Yes. Set maxReviewsPerPlace up to 5000. Deep pagination was tested to offset 8,920 on a hotel with 8,923 reviews.

Does it work for restaurants and attractions too? Yes, and for Tripadvisor's country domains. Hotels, restaurants, attractions and activities were all covered in the same 100-review test run.

Can I scrape several places in one run? Yes. Put every URL in placeUrls; maxReviewsPerPlace applies to each of them, and maxPlaces bounds how many one run touches. Duplicate URLs are collapsed.

How much does 1,000 reviews cost? $0.25, plus the $0.001 start fee, so $0.251.

What happens if a place has no reviews, or the URL is wrong? You get a single uncharged diagnostic row saying which it was. You are never charged for a run that returned no reviews.

Can I get the reviewer's email? No. Tripadvisor does not publish reviewer emails and this actor does not attempt to guess them.

Is scraping Tripadvisor reviews legal? This Actor only reads pages any logged-out visitor can open, and it collects no private data. You are responsible for how you use the output - check Tripadvisor's terms and your local rules, particularly around personal data, before you republish anything.