TripAdvisor Reviews Scraper (Owner Replies, Sub-Ratings)
Pricing
from $0.28 / 1,000 reviews
TripAdvisor Reviews Scraper (Owner Replies, Sub-Ratings)
Scrape TripAdvisor reviews for hotels, restaurants and attractions: stars, title, text, dates, trip type, sub-ratings and owner replies, plus a place row with rating breakdown, ranking, address and reply rate. Filter by stars, language, date or keyword. No login. $0.50 per 1,000 reviews.
Pricing
from $0.28 / 1,000 reviews
Rating
0.0
(0)
Developer
locaihost data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Get TripAdvisor reviews for any hotel, restaurant, attraction or tour as clean JSON or CSV rows: stars, title, text, dates, trip type, the reviewer's sub-ratings and the owner's reply. Each place also gets a row with its rating, star breakdown, ranking, address and how often and how fast the owner replies. No login, no cookies, no account.
- Monitor your own property: schedule it daily with
onlyNewand get only the reviews posted since the last run, with your replies next to them. - Benchmark competitors: pull the last 90 days of reviews for every hotel on your street and compare ratings, sub-ratings (rooms, service, value) and reply rates.
- Find what guests complain about: 1- and 2-star reviews that mention "breakfast", "noise" or "parking", using TripAdvisor's own review search.
- Report for clients: one flat row per review, ready for sentiment analysis, a BI tool or a spreadsheet; one row per place for the summary page.
- Read reviews in the language they were written: pick languages, or get every review with TripAdvisor's English translation and the original language marked.
Quick start
Paste this into the JSON tab of the input and click Start:
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d93437-Reviews-Hotel_Edison_Times_Square-New_York_City_New_York.html", "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Daniel-New_York_City_New_York.html"], "maxReviewsPerPlace": 10}
You get the 10 newest reviews and one place row for each: 22 rows in about 5 seconds. Links from any TripAdvisor country site work (tripadvisor.co.uk, tripadvisor.de, tripadvisor.com.sg and so on), and so does the location id on its own (93437).
More examples:
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d93437-Reviews-Hotel_Edison_Times_Square-New_York_City_New_York.html"], "ratings": ["1", "2"], "reviewsSince": "90 days", "maxReviewsPerPlace": 1000}
{"startUrls": ["https://www.tripadvisor.co.uk/Attraction_Review-g60763-d105127-Reviews-Central_Park-New_York_City_New_York.html"], "languages": ["fr", "de"], "reviewsContaining": "bike", "maxReviewsPerPlace": 200}
What data can I get?
Review rows (type: "review"):
| Field | Example |
|---|---|
placeName, placeType, placeId | Daniel, restaurant, 457808 |
rating | 5 |
title, text | Great dinner, We celebrated our engagement at Daniel and had an absolutely wonderful dinner... |
publishedDate | 2026-10-10T07:27:04.048Z |
travelDate, tripType | 2025-12, couples |
subRatings | {"value": 5, "service": 5, "food": 5, "atmosphere": 5} (when the reviewer gave them) |
language, textLanguage, machineTranslated | en, en, false |
helpfulVotes, photosCount | 0, 3 |
ownerResponse | {"text": "Dear [name removed], Thank you so much for your kind review...", "date": "2026-05-01T20:19:25Z", "responderTitle": "Owner"} |
reviewerName, reviewerLocation | null unless you switch on Reviewer display names |
url, placeUrl | links to the review and the place on TripAdvisor |
Place rows (type: "place"), from the same run:
{"type": "place","name": "Hotel Edison Times Square","placeType": "hotel","address": "228 West 47th Street, New York City, NY 10036-1401","city": "New York City", "region": "New York", "country": "US","latitude": 40.759735, "longitude": -73.98615,"rating": 3.9, "reviewCount": 18836,"ratingHistogram": {"one": 1152, "two": 1330, "three": 3124, "four": 5721, "five": 7509},"subRatings": {"cleanliness": 4.1, "location": 4.8, "room": 3.6, "service": 4, "sleepQuality": 3.9, "value": 3.9},"ranking": "#169 of 529 hotels in New York City", "rankingPosition": 169, "rankingTotal": 529,"amenities": ["Blackout curtains", "Bathrobes", "Desk", "Housekeeping", "..."],"hotelStyles": ["Historic Hotel", "Classic", "City View", "Quiet", "Family"],"reviewsByLanguage": {"en": 14883, "es": 5850, "it": 5691},"reviewsCollected": 10, "ownerReplyRate": 0.8, "avgReplyLagDays": 1.7, "ratingLast90d": 4.22}
Restaurants also get priceLevel ($$$$), priceRange, cuisines, dietaryOptions, categories, and the restaurant's own phone, website and role e-mail (info@, reservations@). ownerReplyRate, avgReplyLagDays, ratingLast90d and reviewsLast90d are worked out from the reviews this run collected, so ask for more reviews (or use Reviews since) for a steadier number.
The dataset has four views (Reviews, Places, Owner replies, Not found (free)) and exports to JSON, CSV, Excel or HTML. The run's SUMMARY record has requests made, rows by kind, free rows by reason and timing.
How much does it cost?
You pay per review or place row returned. There is no charge for Apify platform usage on top.
| Row | Free and Starter | Scale | Business |
|---|---|---|---|
| Review | $0.50 per 1,000 | $0.375 per 1,000 | $0.275 per 1,000 |
| Place | $1.00 per 1,000 | $0.75 per 1,000 | $0.55 per 1,000 |
Plus $0.00005 per run start. Apify's free $5 monthly credit covers about 10,000 reviews. Free-plan runs stop at 1,000 rows each; any paid Apify plan removes the cap.
What's free: links that aren't a TripAdvisor place and places TripAdvisor doesn't have (each comes back as a free not-found row saying what to change), reviews skipped by onlyNew, place rows whose rating and review count haven't changed under onlyNew, and machine-translated copies left out when you pick languages. To cap a run's spend, set Maximum cost per run in the run options, or Max rows in total in the input.
Limits, stated up front
- Only what a logged-out visitor sees. Nothing behind a sign-in is read.
- TripAdvisor lists about 10,000 reviews per sort order. Asking for more makes the Actor read each star rating as its own list (duplicates removed), so up to 50,000 per place. Past the first list, rows follow star order rather than one strict date order. The run says when a place had more than any visitor can page through.
- With Languages empty, reviews written in other languages come in TripAdvisor's English machine translation (
machineTranslated: true,language= the original). Pick languages to get reviews as they were written. TripAdvisor's list for a language is mostly translations into it (for Chinese at a big New York attraction, about 1 review in 40 was written in Chinese), so a language filter can read many pages to find a few originals. The translations it skips are not charged; it just takes longer. - The ranking text is available for hotels and restaurants, not attractions. Phone and website are available for restaurants; hotels' booking links are partner offers and are not returned.
- Owner-reply rate, reply time and 90-day rating describe the reviews collected in the run, not every review the place ever had.
- Big requests are split fairly across the run's time limit. If time runs short, the run ends successfully with the rows so far and says what to narrow.
Privacy
Reviewers are members of the public, so the Actor keeps as little about them as it can:
- No reviewer names by default. Reviewer display names adds the public display name and home town shown on the review. Profile links, usernames, member ids and photos are never returned.
- E-mail addresses and phone numbers typed into a review are replaced with
[contact removed]. With reviewer names off, a reviewer's own name in the text ("Mr. Smith", a signature on the last line) is replaced with[name removed]too. - Owner replies keep the business's words, with the guest's name in the greeting and the staff member's signature replaced by
[name removed]. The responder is described by role only (Owner,Guest Services / Front Office).
Only new since last run, and schedules
Turn on Only new reviews and schedule the Actor daily. Each run returns only reviews that earlier runs with the same filters did not, and stops reading a place at the first page it had already sent. A run with nothing new charges nothing. Place rows come back only when the rating or review count changed, so a schedule also tracks rating changes. Adding a place to the list keeps the memory of the others. Set up a schedule under Schedules in Apify Console.
Integrations: API, n8n, Make and AI agents
API. Run it and get the rows back in one call:
curl -X POST "https://api.apify.com/v2/acts/locaihost~tripadvisor-reviews/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": ["457808"], "maxReviewsPerPlace": 50, "ratings": ["1", "2"]}'
Apify's API clients for Python and JavaScript work the same way.
n8n, Make, Zapier, Google Sheets, Slack, webhooks. Apify's built-in integrations send each run's dataset wherever you need it, for example new 1- and 2-star reviews into a Slack channel for the front office.
AI agents (MCP). Add this Actor to Claude, Cursor or any MCP client with https://mcp.apify.com/?tools=locaihost/tripadvisor-reviews, then ask something like "What did guests complain about at these three hotels in the last 90 days, and which one answers its reviews fastest?"
FAQ
How much does it cost to scrape TripAdvisor reviews?
$0.50 per 1,000 reviews and $1 per 1,000 places on the Free and Starter plans, less on Scale and Business. Apify's free $5 monthly credit covers about 10,000 reviews.
Which links work?
The page of one hotel, restaurant, attraction or tour on any TripAdvisor country site, or its location id. Vacation rental links are accepted too; where TripAdvisor shows no reviews for one, it comes back as a free row. City pages and lists of places are refused with a free row saying so.
How many reviews can I get per place?
All of them for most places. TripAdvisor lists about 10,000 per sort order; past that the Actor reads each star rating separately, up to 50,000 per place.
Can I get only bad reviews, or reviews about one topic?
Yes. Star ratings keeps only the stars you pick, and Reviews mentioning uses TripAdvisor's own review search for a word or phrase. Trip types narrows to families, couples, solo, business or friends.
Can I use it from an AI agent?
Yes. Through the Apify MCP server (https://mcp.apify.com/?tools=locaihost/tripadvisor-reviews) any MCP client can call it with a list of places and read the reviews back.
Is it legal to scrape TripAdvisor?
The Actor reads only what any logged-out visitor can see; it never logs in or uses an account. TripAdvisor's own terms restrict automated collection, so check them against your use. Review texts are written by members of the public: respect their copyright when republishing, follow privacy law (such as GDPR) if you switch on reviewer names, and never use the data to contact, profile or harass reviewers. You are responsible for how you use the results.
Why are some fields empty?
ownerResponse is null when the owner didn't reply, subRatings when the reviewer gave none, travelDate and tripType when they didn't say. On place rows, ranking is null for attractions, and phone, website and e-mail exist only where TripAdvisor shows the business's own.
More from locaihost data
- Trustpilot reviews: company reviews with replies and reply rate, in the same row style.
- BBB reviews and complaints: Better Business Bureau reviews, complaints and ratings.
- Google Maps business leads: local businesses with ratings and contact details from Google Maps.
Did it help?
If this saved you time, a quick rating on the Store helps other people find it.
Support
Something not working, a filter you need, or another review site with the same columns? Open an issue on the Issues tab: we answer issues within 24 hours.