Tripadvisor Reviews Scraper
Pricing
from $0.04 / 1,000 reviews
Tripadvisor Reviews Scraper
Tripadvisor reviews scraper API for any hotel, restaurant, attraction or tour: stars, title, text, date, trip type, photos, the owner's reply and the reviewer. Filter by stars, trip type, language, month or dates, and get the place's rating, ranking and address on every row.
Pricing
from $0.04 / 1,000 reviews
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Features
Share
Tripadvisor reviews scraper for hotels, restaurants, attractions and tours: paste a place's link and get one row per review, with the stars, title, full text, the date it was written, the trip type, photo links, the owner's reply and the reviewer.
Every row also carries the place itself: its rating, how many reviews it has at each star, its sub-ratings, its ranking and its address. Tripadvisor's own filters work: stars, trip type, language, the month a review was written, words it mentions, and a date window.
Tripadvisor translates some reviews by machine. Those rows say so, and one switch leaves them out.
| Input | Tripadvisor links to hotels, restaurants, attractions or tours, from any Tripadvisor country site, or location ids |
| Output | One row per review: stars, title, text, date written, travel month, trip type, language, sub-ratings, photo links, the owner's reply, the reviewer, and the place's rating, ranking and address |
| Ceiling | 100,000 reviews per place, 200,000 per run |
| Speed | About 200 reviews in 10 seconds (measured on our runs) |
| Account needed | None from you |
| Price | $0.037 per 1,000 reviews, the same rate on every plan. The free plan's $5 a month covers about 135,000 reviews |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/tripadvisor-reviews-scraper |
| Set one field | startUrls, labelled "Places" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/tripadvisor-reviews-scraper |
| How often | Daily, with "Only new reviews" on, to see each new review the day it appears |
🔍 What Tripadvisor Reviews Scraper does
It opens each place you give it, reads the reviews the way the place's page lists them, 20 at a time, and writes one row per review until it has the number you asked for. A hotel with 5,000 reviews can come back whole.
The filters are Tripadvisor's own, so a run asking for one-star family reviews reads only those. Each row is checked against your filters again before it is written, and a row that does not match is left out and not charged.
Two options save time on repeat work. "Written since" and "Written until" take a date window, and the run goes straight to it instead of reading everything newer. "Only new reviews" remembers what earlier runs gave you, in a store in your own account, and returns only the reviews written since.
📋 What data you get from each Tripadvisor review
| What you get | Field |
|---|---|
| The review's id and link | reviewId, reviewUrl |
| Stars, title and text | rating, title, text |
| When it was written, and the month of the trip | writtenAt, travelDate |
| Who travelled | tripType (family, couples, solo, business, friends) |
| Language and translation | language, originalLanguage, machineTranslated |
| Stars for value, rooms, food, service and so on | subratings |
| Votes, tip and photo links | helpfulVotes, tip, photoCount, photos |
| The owner's reply | ownerResponse.text, ownerResponse.writtenAt, ownerResponse.responderRole |
| The reviewer (optional) | reviewer.name, reviewer.username, reviewer.profileUrl, reviewer.avatarUrl, reviewer.hometown, reviewer.contributions |
| The place | locationId, placeName, placeType, placeUrl |
| The place's details (optional) | place.rating, place.reviewCount, place.ratingHistogram, place.subratings, place.ranking, place.address, place.city, place.country, place.latitude, place.longitude, place.priceRange, place.cuisines, place.website |
| What reviews talk about, and visitors' questions | place.reviewTopics, place.questionCount, place.questions (question, date, answer count, top answer) |
| Where the row came from | searchInput, position, scrapedAt |
▶️ How to scrape Tripadvisor reviews
- Open Tripadvisor Reviews Scraper and click Try for free.
- Paste one or more place links into Places, one per line. A hotel, restaurant, attraction or tour page all work.
- Set Reviews per place. Twenty is plenty for a first look.
- Pick any filters under Filters: stars, trip types, language, months, words, dates.
- Click Start, then open the Output tab or export the rows as CSV, Excel or JSON.
An empty run returns one free sample row showing the shape of the output.
💰 How much does it cost to scrape Tripadvisor reviews?
$0.037 per 1,000 reviews, the same rate on every plan. The free plan's $5 a month covers about 135,000 reviews.
Not charged: the sample row, note rows, a review a run has already returned, and reviews left out by your filters. The place's details on each row cost nothing extra.
📥 What you give it
| Field | What it does | Default |
|---|---|---|
startUrls | Place links or location ids (the number after -d in a link), one per line | none (prefill The Ritz London) |
maxReviewsPerPlace | Reviews for each place, up to 100,000 | 100 |
maxItems | Reviews in the whole run, up to 200,000 | no limit |
searchResultsDatasetId | A dataset with placeUrl, url, webUrl or locationId columns | none |
sortBy | mostRecent, oldest, detailed, insightful or tripadvisor | mostRecent |
ratings | Stars, "1" to "5" | all |
tripTypes | family, couples, solo, business, friends | all |
monthsWritten | january to december: the month the review was written, in any year | all |
languages | en, fr, de, es, it, ja, zhCN and 21 more; a review comes once, in the first of them it is listed in | all |
originalLanguageOnly | Leave out machine-translated reviews | off |
searchText | Only reviews mentioning these words | none |
reviewsSince, reviewsUntil | 2026-01-31, or for "since" a span like 30 days or 6 months | none |
monitoringStoreName | A store in your account that remembers what earlier runs returned | none |
includePlaceDetails, includeReviewerDetails | Add the place's details and the reviewer to every row | on |
flattenOutput | One column per field, for a spreadsheet | off |
A date written any other way, or a rating, month or language the list does not have, stops the run before it asks Tripadvisor anything, with a free row saying which field to fix.
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g186338-d187591-Reviews-The_Ritz_London-London_England.html"],"maxReviewsPerPlace": 200,"ratings": ["1", "2"],"reviewsSince": "6 months"}
📤 What you get back
A review from a real run on 7 November 2026, trimmed:
{"recordType": "review","reviewId": "1082388362","reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g186338-d187591-r1082388362-The_Ritz_London_Hotel-London_England.html","rating": 5,"title": "My 70th birthday treat.","text": "Beautiful hotel. Great staff, food loverly and the deluxe bedroom we stayed in was superb.","writtenAt": "2026-10-19T11:21:55.679Z","travelDate": "2026-10","tripType": "couples","language": "en","machineTranslated": false,"subratings": { "value": 5, "rooms": 5, "location": 5, "cleanliness": 5, "service": 5, "sleepQuality": 5 },"photoCount": 15,"ownerResponse": {"text": "Dear Navigate47220128632,\n\nWe are delighted to read that you enjoyed your experience with us. We hope to welcome you back to The Ritz soon.","writtenAt": "2026-10-21T16:53:03.33Z","responderRole": "General Manager"},"placeName": "The Ritz London Hotel","placeType": "hotel","place": {"rating": 4.7,"reviewCount": 5411,"ratingHistogram": { "1": 86, "2": 72, "3": 180, "4": 510, "5": 4563 },"ranking": "#145 of 1,217 hotels in London","address": "150 Piccadilly, London W1J 9BR England"}}
| Field | How to read it |
|---|---|
writtenAt | When the reviewer wrote it, in UTC |
travelDate | Year and month of the stay or visit; empty when the reviewer gave none |
language, machineTranslated | The language of text; when it was translated, originalLanguage is the one it was written in |
photos | Links to Tripadvisor's own photo files, at full size |
place | Empty when "Place details" is off; a tour has no address or position |
place.questions | The questions the place's page shows, with each one's top answer; empty where the page shows none |
🧾 Reading the output
Real rows have recordType review. The free sample row has _sample: true. Note rows have ok: false, cost nothing and carry an errorCode:
BAD_INPUT: a field was unusable, so nothing was asked of Tripadvisor.detailssays which.NOT_FOUND: Tripadvisor has no place under that link.NO_RESULTS: the place has no review matching every filter, or no new review since your last run with that store.NOT_SERVED: Tripadvisor did not answer for this place during the run. Run it again later.TIME_LIMIT: the run's time limit came first; reviews before it are delivered.COST_LIMIT: your maximum cost was reached.UNEXPECTED_ERROR: something broke on our side; please report it.
To keep only reviews, filter on recordType being review.
💡 What people use it for
- Hotel and restaurant owners reading what guests say about them and about the places around them, sorted by stars.
- Anyone choosing between places: every one-star and two-star review of a shortlist, side by side.
- Teams answering reviews: a daily run with "Only new reviews" on, kept to the rows where
ownerResponseis empty. - Researchers who need review text in quantity, by language and by month, for sentiment or topic work.
A small recipe: run a list of hotels with ratings ["1", "2"] and reviewsSince 6 months, then count the words in text that come up most, place by place.
🚧 What it does not do
- Up to 100,000 reviews per place and 200,000 per run.
- No phone numbers or e-mail addresses, the place's or anyone else's.
- Photos are links, not downloaded files.
- Reviews come as Tripadvisor publishes them; removed reviews don't come.
- It is not an official Tripadvisor tool. Dami's Studio is independent and is not affiliated with or endorsed by Tripadvisor, or by any other company named on this page.
🧭 Which Tripadvisor scraper do you need?
| If you want | Use |
|---|---|
| Reviews of hotels, restaurants, attractions and tours on Tripadvisor | This one |
| Reviews of the same places on Google Maps | Google Maps Reviews Scraper |
| Agoda hotels with their guest reviews | Agoda Hotels Scraper |
| Hotel prices and rooms on Booking.com | Booking.com Hotels Scraper |
❓ Questions people ask
Do I need a Tripadvisor account to scrape reviews?
No. You don't need a Tripadvisor account. The run reads what a signed-out visitor sees on tripadvisor.com.
Why don't my numbers match what I see on Tripadvisor?
The page you see may show only reviews in your language, while place.reviewCount counts every language. New reviews also appear all day. Open the place in a private browser window, pick "All languages", and compare with a run started at the same moment.
Can I get only the new reviews every day?
Yes. Put a name in "Only new reviews: store name", such as my-hotels, and schedule the run. Each run returns only reviews written since the last one, and a free note row for a place with nothing new.
How do I call it from code or an AI assistant?
Use the actor's API tab, or connect an assistant through https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/tripadvisor-reviews-scraper. In Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("dami_studio/tripadvisor-reviews-scraper").call(run_input={"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g186338-d187591-Reviews-The_Ritz_London-London_England.html"],"maxReviewsPerPlace": 50,},max_total_charge_usd=0.10,)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("ok") is False:continueprint(row["rating"], row["title"])
Is scraping Tripadvisor legal?
The reviews are public and read the way a signed-out visitor sees them, with no account and nothing private. Reviewer names and hometowns are personal data under laws like GDPR, so keep only what you need, or untick "Reviewer details". Tripadvisor's own terms still apply to what you do with the data. Apify has a plain-language write-up on the legality of web scraping. We are not lawyers.
🆘 If something breaks
Open an issue on the actor's Issues tab. Include the run link and the input you used.