TripAdvisor Reviews Scraper avatar

TripAdvisor Reviews Scraper

Pricing

from $0.50 / 1,000 reviews

Go to Apify Store
TripAdvisor Reviews Scraper

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

Billy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 maxReviewsPerLocation and a clean warning when a place returns no matching reviews.

Input

FieldTypeDefaultDescription
startUrlsarray of stringsrequiredTripAdvisor 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.
maxReviewsPerLocationinteger50Cap reviews per URL. 0 = unlimited.
sortBystring"default"Sort order. default (TripAdvisor default), most_recent, detailed, or insightful (only effective on attraction tours/activities).
searchKeywordstring""Free-text keyword to search inside review content. Applies to every URL type.
ratingsarray of "1".."5"[]Only return reviews with these star ratings. Empty = all.
tripTypesarray[]Filter by traveler segment. One or more of Families, Couples, Solo, Business, Friends. Empty = all.
monthsarray of "1".."12"[]Filter by month of visit. Empty = all.
reviewLanguagestring"all"ISO language code for the reviews to fetch (e.g. en, fr, es, de, it, zhCN). Use all to collect every language.
showOriginalReviewsbooleanfalseWhen true, returns reviews in their original language instead of TripAdvisor's machine-translated version. Not supported on attraction tours/activities pages.
include_personal_informationbooleanfalseWhen 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.

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 maxReviewsPerLocation to 0 (unlimited) and let the actor paginate to the end.
  • If you only care about recent feedback, combine sortBy: "most_recent" with months and ratings filters 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.
  • showOriginalReviews is 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.