Free Tripadvisor Reviews Scraper avatar

Free Tripadvisor Reviews Scraper

Pricing

from $0.00005 / actor start

Go to Apify Store
Free Tripadvisor Reviews Scraper

Free Tripadvisor Reviews Scraper

Free Tripadvisor review scraper. No per-result charge, pay only Apify proxy/compute costs. Get full review text, trip type, owner replies, and rating subratings via Tripadvisor's mobile API, no browser needed. Bypasses bot checks automatically. 10 runs/day, 5 listings/run.

Pricing

from $0.00005 / actor start

Rating

0.0

(0)

Developer

Vladimir Efimenco

Vladimir Efimenco

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Scrape Tripadvisor reviews for free, built on the site's internal mobile API. No per-result charge, no rental fee: this is a free Tripadvisor review scraper, you only cover Apify's own platform usage (proxy traffic and compute), nothing goes to the developer. Returns full review content alongside reviewer details, owner replies, trip type, visit dates, and category subratings, for hotels, restaurants, attractions, and attraction products (tours/activities).

Looking for a way to extract Tripadvisor reviews without paying per review? This free actor calls the same internal API the Tripadvisor app uses, so there's no browser session to maintain and no layout changes to break it, at zero cost beyond your own proxy and compute usage.

🆓 Free tier limits

This is a free Tripadvisor Reviews Scraper: no charge per result, no rental fee. You only pay Apify for the proxy and compute your run uses, same as you would running any actor with your own proxy. To keep the free plan sustainable, these limits apply:

  • 10 runs per day for free-tier accounts. Paid Apify accounts skip this limit.
  • Up to 5 hotels per run on the free tier, up to 25 on a paid Apify account.
  • No cap on reviews per hotel. maxResults is yours to set

A proxy is required to run this actor. Use Apify Proxy (Residential or Datacenter) or plug in your own proxy URLs under "Proxy configuration" in the input, the actor won't start without one.

⚡ Why use this free Tripadvisor Reviews Scraper

  • Free, not a limited trial. No credit card charge per result and no expiring trial period. Most Tripadvisor review scrapers you find charge per row from the first run; this one only bills you for the proxy and compute you'd pay for anyway.
  • No browser session needed to get past bot checks. Most tools that scrape Tripadvisor reviews for free have to run a full browser session just to clear Tripadvisor's bot protection before they can call the review data. This one talks to the mobile API directly, so there's no session to maintain and no captcha retries burning through your run.
  • Full dataset, not a summary. Every review comes with the review text, rating, trip type, visit date, reviewer profile info, and the owner's reply where present.
  • Listing-wide rating breakdown included. Overall rating distribution and category subratings are attached alongside each review.
  • The most filters of any free Tripadvisor reviews scraper on the store. Rating, date range (relative period or exact date), month, trip type, and keyword search that can run server-side or locally, all in the same input.
  • Batch by design. Scrape up to 5 listings in a single free run.

🎯 Who uses this free Tripadvisor Reviews Scraper

  • Hospitality market researchers & analysts studying guest sentiment, seasonal patterns, or trip-type breakdowns (business vs family vs solo travel) across hotels, restaurants, or attractions.
  • Competitor benchmarking teams comparing review scores and subratings across properties in the same city or category.
  • Reputation management agencies tracking new reviews and owner responses across a portfolio of client properties, filtered to a specific time window.
  • Sentiment analysis and NLP teams feeding review text into topic models or classifiers, filtered by rating or keyword before it ever hits their pipeline.
  • Developers building hospitality dashboards or review aggregators who need clean structured Tripadvisor data instead of scraping pages by hand, without a per-result bill.

🧾 What you get, per review

  • Review content: title, text, rating, published date, visited date, trip type, tip
  • Reviewer info: name, profile URL, avatar, hometown, contributions, helpful votes
  • Owner reply: reply text and date, if the business responded
  • Category subratings: e.g. Service, Value, Location, depending on listing type
  • Listing-wide stats: total review count, overall rating, rating distribution
  • Keyword match: whether the search query matched this review

🔍 How keyword search works

The search field is a single query, same as what you'd type into Tripadvisor's own review search box.

  • searchIsLocalFilter unchecked (default): the query is sent to Tripadvisor as a server-side filter. Only matching reviews are returned, and every one of them is marked keyword_match: true.
  • searchIsLocalFilter checked: the query is not sent to Tripadvisor. Every review is still fetched and returned, but each one is checked locally against the title and text, and gets a keyword_match flag showing whether it was found.

Use the checked option when you want the full, unfiltered review set but still want to know which reviews mention your keyword.

📅 How the date filter works

  • sincePeriod: a relative window (last 1 month / 3 months / 6 months / 1 year), computed from today's date.
  • sinceDate: an exact calendar date. If set, it overrides sincePeriod.

Leave both empty to fetch reviews from any date.

🔧 Input options

FieldDescription
listingUrlsOne or more Tripadvisor listing page URLs (hotel, restaurant, attraction, or attraction product); max 5 on the free tier
maxResultsMax reviews to collect per listing. Leave empty to collect all available
ratingFilter by star rating (1-5), multi-select
sincePeriodRelative date window: last 1/3/6 months or 1 year
sinceDateExact start date, overrides sincePeriod if set
monthsFilter reviews written in specific calendar months, multi-select
typeFilter by trip type: Business, Couples, Family, Friends, Solo
searchKeyword to search for in reviews
searchIsLocalFilterIf checked, search tags reviews locally instead of filtering them via Tripadvisor
proxyConfigurationRequired. Apify Proxy (Residential/Datacenter) or your own proxy URLs

Example input

Reviews mentioning "friendly" from couples, families, and friends trips since the start of 2026, tagged locally rather than filtered server-side:

{
"listingUrls": [
{ "url": "https://www.tripadvisor.com/Hotel_Review-g187849-d19239938-Reviews-INNSiDE_by_Melia_Milano_Torre_GalFa-Milan_Lombardy.html" }
],
"maxResults": 1000,
"search": "friendly",
"searchIsLocalFilter": true,
"sinceDate": "2026-01-01",
"type": ["Couples", "Family", "Friends"],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📊 Data Fields

📝 Review Details

FieldDescription
listing_urlTripadvisor listing page URL this review belongs to
listing_titleTitle of the listing
review_idUnique ID of the review
ratingReviewer's overall star rating
title / textReview title and body text (HTML)
published_dateLocalized date the review was published
visited_dateLocalized date the reviewer visited
trip_typeBusiness, Couples, Family, Friends, or Solo
tipReviewer's tip for future visitors, if provided
helpful_votesNumber of helpful votes the review received
photosURLs of photos attached to the review
review_urlShareable public URL of the review

👤 Reviewer

FieldDescription
authorName, profile URL, avatar, hometown, contributions, helpful votes count

🏢 Owner

FieldDescription
owner_responseAuthor, published date, report URL, and reply text, if the owner replied

⭐ Ratings & Matching

FieldDescription
subratingsCategory subratings (e.g. Service, Value, Location), keyed by category label
reviews_statsListing-wide aggregate stats: total reviews, overall rating, rating distribution
keyword_queryThe search keyword provided in actor input, if any
keyword_matchTrue if the query matched this review, either verified locally or because Tripadvisor's own filter already applied it

📋 Example output

[
{
"listing_title": "Restaurant Armònia",
"listing_url": "https://www.tripadvisor.com/Restaurant_Review-g187892-d12850867-Reviews-Restaurant_Armonia-Taormina_Province_of_Messina_Sicily.html",
"reviews_stats": {
"reviews_total": 685,
"listing_rating": 4.9,
"listing_rating_text": "Excellent",
"ratings_stats": {
"Excellent": {
"count": 641,
"percentage": 93
},
"Good": {
"count": 23,
"percentage": 3
},
"Average": {
"count": 9,
"percentage": 1
},
"Poor": {
"count": 6,
"percentage": 1
},
"Terrible": {
"count": 7,
"percentage": 1
}
},
"subratings_stats": {
"atmosphere": 4.9,
"food": 4.8,
"service": 4.9,
"value": 4.7
}
},
"review_id": "1072224757",
"rating": 5,
"title": "Superbe soirée",
"text": "Superbe soirée <br />Dîner délicieux <br />Et service impeccable et très accueillants <br />Ciro s’est occupé de nous avec beaucoup de professionnalisme.",
"text_clean": "Superbe soirée \nDîner délicieux \nEt service impeccable et très accueillants \nCiro s’est occupé de nous avec beaucoup de professionnalisme.",
"published_date": "Today",
"visited_date": "Aug 2026",
"trip_type": "Friends",
"tip": null,
"helpful_votes": 0,
"photos": [],
"review_url": "https://www.tripadvisor.com/ShowUserReviews-g187892-d12850867-r1072224757-Restaurant_Armonia-Taormina_Province_of_Messina_Sicily.html",
"report_url": "https://www.tripadvisor.com/SocialIapReporting?objectType=Review&contentId=1072224757&locationId=12850867",
"author": {
"name": "alexandra l",
"profile_url": "https://www.tripadvisor.com/Profile/alexandralH8117TZ",
"avatar_url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/f2/b8/default-avatar-2020-26.jpg",
"hometown": null,
"contributions": 3,
"helpful_votes": 0
},
"owner_response": null,
"subratings": {},
"keyword_query": "friend",
"keyword_match": false
},
{
"listing_title": "Restaurant Armònia",
"listing_url": "https://www.tripadvisor.com/Restaurant_Review-g187892-d12850867-Reviews-Restaurant_Armonia-Taormina_Province_of_Messina_Sicily.html",
"reviews_stats": {
"reviews_total": 685,
"listing_rating": 4.9,
"listing_rating_text": "Excellent",
"ratings_stats": {
"Excellent": {
"count": 641,
"percentage": 93
},
"Good": {
"count": 23,
"percentage": 3
},
"Average": {
"count": 9,
"percentage": 1
},
"Poor": {
"count": 6,
"percentage": 1
},
"Terrible": {
"count": 7,
"percentage": 1
}
},
"subratings_stats": {
"atmosphere": 4.9,
"food": 4.8,
"service": 4.9,
"value": 4.7
}
},
"review_id": "1071989352",
"rating": 5,
"title": "* Eleganza, qualità e un consiglio costruttivo",
"text": "Abbiamo trascorso una giornata davvero meravigliosa. Venendo da fuori, abbiamo deciso di passare la giornata in spiaggia e di pranzare nel vostro ristorante: è stato tutto eccellente e ci siamo trovati benissimo.<br /><br />Se posso permettermi un piccolo suggerimento, credo sia un vero peccato che il personale indossi divise in tessuti sintetici, soprattutto con questo caldo. In una struttura così elegante e raffinata, degli abiti in lino e cotone sarebbero molto più in armonia con l’atmosfera dell’hotel e darebbero un’immagine ancora più esclusiva. Tutto qui trasmette classe, mentre le divise attuali, a mio parere, non valorizzano il personale, soprattutto le ragazze.<br /><br />È solo un’osservazione fatta con grande rispetto, perché abbiamo davvero apprezzato la nostra esperienza e speriamo di tornare presto.😎☀️🏖️",
"text_clean": "Abbiamo trascorso una giornata davvero meravigliosa. Venendo da fuori, abbiamo deciso di passare la giornata in spiaggia e di pranzare nel vostro ristorante: è stato tutto eccellente e ci siamo trovati benissimo.\n\nSe posso permettermi un piccolo suggerimento, credo sia un vero peccato che il personale indossi divise in tessuti sintetici, soprattutto con questo caldo. In una struttura così elegante e raffinata, degli abiti in lino e cotone sarebbero molto più in armonia con l’atmosfera dell’hotel e darebbero un’immagine ancora più esclusiva. Tutto qui trasmette classe, mentre le divise attuali, a mio parere, non valorizzano il personale, soprattutto le ragazze.\n\nÈ solo un’osservazione fatta con grande rispetto, perché abbiamo davvero apprezzato la nostra esperienza e speriamo di tornare presto.😎☀️🏖️",
"published_date": "2 days ago",
"visited_date": "Aug 2026",
"trip_type": "Couples",
"tip": null,
"helpful_votes": 0,
"photos": [],
"review_url": "https://www.tripadvisor.com/ShowUserReviews-g187892-d12850867-r1071989352-Restaurant_Armonia-Taormina_Province_of_Messina_Sicily.html",
"report_url": "https://www.tripadvisor.com/SocialIapReporting?objectType=Review&contentId=1071989352&locationId=12850867",
"author": {
"name": "Caro 57",
"profile_url": "https://www.tripadvisor.com/Profile/CAROLINECARA",
"avatar_url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/eb/6d/default-avatar-2020-19.jpg",
"hometown": null,
"contributions": 3,
"helpful_votes": 2
},
"owner_response": null,
"subratings": {},
"keyword_query": "friend",
"keyword_match": false
}
]

🚀 Running the actor

Via Apify Console

Open the actor page, fill in the input form, and click Start.

Via Apify API: Python

$pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"listingUrls": [
{"url": "https://www.tripadvisor.com/Hotel_Review-g187849-d19239938-Reviews-INNSiDE_by_Melia_Milano_Torre_GalFa-Milan_Lombardy.html"}
],
"maxResults": 1000,
"search": "friendly",
"searchIsLocalFilter": True,
"sinceDate": "2026-01-01",
"type": ["Couples", "Family", "Friends"],
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
},
}
run = client.actor("mof1re/tripadvisor-reviews-scraper-browserless").call(run_input=run_input)
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
print(review["listing_title"], review["rating"], review["title"])

call() blocks until the run finishes. For long runs, use client.actor(...).start(run_input=run_input) instead and fetch the dataset later with the returned run ID.

Via Apify API: Node.js

$npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_apify_token' });
const input = {
listingUrls: [
{ url: 'https://www.tripadvisor.com/Hotel_Review-g187849-d19239938-Reviews-INNSiDE_by_Melia_Milano_Torre_GalFa-Milan_Lombardy.html' }
],
maxResults: 1000,
search: 'friendly',
searchIsLocalFilter: true,
sinceDate: '2026-01-01',
type: ['Couples', 'Family', 'Friends'],
proxyConfiguration: {
useApifyProxy: true,
apifyProxyGroups: ['RESIDENTIAL'],
},
};
const run = await client.actor('mof1re/tripadvisor-reviews-scraper-browserless').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} reviews`);

🤖 Use it from Claude via MCP

This actor also runs as a tool inside Claude (or any other MCP-compatible AI client), no code needed. Apify runs a hosted MCP server at https://mcp.apify.com that exposes Actors from Apify Store as callable tools.

Hosted server (recommended)

Add a custom connector in Claude Desktop with server URL https://mcp.apify.com and sign in with your Apify account. The default tool set already includes Actor search and detail lookup, so you can just ask: "Get reviews mentioning 'friendly' for this hotel from couples and family trips since January 2026." Claude finds this actor in Apify Store, checks its input schema, and runs it with the parameters you described.

To skip the search step and expose this actor directly, add it to the tools query parameter:

https://mcp.apify.com?tools=mof1re/tripadvisor-reviews-scraper-browserless

Local stdio server

For clients that don't support the remote URL, run the server locally:

{
"mcpServers": {
"actors-mcp-server": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

To limit the local server to this actor, pass --tools on the command line instead:

npx @apify/actors-mcp-server --tools mof1re/tripadvisor-reviews-scraper-browserless

Full setup and tool reference: Apify MCP server docs.

❓ FAQ

How is this different from other free tools that scrape Tripadvisor reviews? Most either charge per result from the first row or run a browser to clear Tripadvisor's bot checks, and most only filter by one or two fields. This actor calls the mobile API directly, doesn't charge per result, and supports rating, date range, month, trip type, and dual-mode keyword filtering together.

Is this actor really free? Yes. There's no per-result charge. You only pay Apify for the platform usage your run consumes, mainly proxy traffic and compute time, same as running any actor with your own proxy.

Does this scraper need an account or API key? No Tripadvisor account needed to extract the publicly available review data. You need an Apify API token only if you're running it via the API or Python/Node client.

Why not just use Tripadvisor's official API? Tripadvisor's official review API caps out at a handful of reviews per listing and requires a paid key with daily quotas. This actor isn't limited by that beyond the free-tier run limits above.

Can I filter reviews by trip type or visit month? Yes. Set type for business, couples, family, friends, or solo trips, and months for specific calendar months, independent of the date range filter.

Do I need to provide my own proxy? You need a proxy either way. Use Apify Proxy (Residential or Datacenter, billed by Apify at platform rates) or your own proxy URLs. The actor won't run without one set in the input.

Is this legal? Can I scrape publicly available reviews? This tool extracts publicly available review data. You're responsible for complying with the target site's terms of service and applicable data protection laws for your use case.

💳 Pricing

Free. No per-result charge, no rental fee. You're billed by Apify only for platform usage (proxy and compute), not by this actor's developer.

⚠️ Notes

  • Limited to 5 listings per run and 10 runs per day, see Free tier limits above.
  • A proxy (Apify Proxy or your own) is required to run this actor.
  • Data reflects what's publicly listed on tripadvisor.com at the time of the run; the source updates continuously.

🔗 See also

Need reviews from another platform? Check out: