TripAdvisor Reviews Scraper
Pricing
from $0.50 / 1,000 reviews
TripAdvisor Reviews Scraper
Extract TripAdvisor reviews from hotels, restaurants, attractions, and tours/activities in one run. Sort, filter by rating, trip type, month, language, or keyword, with owner replies, photos, and place metadata included.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
Billy
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get TripAdvisor reviews from hotels, restaurants, attractions, and attraction tours/activities. One actor, one consistent JSON shape, every filter you would expect from the website.
Why use it
- Works on every TripAdvisor review page: hotels, restaurants, attractions, and attraction tours/activities (tickets, day trips, classes, transfers).
- Mix any of those URL types in a single run, or just paste numeric TripAdvisor location IDs and let the actor figure it out.
- Every result lands in the dataset with the same flat field set so you can plug it straight into a spreadsheet, a database, or a downstream pipeline.
- Filters (sort, keyword, ratings, trip type, month, language) apply to every URL type, no per-page configuration needed.
- Owner responses, review photos, place metadata, and helpful-vote counts are included out of the box.
- Reviewer personal data is null by default and only included when you explicitly opt in.
Features
- Reviews from Hotel, Restaurant, Attraction, and Attraction Product (tours and activities) pages.
- Accepts both full TripAdvisor URLs and bare numeric location IDs (e.g.
671150). - Sort by most recent, most detailed, most insightful, or the TripAdvisor default.
- Filter by star rating, trip type, month of visit, language, and free-text keyword.
- Choose between machine-translated reviews (default) or original-language text.
- Captures owner/management responses with date and role.
- Captures review photos and place-level information (name, total review count, and for tours: rating, description, and image).
- Per-URL cap with
maxReviewsPerLocationand a clean warning when a place returns no matching reviews.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array of strings | required | TripAdvisor review URLs or bare numeric TripAdvisor location IDs (the digits after -d in the URL, e.g. 671150). Mixed types in a single run are fine. |
maxReviewsPerLocation | integer | 50 | Cap reviews per URL. 0 = unlimited. |
sortBy | string | "default" | Sort order. default (TripAdvisor default), most_recent, detailed, or insightful (only effective on attraction tours/activities). |
searchKeyword | string | "" | Free-text keyword to search inside review content. Applies to every URL type. |
ratings | array of "1".."5" | [] | Only return reviews with these star ratings. Empty = all. |
tripTypes | array | [] | Filter by traveler segment. One or more of Families, Couples, Solo, Business, Friends. Empty = all. |
months | array of "1".."12" | [] | Filter by month of visit. Empty = all. |
reviewLanguage | string | "all" | ISO language code for the reviews to fetch (e.g. en, fr, es, de, it, zhCN). Use all to collect every language. |
showOriginalReviews | boolean | false | When true, returns reviews in their original language instead of TripAdvisor's machine-translated version. Not supported on attraction tours/activities pages. |
include_personal_information | boolean | false | When true, populates author, author_username, author_hometown, author_contributions, author_profile_url, author_avatar_url. When false, those fields are present but set to null. |
Example input mixing all four page types and a bare location ID:
{"startUrls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d671150-Reviews-The_Empire_Hotel-New_York_City_New_York.html","https://www.tripadvisor.com/Restaurant_Review-g187147-d15343325-Reviews-99_Haussmann-Paris_Ile_de_France.html","https://www.tripadvisor.com/Attraction_Review-g187147-d188757-Reviews-Louvre_Museum-Paris_Ile_de_France.html","https://www.tripadvisor.com/AttractionProductReview-g293916-d12565966-Bangkok_Chao_Phraya_River_Cruise_Including_Buffet_Dinner-Bangkok.html","671150"],"maxReviewsPerLocation": 30,"sortBy": "default","searchKeyword": "","ratings": ["4", "5"],"tripTypes": ["Couples", "Friends"],"months": ["6", "7", "8"],"reviewLanguage": "all","showOriginalReviews": false,"include_personal_information": false}
Output
Each dataset item has this shape (real Empire Hotel run, default privacy settings):
{"place_name": "The Empire Hotel","place_overall_rating": null,"place_total_reviews": 9561,"place_description": null,"place_image_url": null,"location_kind": "hotel","geo_id": 60763,"detail_id": 671150,"source_url": "https://www.tripadvisor.com/Hotel_Review-g60763-d671150-Reviews-The_Empire_Hotel-New_York_City_New_York.html","review_id": "1052932188","review_url": "https://www.tripadvisor.com/ShowUserReviews-...html","title": "Great location, friendly staff","text": "Stayed for four nights with my partner ...","rating": 5,"published_date": "2026-04-12","published_date_text": "2026-04-12","language": "en","original_language": "en","trip_type": null,"helpful_votes": 0,"photos": ["https://dynamic-media-cdn.tripadvisor.com/media/photo-o/.../caption.jpg?w=1024&h=-1&s=1"],"author": null,"author_username": null,"author_hometown": null,"author_contributions": null,"author_profile_url": null,"author_avatar_url": null,"mgmt_response_text": "Thank you for staying with us ...","mgmt_response_date": "2026-04-15","mgmt_response_role": "Front Office Manager","scraped_at": "2026-04-24T09:07:46Z"}
location_kind is one of hotel, restaurant, or attraction (attraction tours and activities are also reported as attraction).
The place_* fields describe the location/product itself. For attraction tours and activities, place_overall_rating, place_description, and place_image_url are populated. For hotels, restaurants, and attractions only place_name and place_total_reviews are typically available.
With include_personal_information: true the same item carries the populated author fields:
{"author": "GG718","author_username": "Adventure290052","author_hometown": "Stafford, VA","author_contributions": 86,"author_profile_url": "https://www.tripadvisor.com/Profile/Adventure290052","author_avatar_url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/.../default-avatar.jpg?w=300&h=-1&s=1"}
Use cases
- Hotel and restaurant reputation tracking across markets.
- Sentiment and theme analysis on cleaned, language-filtered review text.
- Tour-operator and attraction-product benchmarking, including how owners reply to feedback.
- Building a private review search index, dashboard, or alerting tool.
- Feeding LLMs with curated, filtered review datasets for summarization or QA.
Legal notice
This actor is designed to extract publicly available data from TripAdvisor. While scraping public information is generally legal in many jurisdictions, you are solely responsible for complying with local laws and TripAdvisor's terms of service. Do not use this actor to collect sensitive data or for any unethical purposes such as spamming or harassment. By using this actor, you agree to do so lawfully and at your own risk. Neither the developer nor Apify assumes liability for how the data is used.
Reviewer name, username, hometown, contribution count, profile URL, and avatar are personal data. By default, include_personal_information is false and those six fields are set to null so the output schema stays predictable while no personal values leave the actor. Setting include_personal_information to true populates those fields with the values returned by TripAdvisor; only enable it when you have a documented lawful basis under GDPR, CCPA, or any other regulation that applies to you.
Tips
- For the largest result sets, set
maxReviewsPerLocationto0(unlimited) and let the actor paginate to the end. - If you only care about recent feedback, combine
sortBy: "most_recent"withmonthsandratingsfilters so TripAdvisor does the work for you. - Bare numeric IDs are perfect for spreadsheets and bulk inputs. The actor accepts them mixed with full URLs.
- A warning is logged when a URL returns zero reviews. That covers wrong or expired IDs as well as filters that exclude every review.
showOriginalReviewsis ignored for attraction tours/activities pages.
Support
Found a missing field, a TripAdvisor page that does not parse correctly, or a filter that does not behave as you expect? Open an issue on the actor page with the exact input you used and a short note about what you expected. Bug reports with a reproducible input are the fastest way to a fix.