Tripadvisor Reviews Scraper avatar

Tripadvisor Reviews Scraper

Pricing

from $0.04 / 1,000 reviews

Go to Apify Store
Tripadvisor Reviews Scraper

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 hours ago

Last modified

Features

Limited permissions

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.

InputTripadvisor links to hotels, restaurants, attractions or tours, from any Tripadvisor country site, or location ids
OutputOne 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
Ceiling100,000 reviews per place, 200,000 per run
SpeedAbout 200 reviews in 10 seconds (measured on our runs)
Account neededNone 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?
Actordami_studio/tripadvisor-reviews-scraper
Set one fieldstartUrls, labelled "Places" in the Console
Cap the billmaxTotalChargeUsd on the run, for example 0.10: it never charges past that
MCP, one linkhttps://mcp.apify.com/?tools=fetch-actor-details,dami_studio/tripadvisor-reviews-scraper
How oftenDaily, 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 getField
The review's id and linkreviewId, reviewUrl
Stars, title and textrating, title, text
When it was written, and the month of the tripwrittenAt, travelDate
Who travelledtripType (family, couples, solo, business, friends)
Language and translationlanguage, originalLanguage, machineTranslated
Stars for value, rooms, food, service and so onsubratings
Votes, tip and photo linkshelpfulVotes, tip, photoCount, photos
The owner's replyownerResponse.text, ownerResponse.writtenAt, ownerResponse.responderRole
The reviewer (optional)reviewer.name, reviewer.username, reviewer.profileUrl, reviewer.avatarUrl, reviewer.hometown, reviewer.contributions
The placelocationId, 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' questionsplace.reviewTopics, place.questionCount, place.questions (question, date, answer count, top answer)
Where the row came fromsearchInput, position, scrapedAt

▶️ How to scrape Tripadvisor reviews

  1. Open Tripadvisor Reviews Scraper and click Try for free.
  2. Paste one or more place links into Places, one per line. A hotel, restaurant, attraction or tour page all work.
  3. Set Reviews per place. Twenty is plenty for a first look.
  4. Pick any filters under Filters: stars, trip types, language, months, words, dates.
  5. 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

FieldWhat it doesDefault
startUrlsPlace links or location ids (the number after -d in a link), one per linenone (prefill The Ritz London)
maxReviewsPerPlaceReviews for each place, up to 100,000100
maxItemsReviews in the whole run, up to 200,000no limit
searchResultsDatasetIdA dataset with placeUrl, url, webUrl or locationId columnsnone
sortBymostRecent, oldest, detailed, insightful or tripadvisormostRecent
ratingsStars, "1" to "5"all
tripTypesfamily, couples, solo, business, friendsall
monthsWrittenjanuary to december: the month the review was written, in any yearall
languagesen, fr, de, es, it, ja, zhCN and 21 more; a review comes once, in the first of them it is listed inall
originalLanguageOnlyLeave out machine-translated reviewsoff
searchTextOnly reviews mentioning these wordsnone
reviewsSince, reviewsUntil2026-01-31, or for "since" a span like 30 days or 6 monthsnone
monitoringStoreNameA store in your account that remembers what earlier runs returnednone
includePlaceDetails, includeReviewerDetailsAdd the place's details and the reviewer to every rowon
flattenOutputOne column per field, for a spreadsheetoff

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"
}
}
FieldHow to read it
writtenAtWhen the reviewer wrote it, in UTC
travelDateYear and month of the stay or visit; empty when the reviewer gave none
language, machineTranslatedThe language of text; when it was translated, originalLanguage is the one it was written in
photosLinks to Tripadvisor's own photo files, at full size
placeEmpty when "Place details" is off; a tour has no address or position
place.questionsThe 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. details says 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 ownerResponse is 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 wantUse
Reviews of hotels, restaurants, attractions and tours on TripadvisorThis one
Reviews of the same places on Google MapsGoogle Maps Reviews Scraper
Agoda hotels with their guest reviewsAgoda Hotels Scraper
Hotel prices and rooms on Booking.comBooking.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 ApifyClient
client = 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:
continue
print(row["rating"], row["title"])

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.