TripAdvisor Reviews Scraper
Pricing
from $0.40 / 1,000 results
TripAdvisor Reviews Scraper
Pull every traveller review for a TripAdvisor hotel, restaurant, or attraction — title, full text, rating, trip date, trip type, owner response. Designed for reputation analytics, sentiment scoring, and AI travel corpora.
Pricing
from $0.40 / 1,000 results
Rating
0.0
(0)
Developer
Xtractoo
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pull every traveller review for a TripAdvisor hotel, restaurant, or attraction — title, full text, star rating, trip date, trip type, owner response — into clean structured JSON.
Whether you run a hotel and want to track guest sentiment, build a "what guests are saying" widget for your travel site, or compile a high-quality review corpus for AI / sentiment models, this actor delivers the reviews without managing scrapers, browsers, or CAPTCHAs.
What you can do with it
- Reputation analytics — monitor your property's rating distribution, review velocity, and themes over time.
- Competitive benchmarking — pull every review for a rival's listing and compare side-by-side.
- Owner-response audits — see how often the property responds and how guests react.
- Sentiment / topic modelling — feed thousands of real reviews into your NLP pipeline.
- Travel content & comparison sites — surface real guest quotes on your pages, with proper attribution.
- Lead generation — find under-served properties that don't respond to negative reviews.
Why use this actor
- No TripAdvisor login required — runs entirely on public data.
- No CAPTCHAs to solve — automatic retry across residential exit IPs.
- Hotels, restaurants, and attractions — one schema for all three entity types.
- Owner responses preserved — included by default; toggle off if you don't need them.
- Language filter — restrict to English / Spanish / Indonesian / any 2-letter language code, or pull all.
- Stable JSON schema — fixed fields ready to feed straight into your warehouse or notebook.
How it works
- You give the actor one or more TripAdvisor URLs (any of
Hotel_Review-,Restaurant_Review-, orAttraction_Review-). - For each URL, the actor walks the paginated reviews — 10 reviews per page — until your
max_reviews_per_placecap is hit or all reviews are exhausted. - Each review is normalized to one row in the dataset with consistent fields.
Pagination, retries, and proxy rotation are handled automatically.
Input
{"place_urls": ["https://www.tripadvisor.com/Hotel_Review-g297700-d502077-Reviews-Grand_Mercure_Bali_Seminyak-Seminyak_Kuta_District_Bali.html"],"max_reviews_per_place": 100,"language": "en","include_owner_responses": true,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
| Field | Type | Required | Description |
|---|---|---|---|
place_urls | string[] | yes | TripAdvisor Hotel_Review- / Restaurant_Review- / Attraction_Review- URLs |
max_reviews_per_place | integer | no | Cap per place (default 100, max 10000) |
language | string | no | 2-letter language filter (en, fr, id, ...). Leave blank for all languages. Default en. |
include_owner_responses | boolean | no | Include owner replies (default true) |
max_concurrency | integer | no | Parallel in-flight requests (1–4, default 1) |
proxy | object | no | Apify proxy configuration; residential strongly recommended |
Sample output
One record per review. Real shape of a single record:
{"place_url": "https://www.tripadvisor.com/Hotel_Review-g297700-d502077-Reviews-Grand_Mercure_Bali_Seminyak-Seminyak_Kuta_District_Bali.html","place_name": "Grand Mercure Bali Seminyak","place_rating": 4.8,"place_review_count": 1726,"place_type": "Hotel","location_id": "502077","geo_id": "297700","id": "987654321","title": "Perfect family stay","text": "We spent ten nights here in March. The staff were attentive, the pool spotless, breakfast spread enormous. The kids' club kept our two boys occupied while we relaxed by the infinity pool. Will definitely return.","rating": 5,"published_date": "2025-04-02","trip_date": "March 2025","trip_type": "FAMILY","language": "en","author_name": "MartaW123","author_location": "Madrid, Spain","author_url": "https://www.tripadvisor.com/Profile/MartaW123","owner_response": "Dear Marta, thank you so much for your kind words — we are delighted that your family had such a memorable stay and look forward to welcoming you back.","owner_response_date": "2025-04-04","review_url": "https://www.tripadvisor.com/ShowUserReviews-g297700-d502077-r987654321-Grand_Mercure_Bali_Seminyak.html"}
Output schema
| Field | Type | Description |
|---|---|---|
place_url | string | Input URL the review came from |
place_name | string | Hotel / restaurant / attraction name |
place_rating | number | Overall TripAdvisor rating for the place (0–5) |
place_review_count | integer | Total reviews TripAdvisor lists for the place |
place_type | string | Hotel, Restaurant, TouristAttraction, etc. |
location_id | string | TripAdvisor's internal d<id> |
geo_id | string | Parent g<id> (city / region) |
id | string | TripAdvisor review ID |
title | string | Review headline |
text | string | Full review body |
rating | number | Reviewer's star rating (1–5) |
published_date | string | ISO date the review was published |
trip_date | string | "March 2025" — when the trip occurred |
trip_type | string | FAMILY / COUPLES / BUSINESS / SOLO / FRIENDS |
language | string | ISO 639-1 code of the original review language |
author_name | string | Reviewer's display name |
author_location | string | Reviewer's hometown when shown |
author_url | string | Link to reviewer's TripAdvisor profile |
owner_response | string | Property owner's reply text (when present) |
owner_response_date | string | ISO date of the owner's reply |
review_url | string | Canonical URL of the review |
Tips
- TripAdvisor renders 10 reviews per page; high values for
max_reviews_per_placewill trigger many requests. For places with thousands of reviews, sharding across multiple actor runs is advisable. - Pair with the TripAdvisor Scraper to first discover places in a destination, then feed the resulting
urlvalues back into this actor for full review extraction. - Language filter is enforced by TripAdvisor server-side via
?filterLang=; if you need every language, leave the field blank. - DataDome is aggressive on TripAdvisor — always use the residential proxy default; the actor will retry across up to 5 fresh exit IPs before failing.