ActorsComparePricingFAQAboutBrowse actors on Apify
Tripadvisor Reviews Scraper icon

Maps, places and travel

Tripadvisor Reviews Scraper: Hotels and Restaurants

Tripadvisor Reviews Scraper is an Apify actor (API) by CheapAPI Labs. Reviews of hotels, restaurants and attractions with ratings, owner replies and a mode that returns only new reviews. It costs $0.40 per 1,000 reviews on the Apify Free plan and $0.29 on Gold, plus $0.0001 per place with reviews ($0.00001 on Gold), billed through your Apify account with no API key.

Compared with the most used Tripadvisor review actor (about 9,900 users): 1,000 reviews from 10 places on the Free plan costs $0.40 here and $5.00 there (Apify Store listing prices, checked September 2026).

Our prices updated 30 October 2026; competitor prices as checked in the comparison. 1 Apify user has run this actor (Apify Store count, 30 October 2026).

Free plan$0.40per 1,000 reviews
Gold plan$0.29per 1,000 reviews
API keyNot neededbilled by Apify

What does Tripadvisor Reviews Scraper return?

Get Tripadvisor reviews for any hotel, restaurant, attraction or vacation rental, by URL or just by name + city, and keep watching them: a date cut off and "only new reviews since the last run" make scheduled monitoring cheap. Ratings, full review text, dates, reviewer details, photos and owner replies, ready as JSON, CSV or Excel. No login, no browser, no proxies.

One example row from a real run, shortened:

{
  "id": "2106fcda0b824c70",
  "input": "https://www.tripadvisor.com/Hotel_Review-g34345-d224525-Reviews-Orchid_Key_Inn-Key_West_Florida_Keys_Florida.html",
  "searchTerm": null,
  "placeName": "Orchid Key Inn",
  "placeUrl": "https://www.tripadvisor.com/Hotel_Review-g34345-d224525-Reviews-Orchid_Key_Inn-Key_West_Florida_Keys_Florida.html",
  "placeLocation": "1004 Duval Street, 33040-3126, Key West, Florida, US",
  "placeCategory": null,
  "placePriceLevel": null,
  "placeRating": 4.9,
  "placeReviewsCount": 3247,
  "placeRatingDistribution": {
    "1": 2,
    "2": 9,
    "3": 55,
    "4": 307,
    "5": 2874
  },
  "reviewId": "1079122546",
  "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g34345-d224525-r1079122546-Orchid_Key_Inn-Key_West_Florida_Keys_Florida.html",
  "reviewRating": 5,
  "reviewTitle": "Beautiful Stay in the Heart of Key West!",
  "reviewText": "We had an amazing stay at the Orchid Key Inn during our Key West getaway! ...",
  "language": "en",
  "originalLanguage": "en",
  "publishedDate": "2026-09-24T00:00:00.000Z",
  "dateOfVisit": "2026-09-01T00:00:00.000Z",
  "position": 1,
  "reviewerName": "Neilio T",
  "reviewerProfileUrl": "https://www.tripadvisor.com/Profile/GoPlaces723194",
  "reviewerAvatarUrl": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/eb/e3/default-avatar-2020-59.jpg",
  "reviewerLocation": "Key West, Florida",
  "reviewerReviewsCount": 4,
  "reviewImages": [
    "https://dynamic-media-cdn.tripadvisor.com/media/v2/photo-o/34/b3/1d/15/image.jpg",
    "https://dynamic-media-cdn.tripadvisor.com/media/v2/photo-o/34/b3/1d/16/image.jpg",
    "https://dynamic-media-cdn.tripadvisor.com/media/v2/photo-o/34/b3/1d/17/image.jpg"
  ],
  …
}

Which fields do you get?

One row per review:

Field Type Example
id string 2106fcda0b824c70 (stable hash of place id + review id)
input string https://www.tripadvisor.com/Hotel_Review-g34345-d224525-…html
searchTerm string | null Orchid Key Inn, Key West (null for URL and dataset inputs)
placeName string Orchid Key Inn
placeUrl string https://www.tripadvisor.com/Hotel_Review-g34345-d224525-…html
placeLocation string 1004 Duval Street, 33040-3126, Key West, Florida, US
placeCategory string | null Hotel (from name searches)
placePriceLevel string | null $$ - $$$ (from name searches)
placeRating number 4.9
placeReviewsCount number 3247
placeRatingDistribution object {"1": 2, "2": 9, "3": 55, "4": 307, "5": 2874}
reviewId string 1079122546
reviewUrl string https://www.tripadvisor.com/ShowUserReviews-…html
reviewRating number 5
reviewTitle string Beautiful Stay in the Heart of Key West!
reviewText string We had an amazing stay at the Orchid Key Inn…
language string en
originalLanguage string en (differs from language when the review was machine translated)
publishedDate string (ISO date) 2026-09-24T00:00:00.000Z
dateOfVisit string (ISO date) 2026-09-01T00:00:00.000Z
position number 1
reviewerName string Neilio T
reviewerProfileUrl string https://www.tripadvisor.com/Profile/GoPlaces723194
reviewerAvatarUrl string https://dynamic-media-cdn.tripadvisor.com/…jpg
reviewerLocation string Key West, Florida
reviewerReviewsCount number 4
reviewImages array of strings ["https://dynamic-media-cdn.tripadvisor.com/…/image.jpg"]
ownerResponseTitle string | null Response from the owner
ownerResponseText string | null Thank you for staying with us!
ownerResponseDate string | null 2026-09-25T00:00:00.000Z
ownerResponses array all replies: title, text, language, date
highlights array sub ratings, e.g. [{"feature": "Value", "assessment": "5"}]
requestedLanguage string en
scrapedAt string (ISO date) 2026-09-29T05:12:40.118Z

The dataset has three ready views in the Console: Reviews, Reviewers and Places. A RUN_SUMMARY record in the run's key value store lists places and reviews collected, reviews skipped by the cut off, and which inputs were skipped and why.

How much does Tripadvisor Reviews Scraper cost?

You pay per event, through your Apify account. Main price: $0.40 per 1,000 reviews on the Apify Free plan and $0.29 on Gold, plus $0.0001 per place with reviews ($0.00001 on Gold). Every event and plan:

Price per event in USD by Apify plan. Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.
EventFreeBronzeSilverGold
ReviewOne Tripadvisor review delivered to the dataset (rating, text, dates, reviewer, photos, owner reply).$0.0004$0.0004$0.0004$0.00029
Place with reviewsCharged once per place for which at least one review was delivered.$0.0001$0.0001$0.0001$0.00001
Place found by name searchCharged once per new place found through "Search by name" (not for places given as URLs or already in your input).$0.0022$0.0022$0.0022$0.00125
Page checked without enough resultsCharged only when a request came back with too few reviews or places to cover its own cost (small place, filters or cut off matching nothing, no new reviews, a search that found nothing). Never more than needed for that request.$0.0028$0.0028$0.0028$0.0015

How do I call Tripadvisor Reviews Scraper API from code?

Every run is one HTTP request to the Apify API with your Apify token; the input below is the actor's own example. The synchronous endpoint returns the rows in the response for runs up to 300 seconds; for longer runs start a run and fetch its dataset.

curl -X POST "https://api.apify.com/v2/acts/cheapapi~tripadvisor-reviews-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"}],"maxReviewsPerPlace":100,"language":"en"}'

With the JavaScript client:

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cheapapi/tripadvisor-reviews-scraper').call({
  "startUrls": [
    {
      "url": "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"
    }
  ],
  "maxReviewsPerPlace": 100,
  "language": "en"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

How does Tripadvisor Reviews Scraper compare with alternatives?

Cost of a typical run, 1,000 reviews from 10 places given as URLs, on each Apify plan:

Option Free Bronze Silver Gold Platinum / Diamond Start fee per run Built in "only new reviews" monitoring
Most used Tripadvisor review Actor (~9,900 users) $5.00 $1.90 $1.50 $0.90 $0.50 / $0.30 $0.00005 ✗
Popular flat price review Actor (~1,300 users) $0.50 $0.50 $0.50 $0.50 $0.50 none ✗
Flat price Actor with start fee (~600 users) $5.01 $0.51 $0.51 $0.51 $0.51 $0.01 ✗
This Actor $0.40 $0.40 $0.40 $0.29 $0.29 none ✓

Prices from public Apify Store listings, checked September 2026; user counts are rounded. Totals include each option's start fee and our $0.0001 per place fee (10 places = $0.001); Apify platform usage is not included for any option (for this Actor it is billed separately by Apify, about $0.001 to $0.004 for a small run at the default 256 MB). The flat $0.50 option is the closest in price: we are $0.10 cheaper per 1,000 reviews on Free to Silver and $0.21 cheaper on Gold and above, and you also get the date cut off, "only new reviews since the last run" (repeats never charged as reviews), name search and bulk input from a dataset. Against the most used Actor we are much cheaper on Free to Gold, 42% cheaper on Platinum, and about the same price on Diamond ($0.29 vs $0.30 per 1,000), there the reasons to choose this Actor are the built in monitoring, cut off and bulk input, not the price. Gold and above always use economy processing here (results can take up to ~45 minutes). If you search by name instead of pasting URLs, add $0.0022 per place found (e.g. $0.022 for 10 places).

What is it used for?

  • Reputation monitoring, schedule a daily run with "Only new reviews since the last run" and send new 1 to 2 star reviews to Slack or email.
  • Competitor benchmarking, compare ratings, star distributions and complaint themes of the top 20 hotels or restaurants in a city.
  • Sentiment and topic analysis, feed full review text into LLM, NLP or BI pipelines.
  • Owner reply audits, measure how often and how fast management responds (ownerResponseDate vs publishedDate).
  • Seasonal and audience research, filter by months of visit and traveler type.
  • Lead generation for hospitality vendors, find places with recurring complaints (cleanliness, WiFi, noise).

What is not included?

  • Place coordinates, website and phone number, our Tripadvisor review data does not contain them. For coordinates, websites, phone numbers and Google reviews of the same places, use Google Maps Scraper Plus.
  • Helpful vote counts of individual reviews, not available in our review data, so they are not guessed.
  • The reviewer's traveler type as a field, it works as a filter (Traveler types), so filter per type if you need it per row.
  • Reviews Tripadvisor hides or removes, and anything behind a login.
  • Place only listings without reviews (e.g. a list of all hotels in a city with prices), this Actor delivers reviews; places are only context on each review row.

What are the limits?

  • Maximum 4,490 reviews per place per run; you never receive (or pay for) more than your limit per place.
  • Published dates have day precision, so the cut off works per day; reviews from the same day that were already delivered are recognized by their review id.
  • The monitoring watch lives in a named key value store in your account; deleting it or changing the name starts a new watch.
  • Traveler type and month filters rely on what reviewers entered on Tripadvisor; reviews without that information are not matched by those filters.
  • City matching for name searches works best with "City, Country". Very small towns may not be recognized, use the URL instead.
  • Sub ratings (highlights), photos and owner replies are present only when the reviewer / owner provided them. Helpful votes, place coordinates and place websites are not included (see Not included).
  • A source dataset is read up to its first 50,000 rows; your account must be able to access it.

Questions about Tripadvisor Reviews Scraper

Is it legal to scrape Tripadvisor reviews?

The Actor collects only publicly visible reviews, without logging in. Reviews contain personal data such as reviewer names; you are responsible for using them lawfully (e.g. GDPR, CCPA) and in line with Tripadvisor's terms. Ask a lawyer if you are unsure.

What do I pay besides the event prices? Is there a Free plan limit?

Apify platform usage (compute) is billed separately by Apify, at the default 256 MB a small run typically uses about $0.001 to $0.004. On the Apify Free plan the Actor can be used for up to $0.25 of results per calendar month, enough to try it: Apify pays developers nothing for Free plan usage while our data costs are real. A run that reaches the allowance stops cleanly and keeps everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit.

Why was I charged a "page checked" fee? Am I charged for reviews older than the cut off?

Reviews older than the cut off, or already delivered in an earlier run, are removed before they reach the dataset and are never charged. But every place we check and every name search is a paid request on our side, billed by the number of reviews asked for (pages of 10), even when little comes back. When the delivered reviews (or places found) don't cover that request, the difference is charged as "page checked" fees: $0.0028 each on Free to Silver, $0.0015 on Gold and above, only as many as needed. Typical causes: Only new reviews with nothing new, filters or a cut off that match nothing, Max reviews per place far above what the place has (a place with 4 reviews and a limit of 100 costs $0.0213 on Free to Silver), a search that found nothing, or a request that was sent but got no answer. RUN_SUMMARY.pagesChecked shows the count.

How do I monitor a place for new reviews, and how is that different from "Only reviews since"?

Turn on Only new reviews since the last run and schedule the Actor. The first run delivers the latest reviews up to your limit; every later run delivers only reviews published since. Use Monitoring store name to keep separate watches. "Only reviews since" is a fixed window (e.g. the last 30 days) and remembers nothing; you can combine both, and the later of the two dates is used.

Why did I get fewer reviews than I asked for? How many can I get per place?

Up to 4,490 per place per run. You get fewer when the place has fewer reviews in the chosen language, your filters (ratings, months, traveler types) or cut off exclude them, "Include translated reviews" is off, or your maximum cost per run was reached. RUN_SUMMARY tells you which inputs were skipped and why. Split very large places into several runs with filters.

How can I control my budget?

Set Maximum cost per run in the run options; the Actor stops there, and a monitoring watch continues from that point next time. Max reviews per place also caps each place.

Can I load many places at once?

Yes. Put the dataset ID of an earlier run into Source dataset ID. Every row with a Tripadvisor place link in url or placeUrl is used, and duplicates are collected once. You can also paste hundreds of URLs, or upload a text file of links in Tripadvisor URLs.

How do I de duplicate reviews across runs?

Use the id field. It is a hash of the Tripadvisor place id and review id, so the same review always has the same id, whichever language or input you used.

How fresh is the data, and which export formats are supported?

Reviews are collected live from Tripadvisor during your run, not from a stored database. Export as JSON, CSV, Excel, XML, HTML table or RSS from the Console or the API.

The name search picked the wrong place, or something doesn't work. What now?

Add the country (Paris, France vs Paris, Texas) or paste the Tripadvisor URL instead. For anything else, open an issue on the Actor's Issues tab and include your run link, so we can reproduce the problem.

Run Tripadvisor Reviews Scraper on Apify

The form opens with a working example. Free Apify accounts get a small monthly allowance.

Open on Apify