Home / Tools / Tripadvisor Reviews Scraper

E-commerce & reviews

Tripadvisor Reviews Scraper

Get Tripadvisor reviews for any hotel, restaurant or attraction: text, star rating, date, trip date, sub-ratings, photos, owner responses and reviewer info. Paste URLs or search "hotels in Lisbon". Filter by stars, traveler type, month, language or date. No blocking, no proxies.

Run it on Apify API & MCP

Sample output

PlaceRatingReview titlePublishedLang
Eiffel Tower4Worth it.2026-10-16en
Eiffel Tower1Aason2026-10-15en
Eiffel Tower5A majestic iconic structure symbo…2026-10-14en

Real rows from the prefilled example run (Oct 19, 2026), 5 of 34+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.

Full JSON of one real output row (8 rows in the example dataset)
{
  "rowType": "review",
  "placeId": "188151",
  "placeName": "Eiffel Tower",
  "placeType": "attraction",
  "placeUrl": "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html",
  "placeAddress": "Av. Gustave Eiffel, 75007, Paris, FR",
  "placeRating": 4.6,
  "placeReviewsCount": 144121,
  "input": "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html",
  "reviewId": "1082005171",
  "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g187147-d188151-r1082005171-Eiffel_Tower-Paris_Ile_de_France.html",
  "rating": 4,
  "title": "Worth it.",
  "text": "You get a time on your ticket. Head there earlier but no need to be that early. You enter one of the two check points that get you under the tower in the square. Then you go to your Color. Green if you have the elevator up. You wait in line. The time is posted. You go up the elev...",
  "publishedAt": "2026-10-16T08:11:07Z",
  "publishedDate": "2026-10-16",
  "visitDate": "2026-10",
  "language": "en",
  "originalLanguage": "en",
  "isTranslated": false,
  "subRatings": null,
  "photos": [],
  "photoCount": 0,
  "ownerResponse": null,
  "ownerResponseTitle": null,
  "ownerResponseDate": null,
  "hasOwnerResponse": false,
  "position": 1,
  "reviewerName": "R M",
  "reviewerProfileUrl": "https://www.tripadvisor.com/Profile/Shadfax1",
  "reviewerLocation": "Calgary, Canada",
  "reviewerReviewsCount": 27,
  "reviewerAvatarUrl": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/ee/db/default-avatar-2020-10.jpg",
  "scrapedAt": "2026-10-19T10:00:16Z"
}

Output fields

From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.

FieldTypeDescription
rowTypestringreview, place or error (error rows are free)
placeIdstringTripadvisor location id (the d-number in the URL)
placeNamestringPlace name
placeTypestringhotel, restaurant, attraction, tour, vacation_rental...
placeUrlstringTripadvisor URL of the place
placeAddressstringAddress
placeRatingnumberOverall Tripadvisor rating (1-5)
placeReviewsCountintegerTotal reviews on Tripadvisor
reviewIdstringTripadvisor review id
reviewUrlstringLink to the review
ratingnumberReview star rating (1-5)
titlestringReview title
textstringReview text
publishedAtstringPublication timestamp (UTC)
publishedDatestringPublication date YYYY-MM-DD
visitDatestringMonth of the trip YYYY-MM
languagestringLanguage of the returned text
originalLanguagestringLanguage the review was written in
isTranslatedbooleanText is a Tripadvisor translation
subRatingsobjectSub-ratings such as Value, Rooms, Location, Cleanliness, Service, Sleep Quality
photosarrayPhoto URLs attached to the review
photoCountintegerNumber of photos
ownerResponsestringManagement response text
ownerResponseDatestringManagement response date

Pricing

Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.

EventFree planBronzeSilverGold
Review main
Charged once for each Tripadvisor review successfully saved to the dataset.
$0.001$0.0009$0.0008$0.0006
Place summary
Charged once for each place summary row successfully saved to the dataset.
$0.003$0.003$0.003$0.003
Actor start
Charged once when the Actor run starts.
$0.0001$0.0001$0.0001$0.0001

Examples on the Free plan: 100 reviews = $0.10, 1,000 reviews = $1, 10,000 reviews = $10. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).

Scheduled price change from 2026-11-02 (Free-plan tier): Review: $0.001 → $0.002. Paid-plan tiers change accordingly. The table shows today's prices.

Example input

This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.

{
  "startUrls": [
    "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"
  ],
  "maxPlacesPerSearch": 5,
  "maxReviewsPerPlace": 20,
  "sortBy": "most_recent",
  "translateReviews": true,
  "includePlaceDetails": false,
  "includeReviewerInfo": true
}

Use it from code, no-code or an AI agent

cURL (one request, returns rows)
curl -X POST \
  "https://api.apify.com/v2/acts/wrenfield-data~tripadvisor-reviews-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"], "maxPlacesPerSearch": 5, "maxReviewsPerPlace": 20, "sortBy": "most_recent", "translateReviews": true, "includePlaceDetails": false, "includeReviewerInfo": true}'
Python
# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/tripadvisor-reviews-scraper").call(
    run_input={
    "startUrls": [
        "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"
    ],
    "maxPlacesPerSearch": 5,
    "maxReviewsPerPlace": 20,
    "sortBy": "most_recent",
    "translateReviews": True,
    "includePlaceDetails": False,
    "includeReviewerInfo": True
},
    max_total_charge_usd=1.00,  # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/tripadvisor-reviews-scraper').call({
  "startUrls": [
    "https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html"
  ],
  "maxPlacesPerSearch": 5,
  "maxReviewsPerPlace": 20,
  "sortBy": "most_recent",
  "translateReviews": true,
  "includePlaceDetails": false,
  "includeReviewerInfo": true
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
MCP (Claude, Cursor, VS Code, any MCP client)
{
  "mcpServers": {
    "wrenfield-tripadvisor-reviews-scraper": {
      "url": "https://mcp.apify.com?tools=wrenfield-data/tripadvisor-reviews-scraper"
    }
  }
}

Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--tripadvisor-reviews-scraper. More client setups on the MCP page.

n8n, Make, Zapier

Use the official Apify node or app, pick Run Actor, enter wrenfield-data/tripadvisor-reviews-scraper and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.

FAQ

How much does Tripadvisor Reviews Scraper cost?

$0.001 per review on the Apify Free plan ($1 per 1,000), billed per result by Apify with no subscription. Plus $0.003 per place summary. Plus $0.0001 per actor start. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.

Is it legal to scrape Tripadvisor reviews?

This Actor does not crawl Tripadvisor itself. It reads publicly visible reviews through a commercial data provider (DataForSEO's Business Data API), so it doesn't bypass any login, CAPTCHA or bot protection. Reviews are copyrighted by their authors and Tripadvisor, and reviewer names are personal data: use the results for analysis, monitoring and research, don't republish review text wholesale, and follow the privacy laws that apply to you (for example GDPR). Turn off Include reviewer info if you don't need it. Ask a lawyer if you are unsure.

How many reviews can I get per place?

Up to 4,490 per request, which is enough for almost every place. For bigger places the Actor automatically splits the job by star rating (5★, 4★...) and removes duplicates, so you can go well beyond that.

Why do I get fewer reviews than the page shows?

Tripadvisor's total counts include reviews in every language and some that are hidden on the site. With Use Tripadvisor translations off, Tripadvisor mostly returns reviews written in the site's language only. Filters (stars, traveler type, months, newer than) also reduce the count.

How do languages work?

By default you get reviews in the language of the URL's site (English for tripadvisor.com), with reviews written in other languages machine-translated by Tripadvisor (isTranslated = true). Set Output language (e.g. es) to get them in another language. To keep only reviews originally written in one language, filter the results on originalLanguage.

Which Tripadvisor sites work?

Any country site: tripadvisor.com, .co.uk, .de, .fr, .it, .es, .com.au, .ca and so on. Reviews come in that site's language (translated if needed). Pagination parts like -or20- are removed automatically so you always start from the top.

How do searches work?

Write what in where, e.g. hotels in Barcelona, Spain, pizza in Portland, Oregon or things to do in Kyoto, Japan, or set Search location once for all queries. Add the country (or the US state) to avoid ambiguity: there is more than one Barcelona and Portland. The location the Actor used is saved in searchLocation on every row. Sponsored results are skipped.

Related tools

Compare and plan

Try Tripadvisor Reviews Scraper now

Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.

Open on Apify