Tripadvisor Reviews Scraper
Pricing
from $0.28 / 1,000 review-scrapeds
Tripadvisor Reviews Scraper
Scrape every Tripadvisor review for any hotel, restaurant, attraction or tour. Just add URLs and get the rating, title, full text, language, stay date, trip type, photos, helpful votes, owner responses and reviewer profile. Filter by language, rating or keyword. $0.40 per 1,000 reviews.
Pricing
from $0.28 / 1,000 review-scrapeds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
What is Tripadvisor Reviews Scraper?
Tripadvisor Reviews Scraper gets you the reviews for any Tripadvisor hotel, restaurant, attraction or tour. Paste the page's link and you get what travellers wrote about the place, back to the very first review, at $0.40 per 1,000.
It's the one to use when you already know which places you want. If you still need to find them, the Tripadvisor Hotels, Restaurants and Attractions scrapers list a whole city, and Tripadvisor Place Details returns the record for a single place.
What sets it apart:
- Depth. One run reads up to 100,000 reviews per place. Eight places with up to 400 reviews each returned 2,808 reviews in 5.5 seconds.
- Price. $0.40 per 1,000 reviews on the Free plan and $0.28 on Business, with proxy usage and platform usage included. The fixed fees on a one-place run add up to $0.0015.
- Questions and tips too. Switch them on and you get each traveller question with all of its answers, and the short tips people leave. On 4 October 2026 the Louvre's 825 questions and a large Times Square hotel's 1,772 tips all came back.
- Filters that save you money. You pay for the reviews you keep. Language, rating, keyword, trip type, month of visit and date all narrow the list before anything is charged.
- An answer for each input. A mistyped id, a city page or a place nobody has reviewed yet gets a row that says why.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 38 of 38 live checks on its inputs and filters passed on 7 October 2026
- 15 places run the same day across hotels, restaurants and attractions: 241 reviews, 6 error rows
- Charges matched the rows: 13 places, 241 reviews
- An unknown id or an unreviewed place gets a row saying why
More of what you can do with it:
- Read the rating, title and full review text, with the language it was written in
- See the month the traveller visited and their trip type, for seasonal and segment analysis
- Collect the owner's reply next to the review it answers, with its date
- Narrow by language, star rating, keyword, trip type, month of visit or publication date
- Get the sub-ratings a traveller gave, such as value, rooms, location and cleanliness
- Get review photos at full resolution
- Leave reviewer names and profiles out when you don't want personal data in your dataset
- Schedule it and receive only the reviews that appeared since the last run
- Download the result as JSON, CSV, Excel, XML or HTML
People mostly use it to track how a hotel's rating moves month by month, to read a competitor's complaints before a repositioning, to find the phrases guests repeat about breakfast, noise or check-in, to measure how quickly a business answers its reviews, and to build labelled review text for sentiment work.
What data do you get for each review?
| Field | Description |
|---|---|
| โญ Rating | The traveller's score out of five |
| ๐ Title | The review headline |
| ๐ฌ Review text | The full text, never truncated |
| ๐๏ธ Published date | When the review went live |
| ๐๏ธ Stay month | The month the traveller visited |
| ๐ช Trip type | Family, couples, business, friends or solo |
| ๐ Language | The language the review was written in |
| ๐ Reviewer name | Display name and username |
| ๐ Reviewer hometown | Where the traveller is from |
| Reviewer contributions | How many reviews and helpful votes they have |
| ๐ Helpful votes | How many people found the review useful |
| ๐ผ Owner response | The business reply and its date |
| ๐ Sub-ratings | Value, rooms, location, cleanliness and more |
| ๐ท Photos | Full resolution images attached to the review |
| ๐ Review URL | A direct link to the review on Tripadvisor |
| ๐จ Place name and rating | The place's name, overall score and review total |
| โ Questions and answers | Optional: each traveller question, its language and asker, and all its answers with their dates and upvotes |
| ๐ก Tips | Optional: travellers' short tips, with the month of the visit and the review they came with |
A review row also has these columns:
| Column | Meaning |
|---|---|
originalLanguage, isMachineTranslated | The language the review was written in, and whether the text you receive is Tripadvisor's translation of it |
createdAt | When the review was submitted. postedAt is when it went live |
stayDate | The stay month as Tripadvisor stores it (the last day of that month). stayMonth is the same as YYYY-MM |
authorUsername, authorId, authorUrl, authorAvatar | The reviewer's profile identity |
isVerifiedAuthor | Tripadvisor's verified-reviewer badge |
hasOwnerResponse, ownerResponseAt | Whether the business replied, and when |
productName | The tour or ticket the review is about, on tours and experiences only |
status | Tripadvisor's publication status, PUBLISHED on public reviews |
locationType | How Tripadvisor classes the place: ACCOMMODATION, EATERY, ATTRACTION or, for a tour, ACTIVITY |
locationUrl | The place's Tripadvisor page |
input, error | What you asked for and, on a row for an input that could not be read, why |
How to scrape Tripadvisor reviews
You don't need to write code. It's a form, and the result opens as a spreadsheet.
- Create a free Apify account and open Tripadvisor Reviews Scraper.
- Open the place on Tripadvisor, copy the address from your browser and paste it into "Tripadvisor URLs or location ids". Add as many places as you like.
- Set "Maximum reviews per place". The default is 100. Set it high if you want the lot.
- Add a language, rating or keyword filter if you only want part of the list.
- Press Start. When the run finishes, download the reviews as Excel, CSV or JSON.
โฌ๏ธ Input
Paste Tripadvisor page addresses, or just the numeric location ids. That's the only thing you have to give it. A long list can go in "Start URLs (bulk upload)" instead, which loads links from a file, a Google Sheet or a remote list. The two are combined.
You have two limits. "Maximum reviews per place" applies to each place separately: ten places at 50 each returns 500. "Maximum results for the whole run" caps the total, and you aren't charged for anything past it.
All the reviews for one hotel
{"locations": ["https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo_New_York-New_York_City_New_York.html"],"maxReviewsPerLocation": 100000}
Recent English complaints only
{"locations": ["93589"],"sortBy": "recent","recentDays": 90,"reviewLanguages": ["en"],"ratings": ["1", "2"],"maxReviewsPerLocation": 500}
Summer family stays, with no personal data
{"locations": ["93589"],"tripTypes": ["FAMILY"],"stayMonths": ["6", "7", "8"],"includeReviewerProfile": false,"maxReviewsPerLocation": 300}
What travellers say about one topic
{"locations": ["188151"],"containsText": "queue","maxReviewsPerLocation": 300}
A daily watch that returns only new reviews
{"locations": ["93589", "1073239"],"reviewedAfter": "2026-01-01","onlyNewReviews": true,"dedupStoreName": "my-tripadvisor-watch"}
A few switches the examples don't show:
- "Only reviews with an owner response" (off by default) keeps only reviews the business has replied to.
- "Start from review number" (default 0) skips that many reviews before collecting, which lets you resume a large job.
- "Include Tripadvisor's translations" (on by default) returns reviews in other languages with Tripadvisor's translation applied. Turn it off to keep the original wording only.
- "Add the place's own rating and review count" (on by default) puts the place's name, overall rating and total review count on each review row.
Questions, answers and tips
Switch on "Add questions and answers" or "Add traveller tips" and the place's questions and tips arrive as extra rows after its reviews. They have their own limits, 100 per place each unless you change them. Review rows don't change. The extra rows have dataType (question or tip) and the place columns locationId, locationName, locationType and locationUrl, and the dataset has a Questions and answers view and a Tips view.
A place's questions with their answers, and its tips, beside the newest reviews:
{"locations": ["188757"],"maxReviewsPerLocation": 20,"includeQuestions": true,"maxQuestionsPerLocation": 1000,"includeTips": true,"maxTipsPerLocation": 1000}
For questions or tips with no reviews at all, set the review limit to 0. You then pay for the start, each place, and the question and tip rows.
{"locations": ["188757"],"maxReviewsPerLocation": 0,"includeQuestions": true,"maxQuestionsPerLocation": 100}
| Column | On | Meaning |
|---|---|---|
id | both | question-โฆ or tip-โฆ, unique across the dataset |
questionId / tipId | question / tip | Tripadvisor's id |
url | both | The place page where the question or tip is shown |
text | both | The question, or the tip, in full |
language | both | The language it was written in. On tips, set when Languages is used, otherwise empty |
postedAt | both | When it was posted |
authorName, authorId, authorUrl, authorAvatar | both | Who asked the question or wrote the tip |
authorHometown, authorContributions | question | The asker's hometown and contribution count |
answerCount | question | How many answers the question has |
answers | question | All the answers: id, questionId, text, postedAt, upvotes, isTopAnswer and who answered (authorName, authorId, authorUrl, authorHometown, authorContributions). The top answer comes first, the rest oldest first |
reviewId | tip | The review the tip was left with |
stayMonth | tip | The month of the visit, as YYYY-MM |
For developers
maxReviewsPerLocation(default 100) is the per-place limit andmaxItems(default 0, no cap) the run-wide one.maxItemscounts each charged row: a place's reviews first, then its questions (maxQuestionsPerLocation), then its tips (maxTipsPerLocation).- When a filter or the de-duplication store keeps nothing, the read stops early: after 5 pages in a row with no review kept, or after about three times the pages the per-place limit needs.
- On the newest-first order the read also stops at the
reviewedAfterdate, and at the first few reviews an earlier run returned. A scheduled run withonlyNewReviewsand adedupStoreNamereturns the reviews posted since the last run. Older reviews that an earlier run didn't return are not filled in later. maxReviewsPerLocation: 0withincludeQuestionsandincludeTipsboth off stops the run at once with an error row explaining why, and nothing is charged.maxConcurrency(default 32, from 1 to 32) is how many requests run at once across the run. It's worth lowering only when a run reports errors. At 1 the run is strictly one request at a time, and the rows and their order are the same either way.delayMs(default 0) adds a pause before each request, in milliseconds. We'd leave it at 0.- Rows are saved as they arrive. If Apify restarts a run part-way through, it carries on where it stopped and no review is saved or charged twice.
โฌ๏ธ Output
You get one row per review in the run's dataset. The Overview view shows the rating, text, dates and reviewer at a glance.
{"id": "1076642082","url": "https://www.tripadvisor.com/ShowUserReviews-g60763-d93589-r1076642082-The_Michelangelo_New_York-New_York_City_New_York.html","scrapedAt": "2026-09-12T17:41:08.402Z","locationId": "93589","locationName": "The Michelangelo New York","locationType": "ACCOMMODATION","title": "Great Broadway Hotel!","text": "Spacious! Great Location! Super friendly staff! Enjoyed immensely!","rating": 5,"ratingScale": 5,"language": "en","postedAt": "2026-09-06","stayDate": "2026-08-31","stayMonth": "2026-08","tripType": "COUPLES","authorName": "R D","authorHometown": "Houston, Texas","authorContributions": 3,"helpfulVotes": 0,"subRatings": [{ "name": "Value", "rating": 5 }, { "name": "Rooms", "rating": 5 }],"photos": [],"photoCount": 0,"hasOwnerResponse": true,"ownerResponseText": "We are delighted that your room gave you plenty of spaceโฆ","ownerResponseAt": "2026-09-08","locationRating": 4.5,"locationReviewCount": 5211}
A question row, with "Add questions and answers" on (shortened):
{"dataType": "question","id": "question-10245992","questionId": "10245992","url": "https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo_New_York-New_York_City_New_York.html","locationId": "93589","locationName": "The Michelangelo New York","text": "Is there a mini mart or supermarket within close walking distance, say 10 minutes. Thanks.","language": "en","postedAt": "2025-02-09","authorName": "Lisa P","authorContributions": 6,"answerCount": 2,"answers": [{ "id": "20509537", "questionId": "10245992", "text": "Yes, there is multiple options. CVS was very close.", "postedAt": "2025-07-23", "upvotes": 0, "isTopAnswer": true, "authorName": "Heath B" }]}
A tip row, with "Add traveller tips" on:
{"dataType": "tip","id": "tip-50212563","tipId": "50212563","reviewId": "1075399379","locationId": "93589","locationName": "The Michelangelo New York","text": "A very Italian style hotel in west midtown near shopping, theaters, MOMA and not too far from Central Park","postedAt": "2026-08-29","stayMonth": "2026-08","authorName": "Papalotillo"}
Two more columns on a review row: authorHelpfulVotes is the total helpful votes the reviewer has received across all their contributions (null where their profile doesn't show it), and locationRatingScale is the scale of locationRating, which is 5 when the place's overall rating is known and null otherwise.
How many reviews can you get, and how fast?
A run pages through a place's reviews until the list ends or your limit is reached, up to 100,000 reviews per place.
| Run | Reviews | Time | Charge on the Free plan |
|---|---|---|---|
| One hotel, newest 10 | 10 | 2 s | $0.0055 |
| Four places, up to 150 each | 458 | 3 s | $0.1862 |
| Eight places, up to 400 each | 2,808 | 5.5 s | $1.1282 |
| 25 places, up to 40 each | 800 | 6 s | $0.3335 |
These are whole runs on Apify, measured on 2 and 3 October 2026, start-up included. Several places are read at once, which is why a longer list adds little time.
Questions and tips reach the end of a place's list too. Three places (a hotel, a restaurant and the Louvre) with 5 reviews, up to 150 questions and 30 tips each returned 15 reviews, 330 questions with 1,378 answers between them, and 90 tips in 13 to 20 seconds. Each question had its language and 89% had at least one answer. 60% of askers and 79% of answerers gave a hometown. The tips all had a visit month and the review they came with.
How much does it cost to scrape Tripadvisor reviews?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.001 | $0.001 | $0.001 | $0.001 |
location-resolved, per place resolved | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
review-scraped, per review returned | $0.0004 | $0.00036 | $0.00032 | $0.00028 |
question-scraped, per question returned | $0.0004 | $0.00036 | $0.00032 | $0.00028 |
tip-scraped, per tip returned | $0.0002 | $0.00018 | $0.00016 | $0.00014 |
Enterprise plans pay the Business price.
$0.40 per 1,000 reviews on the Free plan, $0.28 on Business. That's the whole price. Proxy usage and platform usage are included, and there's no proxy for you to set up.
- One hotel with 1,000 reviews: $0.001 + $0.0005 + 1,000 ร $0.0004 = $0.4015 ($0.28 on Business).
- Ten places at 200 reviews each: $0.001 + 10 ร $0.0005 + 2,000 ร $0.0004 = $0.806 ($0.57 on Business).
- One place with 1,000 reviews, 100 questions and 100 tips: $0.001 + $0.0005 + $0.40 + $0.04 + $0.02 = $0.4615 ($0.32 on Business).
Questions and tips are billed only when you switch them on. Small runs stay cheap because the fixed fees are a tenth of a cent per run and a twentieth of a cent per place.
Apify's Free plan gives you $5 of credits a month, which is about 12,000 reviews with this actor: twelve hotels at 1,000 reviews each before you pay anything.
Keep watch on a place, or call it from your own code
For a review monitor, create an Apify Schedule, switch on "Only reviews not seen in earlier runs" and give the de-duplication store a name. Each run then hands you the reviews posted since the last one, and a webhook or one of Apify's integrations can pass them on to Slack or a Google Sheet.
From code, POST https://api.apify.com/v2/acts/boncross~tripadvisor-reviews/run-sync-get-dataset-items with the input JSON as the body returns the reviews of a short run in one call. Longer runs go through the standard run endpoints or the apify-client package for Node.js or Python.
An AI agent can call it through the Apify MCP server (mcp.apify.com), where the actor appears as the tool boncross/tripadvisor-reviews. Give the agent a place and a filter and it can summarise the complaints, or draft owner replies from the review text.
FAQ
Do I need proxies or a Tripadvisor account?
Neither. There's no login, and proxy usage is part of the price.
How do I get all the reviews a place has, not the first page?
Set "Maximum reviews per place" high, up to 100,000. The run keeps reading until it reaches the oldest review.
Why did a place return one row with an error and no reviews?
Tripadvisor lists no reviews for it yet. You get one row that names the place and says so in error, with no review columns. The place fee still applies, and the row itself is free. A city or region page, an id Tripadvisor doesn't know, or an input with no Tripadvisor id in it also gets a row with input and error. Those cost nothing.
Which filters make a run cheaper?
All of them. You pay per review returned, and a review a filter drops isn't charged. Trip type and month of visit are applied by Tripadvisor itself. A "published after" date on the newest-first order ends the run as soon as it has passed the date.
Can I leave reviewer names out?
Turn off "Include reviewer details". The name, username, id, avatar and hometown are then left empty.
Are reviews in other languages translated?
By default, yes. Tripadvisor's translation is applied, the row is flagged with isMachineTranslated, and originalLanguage holds the language it was written in. Turn "Include Tripadvisor's translations" off for the original wording. Questions and answers are returned as written, never translated.
Why are there tour reviews in an attraction's list?
Tripadvisor shows reviews of the tours and tickets sold at an attraction on the attraction's page, and you get the list as it's shown. Those rows have the tour's locationId and its productName. input names the place you asked for.
What won't it do?
- City and region pages have no review list. Use the page of a specific hotel, restaurant, attraction or tour.
- You can sort newest first or in Tripadvisor's order. Tripadvisor offers no other. In newest first, Tripadvisor pins one older review near the top of the first page, and the rest follow in date order. Date filters account for the pinned one.
- One run reads at most 100,000 reviews per place.
- Tripadvisor records a stay as a month.
stayMonthis the field to use, andstayDatefalls on that month's last day. - Trip type and stay month are filled only where the traveller supplied them. The same goes for sub-ratings and photos: on one 40-review sample, sub-ratings were on 21 reviews and photos on 5.
- The month filter is checked a second time on each review, because Tripadvisor's version of it is approximate. The rows you get match the months you asked for exactly.
- Tour and activity products have a name on their rows but no separate overall rating.
- The rating, keyword, trip type and month filters apply to reviews only. The publication date applies to questions and tips too, and Languages applies to tips. Questions come in all languages, each labelled.
- On tips,
languageis filled only when Languages is set. With none set you get tips in all languages, unlabelled. - Questions and tips are added after a place's reviews. For questions or tips alone, set the review limit to 0.
- If a page of reviews can't be read after its retries, that place's list stops there and a row says where.
Is it legal to scrape Tripadvisor reviews?
The actor reads only what Tripadvisor publishes to any visitor who isn't signed in. Collecting public data is broadly lawful, but reviewer names are personal data, and what you do with them is your responsibility under GDPR and similar rules. Take legal advice if you're unsure.
More from BonCross
- Tripadvisor Place Details Scraper: The full Tripadvisor record for any hotel, restaurant or attraction.
- Agoda Reviews Scraper: Agoda hotel reviews, including the Booking.com reviews Agoda shows.
- Booking.com Reviews Scraper: Every Booking.com guest review for any hotel.
- Expedia Reviews Scraper: Expedia guest reviews for any hotel, including hotels given as Hotels.com links.
- Google Maps Reviews Scraper: Google Maps reviews for any place using URLs, Place IDs or names.
- Accor Hotel Details Scraper: Full Accor hotel records.
Your feedback
Is a review missing, or does a field look wrong against the Tripadvisor page? Tell us on the Issues tab in Apify Console, with the place's link if you can. We read each report and reply there.