Tripadvisor Reviews Scraper
Pricing
from $0.72 / 1,000 reviews
Tripadvisor Reviews Scraper
[$4/1K reviews, 20% below the leader, paid plans down to $0.72/1K] Scrape Tripadvisor reviews of hotels, restaurants and attractions: rating, title, text, review date, visit month, reviewer, photos, owner response with date. Filter by stars, traveller type, month. Only-new mode. No start fee.
Pricing
from $0.72 / 1,000 reviews
Rating
0.0
(0)
Developer
BlueskyScraper
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
4 hours ago
Last modified
Share
What is Tripadvisor Reviews Scraper?
Tripadvisor Reviews Scraper is a Tripadvisor API for reviews of hotels, restaurants and attractions. Paste Tripadvisor links, or type a place name and a city, and get one row per review with the star rating, title, full text, review date, month of visit, language, reviewer name, home town and review count, photos, the owner response with its date, and the sub-ratings the reviewer gave (rooms, service, value, cleanliness, location, sleep quality for hotels; food, service, value, atmosphere for restaurants). Every row also carries the place name, type, address, overall rating and total number of reviews.
Reviews are read from Tripadvisor through a licensed data provider, so there are no proxies, CAPTCHAs or browser sessions to manage and no Tripadvisor account or official API key is needed. Filters run on Tripadvisor's side โ star ratings, traveller type (families, couples, solo, business, friends), months of visit and a minimum review date โ so you pay only for the reviews you asked for. The field names match our Agoda, Booking.com and Airbnb review scrapers, so one parser covers all of them.
- ๐ฐ $0.004 per review on the free plan โ 20% below the market leader ($4 per 1,000 reviews; paid plans from $1.52 on Bronze down to $0.72 on Gold and above). No start fee.
- ๐ฌ Owner response and its date in every row, plus how many days the owner took to answer
- ๐๏ธ Month of visit and traveller type (when filtered) next to the review date
- ๐ Only new reviews mode for daily monitoring โ later runs write and charge only reviews you have not received
- ๐ Error rows are free โ a dead link, an unknown city or a place with no matching reviews costs nothing
- ๐ค Works from the Apify API, MCP server (Claude, ChatGPT, Cursor), n8n, Make and Zapier
What data can Tripadvisor Reviews Scraper extract?
One row per review. Example values are from a real run on a hotel in Ubud, Bali.
| Field | Example | Notes |
|---|---|---|
type | review | place for the optional summary row, error for free error rows |
placeName | The Ubud Village Resort & Spa | Hotel, restaurant or attraction |
placeType | hotel | hotel, restaurant, attraction |
placeUrl | https://www.tripadvisor.com/Hotel_Review-g297701-d610805-โฆ | Tripadvisor page of the place |
placeAddress | Jalan Raya Nyuh Kuning, 80571, ID | As Tripadvisor shows it |
placeRating / placeReviewsCount | 4.8 / 1,943 | Overall rating and total reviews |
reviewId / reviewUrl | 1079936254 / โฆShowUserReviews-โฆr1079936254โฆ | Direct link to the review |
rating | 5 | Stars, 1โ5 |
title / text | Stunningly beautiful hotel / We stayed here for 4 nightsโฆ | Full text, not truncated |
reviewDate | 2026-09-30 | Date the review was published |
visitMonth | 2026-09 | Month of the stay or visit |
travelerType | couples | Filled when you filter by traveller type |
language / textLanguage / isTranslated | it / en / true | Original language, language of the text, translation flag |
translationMissing | false | Translation was on, but Tripadvisor has no English version of this review (null when translation is off) |
reviewerName / reviewerLocation | otl / Welwyn, United Kingdom | Home town when the profile shows it |
reviewerReviewCount / reviewerProfileUrl | 272 / https://www.tripadvisor.com/Profile/otl | How active the reviewer is |
images / imagesCount | [7 photo links] / 7 | Full-size photo URLs |
hasOwnerResponse / ownerResponse | true / Dear waynegF2832OP, Greetings from The Ubud Village Resort & Spaโฆ | The management's reply |
ownerResponseDate / ownerResponseDelayDays | 2026-09-26T00:00:00.000Z / 0 | Reply date and days to answer |
responderName | Ubud Village Group | Who answered |
subRatings | {"value":5,"rooms":5,"location":4,"cleanliness":5,"service":5,"sleepQuality":5} | Per-aspect scores, when the reviewer gave them |
searchQuery / searchLocation | Ayana Resort / Denpasar,Bali,Indonesia | When the place came from a name search |
scrapedAt | 2026-10-02T00:44:37Z | When the row was produced |
With ๐จ Add a place summary row switched on, each place also gets one place row with name, type, address, overall rating, total reviews and the rating distribution: rating5Count, rating4Count, rating3Count, rating2Count, rating1Count (for example 4,266 / 848 / 340 / 130 / 147 for Ayana Resort Bali).
๐ฐ How much does it cost to scrape Tripadvisor reviews?
Tripadvisor Reviews Scraper uses pay-per-event pricing. You pay per review row, and per place summary row only when you switch that option on:
| Event | Free plan | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
review | $0.004 | $0.00152 | $0.0012 | $0.00072 | $0.00072 | $0.00072 |
place (optional summary) | $0.001 | $0.0009 | $0.0008 | $0.0007 | $0.0007 | $0.0007 |
- 20% below the market leader on the free plan and on Bronze to Gold (checked 11 October 2026). 1,000 reviews cost $4 on the free plan, $1.52 on Bronze and $0.72 on Gold.
- No start fee and no charge per run.
- $1 = 250 reviews on the free plan; Apify's free $5 monthly credit covers about 1,250 reviews a month.
- Error rows are free: a link that is not a Tripadvisor place, a location that does not exist, a place with no reviews matching your filters.
- Filtered-out reviews are free. Star, traveller-type and month filters are applied by Tripadvisor; reviews older than your minimum date are skipped without charge.
- With only new reviews switched on, reviews you already received under the same memory name are skipped and not charged.
- The default run (one Bali hotel, 20 newest reviews) costs $0.08 and finished in 12 seconds in our test; an identical repeat came back in 4 seconds.
Example budgets (free plan):
| Job | Rows | Cost |
|---|---|---|
| 1 hotel ร 20 newest reviews | 20 | $0.08 |
| 10 hotels ร 100 reviews | 1,000 | $4.00 (Bronze: $1.52) |
| 1 restaurant ร all 3,706 reviews | 3,706 | $14.82 (Gold: $2.67) |
| Daily monitoring, ~3 new reviews a day | ~90 a month | ~$0.36 a month |
How to scrape Tripadvisor reviews with Tripadvisor Reviews Scraper
- Open the Actor and click Try for free (an Apify account is free).
- In ๐ Tripadvisor place URLs, paste one link per line โ open the hotel, restaurant or attraction on Tripadvisor and copy the address. Any Tripadvisor domain works (.com, .co.uk, .de โฆ).
- No link? Type the place names in ๐ Place names to search and the city in ๐ Search location (or write
Name, City). - Set ๐ฏ Max reviews per place (20 by default, up to 4,490).
- Optionally pick โญ Star ratings, ๐งณ Traveller types, ๐๏ธ Months of visit or ๐ Only reviews written on or after.
- Click Start. Reviews appear in the Reviews table; switch to Owner responses or Reviewers & photos for other column sets, and download as CSV, Excel, JSON or HTML.
โฌ๏ธ Input
Tripadvisor links (default)
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g297701-d610805-Reviews-The_Ubud_Village_Resort_Spa-Ubud_Gianyar_Regency_Bali.html","https://www.tripadvisor.com/Restaurant_Review-g297701-d991554-Reviews-Bebek_Bengil_Ubud-Ubud_Gianyar_Regency_Bali.html","https://www.tripadvisor.co.uk/Attraction_Review-g608497-d1515658-Reviews-Tegalalang_Rice_Terrace-Tegalalang_Gianyar_Regency_Bali.html"],"maxReviewsPerPlace": 20}
Links with a page offset (-or2130-) are cleaned automatically. A link to a single review (ShowUserReviews-โฆ) gets a free error row asking for the place link.
Search by place name and city
{"searchQueries": ["Ayana Resort"],"searchLocation": "Bali","maxPlacesPerSearch": 1,"maxReviewsPerPlace": 50}
The Actor finds the place on Tripadvisor (sponsored listings are skipped) and collects its reviews. In our test Ayana Resort + Bali found Ayana Resort Bali (5,731 reviews). searchLocation accepts a city, region or country โ Ubud, Paris, France, New York City; add the country after a comma when a city name exists in several countries. You can also write the place as Ayana Resort, Bali and leave the location empty. Raise Places per search (up to 30) to take several top results of a search.
๐ฏ Filters: stars, traveller type, months, date
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g297696-d302249-Reviews-Ayana_Resort_Bali-Jimbaran_South_Kuta_Badung_Regency_Bali.html"],"ratings": ["1", "2"],"travelerTypes": ["families", "couples"],"visitMonths": ["july", "august"],"minReviewDate": "1 year","maxReviewsPerPlace": 100}
- Star ratings โ 5 = Excellent โฆ 1 = Terrible.
- Traveller types โ each selected type is collected separately and every row carries its
travelerType; the review limit applies to each type. - Months of visit โ any year, useful for high-season analysis.
- Minimum review date โ a date (
2026-01-01) or a period (30 days,6 months,1 year). With Most recent order the Actor fetches in growing steps and stops once it reaches older reviews: in our test, 100 requested with30 daysreturned 13 reviews from the last month after one small step. - Sort โ Most recent (default), Detailed reviews (the longest, most informative first) or Tripadvisor default.
Translation
Off by default: every review comes in the language it was written in, and language tells you which. Switch Translate reviews on and reviews written in other languages arrive as Tripadvisor's machine translation into English โ isTranslated: true, language keeps the original (it, fr, de, nl, pt in our restaurant test). Tripadvisor does not translate every review: in our 40-review hotel test 1 of 10 foreign reviews had no translation and came in Italian, with isTranslated: false, textLanguage: it and translationMissing: true โ the data source itself returns that review untranslated, so we deliver the original text rather than nothing. Such reviews are counted in the run's status message; filter translationMissing = true to find them.
๐ Only new reviews (monitoring)
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g297701-d610805-Reviews-The_Ubud_Village_Resort_Spa-Ubud_Gianyar_Regency_Bali.html"],"maxReviewsPerPlace": 20,"onlyNewRowsStore": "my-hotel-reviews"}
Name the memory once and put the Actor on a daily schedule. The first run delivers everything found and remembers it; every later run with the same name writes and charges only reviews you have not received before. In our test the second run delivered 0 of 10 already-known reviews and charged nothing for them.
โฌ๏ธ Output
{"type": "review","placeId": "302249","placeName": "Ayana Resort Bali","placeType": "hotel","placeUrl": "https://www.tripadvisor.com/Hotel_Review-g297696-d302249-Reviews-Ayana_Resort_Bali-Jimbaran_South_Kuta_Badung_Regency_Bali.html","placeAddress": "Jl. Karang Mas Sejahtera, Karang Mas Estate, 80364, ID","placeRating": 4.6,"placeReviewsCount": 5731,"reviewId": "1079898625","reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g297696-d302249-r1079898625-Ayana_Resort_Bali-Jimbaran_South_Kuta_Badung_Regency_Bali.html","rating": 5,"title": "Why We Keep Coming Back to AYANA","text": "This was our third stay at AYANA. The resort is modern, spacious and beautiful, with spectacular ocean views and so many restaurants and bars to choose from. โฆ","reviewDate": "2026-09-29","visitMonth": "2026-09","travelerType": "couples","language": "en","textLanguage": "en","isTranslated": false,"translationMissing": null,"reviewerName": "Jerri","reviewerProfileUrl": "https://www.tripadvisor.com/Profile/985jlcl","reviewerLocation": null,"reviewerReviewCount": 25,"images": ["https://dynamic-media-cdn.tripadvisor.com/media/photo-o/34/c1/be/3d/caption.jpg", "โฆ 6 more"],"imagesCount": 7,"hasOwnerResponse": true,"ownerResponse": "Dear Valued Guest, Three visits to AYANA is already special, but hearing that the resort โฆ","ownerResponseDate": "2026-09-29T00:00:00.000Z","ownerResponseDelayDays": 0,"responderName": "David D","subRatings": { "value": 5, "rooms": 5, "location": 5, "cleanliness": 5, "service": 5, "sleepQuality": 5 },"searchQuery": "Ayana Resort","searchLocation": "Denpasar,Bali,Indonesia","scrapedAt": "2026-10-02T00:46:38.411Z"}
Table views
- Reviews โ place, rating, title, text, review date, visit month, traveller type, language, reviewer, owner response, link.
- Owner responses โ who answered, when, and how many days after the review: a response-time report in one click.
- Reviewers & photos โ reviewer home town, review count, profile link, photos and sub-ratings.
- Place summary ($) โ the optional
placerows with the 1โ5 star distribution.
Same fields as our other travel review scrapers
The column names follow Agoda Reviews Scraper: rating, title, text, reviewDate, reviewerName, reviewerReviewCount, images, ownerResponse, ownerResponseDate, responderName, scrapedAt mean the same thing in both. The only rename is hotelName / hotelUrl โ placeName / placeUrl, because Tripadvisor also covers restaurants and attractions. A pipeline built for one source reads the other with that one mapping.
Use cases for Tripadvisor data
Hotel and restaurant reputation management
Pull every new review each morning with only new reviews, route 1โ2 star reviews to the manager, and track ownerResponseDelayDays to see how fast the team answers.
Competitor benchmarking
Compare ratings, sub-ratings (rooms, service, value, food, atmosphere) and complaint themes across competing hotels or restaurants in the same city, month by month.
Seasonal and segment analysis
Combine months of visit with traveller type to see what families say in August versus couples in the low season.
Travel market research
Search a category in a destination, take the top places, and build a dataset of what travellers praise and criticise.
AI agents, RAG and sentiment models
One flat row per review with the original language and an optional English translation is ready for sentiment scoring, topic extraction and retrieval-augmented answers about a place.
Integrations
Apify API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('lergassy/tripadvisor-reviews-scraper').call({startUrls: ['https://www.tripadvisor.com/Hotel_Review-g297701-d610805-Reviews-The_Ubud_Village_Resort_Spa-Ubud_Gianyar_Regency_Bali.html'],maxReviewsPerPlace: 50,ratings: ['1', '2', '3'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((r) => [r.reviewDate, r.rating, r.title, r.hasOwnerResponse]));
Apify API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("lergassy/tripadvisor-reviews-scraper").call(run_input={"searchQueries": ["Ayana Resort"],"searchLocation": "Bali","travelerTypes": ["couples"],"maxReviewsPerPlace": 30,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row.get("travelerType"), row.get("rating"), row.get("title"), row.get("ownerResponseDelayDays"))
One HTTP call
POST https://api.apify.com/v2/acts/lergassy~tripadvisor-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body returns the review rows directly.
No-code tools
Use the Apify integrations for n8n, Make, Zapier, Google Sheets, Airtable, Slack or a webhook after each run. A daily schedule with only new reviews becomes a review alert feed.
MCP server
Connect https://mcp.apify.com to Claude, ChatGPT, Cursor or any MCP client and ask for lergassy/tripadvisor-reviews-scraper. The agent sees the input fields and gets one flat row per review back.
๐ค For AI Agents & LLM Apps
Compact reference for agents calling lergassy/tripadvisor-reviews-scraper through the Apify MCP server or API.
Purpose: one row per Tripadvisor review of a hotel, restaurant or attraction: how many stars, what the guest wrote, when they wrote it and when they visited, who they are, and whether and how fast the owner replied.
Minimal input:
{ "startUrls": ["https://www.tripadvisor.com/Hotel_Review-gโฆ-dโฆ-Reviews-โฆ.html"], "maxReviewsPerPlace": 20 }
or { "searchQueries": ["place name"], "searchLocation": "city" }.
Output: type, placeId, placeName, placeType, placeUrl, placeAddress, placeRating, placeReviewsCount, reviewId, reviewUrl, rating, title, text, reviewDate, visitMonth, travelerType, language, textLanguage, isTranslated, translationMissing, reviewerName, reviewerProfileUrl, reviewerLocation, reviewerReviewCount, images, imagesCount, hasOwnerResponse, ownerResponse, ownerResponseDate, ownerResponseDelayDays, responderName, subRatings (object), searchQuery, searchLocation, scrapedAt. Optional place rows: type, placeId, placeName, placeType, placeUrl, placeAddress, placeRating, placeReviewsCount, rating5Count โฆ rating1Count. Error rows: type = error, input, error.
Behaviors an agent should know:
- Links and place names can be mixed; a name needs
searchLocationor the formName, City. maxReviewsPerPlacedefault 20, max 4,490; withtravelerTypesit applies per type.- Use
ratings,travelerTypes,visitMonths,minReviewDateinstead of post-filtering โ they cost nothing for excluded reviews. travelerTypeis null unless the traveller filter is used (Tripadvisor does not expose it per review otherwise).- Text is in the original language unless
translateReviewsis true (then English where Tripadvisor has a translation,isTranslated= true;textLanguagealways tells the language oftext;translationMissing= true marks reviews Tripadvisor has no English version of). - Billing:
reviewper review row,placeper summary row (off by default). Error rows are free. No start fee.
Error items / Troubleshooting
Error rows look like { "type": "error", "input": "https://www.google.com/x", "error": "Not a Tripadvisor link โ โฆ Not charged.", "scrapedAt": "โฆ" } and are always free. They appear when:
- a link is not a Tripadvisor place page, or points to a single review;
- a search location does not exist on Tripadvisor (the message suggests a format) or a place name finds nothing;
- a place returns no data โ it closed or moved (in our test a closed Ubud restaurant came back empty);
- no reviews match your filters (the row says how many reviews the place has in total);
- a filter value is not understood (stars outside 1โ5, an unknown traveller type or month, a date in another format).
If several places in a row return far fewer reviews than requested, the Actor stops early to protect your budget: everything already found stays in the dataset and each remaining place gets a free error row.
โ FAQ
Is it legal to scrape Tripadvisor reviews?
Tripadvisor reviews are public: anyone can read them without logging in, and the Actor returns only what such a visitor sees. Reviews contain reviewer display names and sometimes a home town โ public profile data, which may still be personal data under GDPR and similar laws. Use it for analysis, keep only what you need, and ask a lawyer before republishing reviews.
Is there an official Tripadvisor API for reviews?
Tripadvisor's own Content API returns only a handful of the latest reviews per location. This Actor works as an unofficial Tripadvisor reviews API: up to 4,490 reviews per place, with filters and no partner approval.
How fresh are the reviews?
Each run reads Tripadvisor at the time of the run. An identical request (same place, filters and size) is reused for up to 20 hours to keep repeated runs cheap; the Actor keeps a small key-value store named dfs-cache-tripadvisor-reviews-scraper in your account for this. A daily schedule therefore always gets a fresh reading.
How many reviews can I get per place?
Up to 4,490 per place (and per traveller type when that filter is on) โ the limit of the data source. Places with fewer reviews return what they have.
Does it scrape restaurants and attractions too?
Yes. Hotels, restaurants and attractions were all tested: The Ubud Village Resort & Spa, Ayana Resort Bali, Bebek Bengil (restaurant) and Tegalalang Rice Terrace (attraction).
Why is travelerType empty?
Tripadvisor shows the trip type only as a filter, not on each review in this source. Select traveller types in the input and every row carries the one it was collected under.
Why are subRatings sometimes null?
Reviewers rate individual aspects only optionally, and attractions have none. In our hotel test 14 of 20 reviews carried sub-ratings.
How much does it cost to scrape 1,000 Tripadvisor reviews?
$4 on the free plan (20% below the market leader), $1.52 on Bronze, $0.72 on Gold and above.
Can I use Tripadvisor Reviews Scraper with the Apify API?
Yes. Every run can be started, scheduled and read through the Apify API or the official JavaScript and Python clients โ see Integrations above.
Can I use it through an MCP server?
Yes. Add https://mcp.apify.com to your MCP client (Claude Desktop, Claude Code, ChatGPT, Cursor) and the agent can call lergassy/tripadvisor-reviews-scraper with links or place names.
Can I integrate it with other apps?
Yes โ n8n, Make, Zapier, Google Sheets, Airtable, Slack and webhooks are available from the Integrations tab of the Actor.
Do I get one row per review?
Yes. One row per review; photos and sub-ratings are nested in the same row. Place summaries are separate place rows and only when you switch them on.
Your feedback
Found a field that is wrong, a link format that is not accepted, or a feature you need? Open an issue in the Issues tab โ we read every one and reply quickly. If the Actor saves you time, a review on the Store page helps other buyers find it.
You might also like
| Actor | What it does |
|---|---|
| Agoda Reviews Scraper | Agoda hotel guest reviews and ratings, including the Booking.com review pool on the same page |
| Booking Reviews Scraper | Booking.com guest reviews: score, liked and disliked text, stay date, guest country and type |
| Trip.com Scraper | Trip.com hotels with live room rates for your dates, availability and reviews |
| Airbnb Reviews Scraper | Airbnb listing reviews: rating, full text, date, reviewer and host response |
| Google Hotels Scraper | Google Hotels prices by city and dates: nightly and total price, rating, review count |
Also known as: Tripadvisor scraper, Tripadvisor API, Tripadvisor review scraper, Tripadvisor reviews API, hotel reviews scraper, restaurant reviews scraper, attraction reviews, owner responses export, Tripadvisor review monitoring.