TripAdvisor Reviews Scraper πŸ’°$0.45/1k | Hotels Restaurants avatar

TripAdvisor Reviews Scraper πŸ’°$0.45/1k | Hotels Restaurants

Pricing

from $0.45 / 1,000 results

Go to Apify Store
TripAdvisor Reviews Scraper πŸ’°$0.45/1k | Hotels Restaurants

TripAdvisor Reviews Scraper πŸ’°$0.45/1k | Hotels Restaurants

TripAdvisor Reviews Scraper at $0.45/1k β€” 4x cheaper than the leader. Pull hotel, restaurant & attraction reviews with place metadata (rating, address, geo, histogram) in every row. Filter by rating, language & date; add reviewer profiles. Search-query or URL input. JSON/CSV out.

Pricing

from $0.45 / 1,000 results

Rating

5.0

(2)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

35

Total users

7

Monthly active users

2 days ago

Last modified

Share

TripAdvisor Reviews Scraper

TripAdvisor Reviews Scraper β€” Hotels, Restaurants & Attractions

Scrape TripAdvisor reviews at $0.45 per 1,000 results β€” about 4x cheaper than the market leader, and one actor instead of a two-step funnel. Paste any hotel, restaurant, or attraction URL (or just a city name) and get clean, structured review rows β€” each already enriched with the place's full metadata (rating, address, geo, ranking, rating histogram). Filter by star rating, language, and date; optionally add reviewer profiles and contact emails. JSON, CSV, or Excel out.

TripAdvisor Reviews Scraper card

Why Use This Scraper?

  • βœ… Cheapest serious option β€” $0.45/1,000 results. The category leader charges around $1.90/1,000 at its entry tier. Same review data, a fraction of the bill.
  • βœ… One actor, not two. Reviews and place snapshots come from the same run β€” no separate "find places" actor feeding a separate "reviews" actor.
  • βœ… Hotels, restaurants, and attractions β€” all three place types, all through one input.
  • βœ… Review + place metadata in every row. Each review already carries placeInfo (rating, address, lat/lng, ranking, histogram). No follow-up enrichment step.
  • βœ… Server-side filters for star rating, language, per-place limit, plus an absolute or relative date cutoff.
  • βœ… Search-query β†’ geo expansion. Type "Chicago" and let the actor discover hotels, restaurants, and attractions for that location.
  • βœ… Optional reviewer profiles and contact-email enrichment.
  • βœ… Flat, nested, or place-only output for whatever your pipeline expects.

Overview

The TripAdvisor Reviews Scraper is built for reputation teams, market analysts, researchers, and agencies who need structured review data from TripAdvisor without stitching together multiple tools.

By default the output is review-shaped: one dataset row per review, each carrying a compact placeInfo block for the parent hotel/restaurant/attraction. That means even if you start from a listing URL (a city's restaurants hub) or a search query, the run still resolves down to a stream of review rows β€” not separate "listing" rows.

Two other shapes are available when you need them:

  • Place-only snapshots (scrapeReviews: false) β€” one rich row per place (ranking, amenities, category scores, nearby venues) and no reviews. Fast and low-cost for competitor monitoring.
  • Nested (outputShape: "nested") β€” one row per place with a reviews[] array inside.

Supported Inputs

URL types

URL typePatternExample
Hotel placeHotel_Review-g{geo}-d{id}-Reviews-{slug}.htmlhttps://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html
Restaurant placeRestaurant_Review-g{geo}-d{id}-Reviews-{slug}.htmlhttps://www.tripadvisor.com/Restaurant_Review-g60763-d25324283-Reviews-Allora_Fifth_Ave-New_York_City_New_York.html
Attraction placeAttraction_Review-g{geo}-d{id}-Reviews-{slug}.htmlhttps://www.tripadvisor.com/Attraction_Review-g60763-d105123-Reviews-Statue_of_Liberty-New_York_City_New_York.html
Restaurants GEO hubRestaurants-g{geo}-…{City}.htmlhttps://www.tripadvisor.com/Restaurants-g35805-Chicago_Illinois.html
Hotels GEO hubHotels-g{geo}-…-Hotels.htmlhttps://www.tripadvisor.com/Hotels-g60763-New_York_City_New_York-Hotels.html
Attractions GEO hubAttractions-g{geo}-Activities-…htmlhttps://www.tripadvisor.com/Attractions-g60763-Activities-New_York_City_New_York.html
Restaurant finderFindRestaurants?geo=…&establishmentTypes=…https://www.tripadvisor.com/FindRestaurants?geo=188673&establishmentTypes=10591&broadened=false

Listing/hub URLs expand (paginated, up to ~300 venues each) into individual place URLs, then each is scraped like a standalone place. maxItems applies per resolved place.

Copy-pasteable startUrls

{
"startUrls": [
{ "url": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html" },
{ "url": "https://www.tripadvisor.com/Restaurant_Review-g60763-d25324283-Reviews-Allora_Fifth_Ave-New_York_City_New_York.html" },
{ "url": "https://www.tripadvisor.com/Restaurants-g35805-Chicago_Illinois.html" }
]
}

Search / keyword mode

{
"searchQuery": "Chicago",
"includeHotels": true,
"includeRestaurants": true,
"includeThingsToDo": true,
"maxItems": 20
}

Unsupported inputs

  • ❌ tripadvisor.co.uk / tripadvisor.* country mirrors β€” use www.tripadvisor.com.
  • ❌ Vacation rentals, tours/experiences, and flights products.
  • ❌ Hotel booking price offers / room rates.
  • ❌ Non-TripAdvisor hosts and login-gated content.

Use Cases

AudienceUse case
Hotel & restaurant opsDaily review monitoring and owner-response SLA tracking
Reputation managersMulti-property dashboards with rating-histogram drift over time
Market analystsCompetitive benchmarks across cities or chains using placeInfo.rating + numberOfReviews
Content / NLP teamsMultilingual review corpora for sentiment and topic models, filtered by language and rating
ResearchersOne-shot dataset exports for BI, lake, or warehouse ingestion
AgenciesClient-ready TripAdvisor datasets without writing or maintaining a scraper

How It Works

How TripAdvisor Reviews Scraper works

  1. Input β€” provide one or more TripAdvisor URLs, or a free-text searchQuery (a city name).
  2. Resolve β€” a searchQuery becomes a geoId, then expands into hotels, restaurants, and attractions per the include* toggles. Listing/hub URLs expand into place URLs. Plain place URLs are used directly.
  3. Fetch place β€” load each place page (mobile-friendly HTML) and extract placeInfo from JSON-LD + meta (rating, review count, address, geo, ranking).
  4. Page reviews β€” pull reviews from TripAdvisor GraphQL in concurrent batches, with reviewRatings, reviewsLanguages, and maxItems pushed into the request; lastReviewDate is applied per page with early-exit.
  5. Optional enrichment β€” attach reviewer profiles (scrapeReviewerInfo) and contact emails (enrichEmails).
  6. Output β€” emit flat review rows (default), nested place rows, or place-only snapshots. Locations that yield 0 reviews or fail land in a side tripadvisor-failures dataset.

Input Configuration

FieldTypeDefaultNotes
searchQuerystringβ€”Free-text location (e.g. "Chicago"). Resolved to a geoId, then expanded by the include* toggles. Use with or instead of startUrls.
startUrlsarray of { url }[]Place URLs and/or listing/hub URLs. Listing URLs expand to venues; place URLs are scraped directly.
maxItemsinteger50Max reviews per place / per URL. 0 = unlimited (paginate every review).
scrapeReviewsbooleantruetrue β†’ fetch reviews. false β†’ emit one place-only snapshot row per place (no reviews).
scrapeReviewerInfobooleantruePopulate each review's user object (username, hometown, contributions, avatar, profile link). false β†’ user: null.
includeReviewTagsbooleantrueInclude placeInfo.reviewTags (theme phrases + counts) when TripAdvisor embeds them.
includeHotelsbooleantrueWith searchQuery, include hotels for the resolved geo.
includeRestaurantsbooleantrueWith searchQuery, include restaurants for the resolved geo.
includeThingsToDobooleantrueWith searchQuery, include attractions for the resolved geo.
includeNearbybooleanfalseAfter each place, add up to 5 nearby venues as place-only snapshot rows (isNearbyResult: true). Depth capped at 1.
outputShapeenum flat / nestedflatflat = one row per review. nested = one row per place with reviews[]. No effect when scrapeReviews: false.
lastReviewDatestringβ€”Skip reviews before this date. Absolute YYYY-MM-DD or relative 22 days / 3 weeks / 6 months / 1 year.
reviewRatingsarray["ALL_REVIEW_RATINGS"]Filter by star rating: "1"–"5" or ALL_REVIEW_RATINGS.
reviewsLanguagesarray["ALL_REVIEW_LANGUAGES"]Filter by ISO 639-1 language code, or ALL_REVIEW_LANGUAGES.
maxConcurrencyinteger100Max pages processed concurrently.
minConcurrencyinteger1Min pages processed concurrently.
maxRequestRetriesinteger15Retries per failed request before giving up.
proxyobjectApify ResidentialProxy configuration. Residential is strongly recommended.
enrichEmailsbooleanfalseFind a contact email per place (from its website or by discovery). Adds contactEmail, contactWebsite, and an emailEnrichment object. Billed only when an email is found.

Common scenarios

1. All reviews for a single hotel, with reviewer info

{
"startUrls": [{ "url": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html" }],
"maxItems": 0,
"scrapeReviewerInfo": true
}

2. Recent 5-star English reviews across a city's restaurants

{
"startUrls": [{ "url": "https://www.tripadvisor.com/Restaurants-g35805-Chicago_Illinois.html" }],
"reviewRatings": ["5"],
"reviewsLanguages": ["en"],
"lastReviewDate": "6 months",
"maxItems": 30
}

3. Place-only competitor snapshots (no reviews)

{
"searchQuery": "Brooklyn",
"includeHotels": true,
"includeRestaurants": true,
"includeThingsToDo": false,
"scrapeReviews": false
}

Output Overview

Each dataset item is, by default, one review row containing:

  • Core β€” id, url, title, text, rating, publishedDate, travelDate, tripType, lang
  • Reviewer β€” user object (username, hometown, contributions, avatar, profile link) when scrapeReviewerInfo: true
  • Owner response β€” ownerResponse (text + date) when the property replied
  • Extras β€” subratings[], photos[], helpfulVotes
  • Parent place β€” placeInfo (name, type, rating, web URL, and more)

When scrapeReviews: false, rows are { placeDetailOnly: true, placeInfo: {…} } with a much richer placeInfo (ranking, amenities, category scores, nearby venues, histogram).

Output Samples

Flat review row (default)

{
"id": "1058000050",
"url": "https://www.tripadvisor.com/ShowUserReviews-g60763-d208453-r1058000050-Hilton_New_York_Times_Square-New_York_City_New_York.html",
"title": "Was wonderful bravo to Kayla",
"lang": "en",
"publishedDate": "2026-04-26",
"publishedPlatform": "MOBILE",
"rating": 5,
"helpfulVotes": 0,
"text": "Kayla was amazing and gave us great service",
"travelDate": "2026-04",
"tripType": "COUPLES",
"user": {
"name": "Dubi Shoshan",
"username": "OnAir02493636276",
"userLocation": { "name": "Yehud, Israel" },
"contributions": { "totalContributions": 1 },
"link": "www.tripadvisor.com/Profile/OnAir02493636276"
},
"ownerResponse": null,
"subratings": [],
"photos": [],
"placeInfo": {
"id": "208453",
"name": "Hilton New York Times Square",
"locationString": "New York City New York",
"type": "HOTEL",
"webUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews.html"
}
}

Place-only snapshot (scrapeReviews: false)

{
"placeDetailOnly": true,
"placeInfo": {
"type": "HOTEL",
"name": "LondonHouse Chicago, Curio Collection by Hilton",
"rating": 4.7,
"numberOfReviews": 4941,
"rankingString": "#4 of 215 hotels in Chicago",
"address": "85 E Wacker Drive, Chicago, IL 60601",
"latitude": 41.887833,
"longitude": -87.62543,
"ratingHistogram": { "count1": 62, "count2": 62, "count3": 150, "count4": 502, "count5": 4166 },
"categoryReviewScores": [
{ "categoryName": "Cleanliness", "roundedScore": 4.8 },
{ "categoryName": "Location", "roundedScore": 4.9 }
],
"amenities": ["Valet parking", "Free High Speed Internet (WiFi)", "Rooftop bar", "Spa"],
"id": "9145578",
"webUrl": "https://www.tripadvisor.com/Hotel_Review-g35805-d9145578-Reviews.html"
}
}

Key Output Fields

Review core

  • id, url, title, text, rating, lang, helpfulVotes

Dates & trip

  • publishedDate, publishedPlatform, travelDate, stayDate, tripType

Reviewer (scrapeReviewerInfo: true)

  • user.name, user.username, user.userLocation.name, user.contributions.totalContributions, user.avatar.image, user.link

Owner response & extras

  • ownerResponse.text, ownerResponse.publishedDate, subratings[], photos[]

Parent place (placeInfo)

  • placeInfo.name, placeInfo.type (HOTEL / EATERY / ATTRACTION), placeInfo.rating, placeInfo.webUrl
  • Place-only rows add: numberOfReviews, rankingString, address, latitude, longitude, ratingHistogram, categoryReviewScores[], amenities[], nearbyLocations[]

Email enrichment (enrichEmails: true)

  • contactEmail, contactWebsite, emailEnrichment

How This Compares

CapabilityCategory leader (two-actor funnel)This actor
Price per 1,000 results~$1.90/1k at entry tier$0.45/1k (~4x cheaper)
Places + reviewsSeparate "find places" actor feeding a separate "reviews" actorOne actor does both
Hotels / restaurants / attractionsSplit across actorsAll three, one input
Review + place metadata in one rowUsually separate outputsYes β€” placeInfo on every review
Search-query β†’ geo expansionVariesBuilt in (searchQuery)
Rating / language / date filtersPartialYes, pushed server-side
Reviewer profilesAdd-onOptional (scrapeReviewerInfo)
Contact-email enrichmentNoOptional (enrichEmails, pay-on-hit)

Honest scope: this actor does not cover vacation rentals, tours/experiences, flights, hotel price offers, or sortBy/traveler-type filters. If you need those, it isn't the right tool.

FAQ

Which TripAdvisor URLs are supported?

Hotel, restaurant, and attraction place pages (…-g{geo}-d{id}-Reviews-…), plus GEO listing hubs (Restaurants-g…, Hotels-g…, Attractions-g…) and the FindRestaurants?geo=… finder. Listing URLs expand to individual venues. Use www.tripadvisor.com, not the tripadvisor.co.* mirrors.

Do I get review rows or place rows?

Review rows by default β€” one per review, each carrying a compact placeInfo. Set scrapeReviews: false for one place-only snapshot per place, or outputShape: "nested" for one place row with reviews[] nested.

How does maxItems work?

It caps reviews per place, applied independently to each URL and each venue discovered from a listing. Use 0 for unlimited.

Can I filter by rating, language, or date?

Yes. reviewRatings and reviewsLanguages are pushed into the TripAdvisor GraphQL request; lastReviewDate (absolute or relative) is applied per page with an early exit once a page is fully older than the cutoff.

Are reviewer profiles and emails always present?

user is populated when scrapeReviewerInfo: true (the default). Contact emails require enrichEmails: true and only appear when one is actually found β€” you are never charged for a miss.

What isn't supported?

Vacation rentals, tours/experiences, and flights products; hotel booking price offers; sortBy and traveler-type filters; and country-mirror domains. This actor focuses on hotel/restaurant/attraction reviews and place snapshots.

Can I scrape private or login-gated content?

No. The actor only reads publicly available TripAdvisor pages.

What about blocks and rate limits?

The actor uses a hardened anti-bot path (mobile Safari fallback, real-browser fingerprinting for GraphQL, single-shot DataDome detection). Residential proxies are strongly recommended. Blocked or empty locations are recorded in the tripadvisor-failures dataset rather than lost.

Support

Found a bug or need a new feature? Open an issue on the Issues tab or email muhamed.didovic@gmail.com.

Additional Services

Need a custom output shape, a new URL type, extra fields, or scheduled monitoring? I build tailored scrapers and data pipelines β€” email muhamed.didovic@gmail.com.

Explore More Scrapers

If you found this useful, you might also like:

Full list at apify.com/memo23.

πŸ€– For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/tripadvisor-scraper).

Purpose: Scrape TripAdvisor hotel, restaurant, and attraction reviews (plus place snapshots) from any place/listing URL or a city search query β€” every review row carries parent-place metadata.

Minimal input:

{
"startUrls": [{ "url": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html" }],
"maxItems": 10
}

Output: one dataset row per review β€” id, title, text, rating, lang, publishedDate, travelDate, tripType, helpfulVotes, user {name, username, userLocation, contributions, link}, ownerResponse, subratings[], photos[], placeInfo {id, name, type, rating, webUrl}. With scrapeReviews:false, rows are {placeDetailOnly:true, placeInfo{…}}.

Behaviors an agent should know:

  • Always set maxItems (it caps reviews per place); maxItems:0 means unlimited and can be very large for popular places.
  • startUrls and searchQuery can be combined; searchQuery expands via includeHotels / includeRestaurants / includeThingsToDo.
  • outputShape:"nested" returns one row per place with reviews[]; scrapeReviews:false returns place-only snapshots.
  • Billing: $0.45 / 1,000 results (per dataset item) + $0.0001 per additional-data item + $0.007 actor start (per GB). enrichEmails is billed only when an email is found.
  • Not supported: vacation rentals, tours, flights, hotel price offers, sortBy/traveler-type filters, and tripadvisor.co.* mirrors.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Tripadvisor LLC or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available TripAdvisor pages β€” no authenticated endpoints, paid features, or content behind the tripadvisor.com login wall. Users are responsible for ensuring their use complies with TripAdvisor's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

SEO Keywords

tripadvisor reviews scraper, tripadvisor scraper, scrape tripadvisor, tripadvisor api, tripadvisor.com scraper, Apify tripadvisor, hotel reviews scraper, restaurant reviews scraper, attraction reviews scraper, tripadvisor hotel data, tripadvisor restaurant data, reviewer profile scraper, review sentiment data, reputation monitoring data, hospitality market research, travel reviews export, tripadvisor json export, tripadvisor csv export, competitive review intelligence, place metadata scraper