Tripadvisor Reviews Scraper avatar

Tripadvisor Reviews Scraper

Pricing

from $0.02 / 1,000 review saveds

Go to Apify Store
Tripadvisor Reviews Scraper

Tripadvisor Reviews Scraper

Export public Tripadvisor review text, ratings and available place details. Filter by rating, language and date within the accessible review window.

Pricing

from $0.02 / 1,000 review saveds

Rating

0.0

(0)

Developer

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

18 days ago

Last modified

Features

Limited permissions

Share

Export public Tripadvisor reviews as structured data for guest-feedback analysis, hospitality research, spreadsheets and AI workflows. This Tripadvisor reviews scraper returns review text, ratings, publication dates and available place metadata. Optional reviewer details, photos and responses depend on the public source.

Hotel, attraction and tour/product-review exports cover an accessible review window, not necessarily the newest reviews across the full property history. Restaurant access can be blocked. Read the limits below before relying on a complete export.

Quick start

  1. Add a public Tripadvisor hotel, restaurant or attraction detail URL.
  2. Start with a small review limit and leave filters empty to inspect available data.
  3. Run the Actor, then open its dataset to review and export the results.
{
"startUrls": [
{
"url": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
}
],
"maxReviewsPerUrl": 20,
"sort": "recent"
}

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

Ready-to-run examples

Choose an example to start with a small, preconfigured input.

What you get

  • Review text, title, rating, publication date and public review links.
  • Available reviewer display information, photos, subratings and place details.
  • Rating, language and publication-date filters with a limit for each place URL.
  • Source URLs and extraction timestamps for grouping records.
  • Progressive results and a run summary that distinguishes completed and failed sources.

Who is it for?

  • Hospitality operators reviewing exposed guest feedback for known properties.
  • Reputation researchers examining source-limited customer-experience samples.
  • Agency analysts preparing attributed comparison or complaint summaries.
  • Data developers importing review records into their own reporting systems.

How you can use the data

  • Review the existing Hilton hotel sample. Use the Quick start property URL with a small per-place cap and recent order. Keep review text, rating, publication date and original sourceUrl, describing date order within the accessible review window rather than all newest property reviews.
  • Inspect a five-star English subset deliberately. Use the existing filtered recipe and keep source context. Filters apply within the available window, so no matches do not establish that the full property history lacks English five-star feedback.
  • Continue a window with consistent settings. Use the same sort and an explicit start page when reviewing a later portion. StartPage skips ten unique reviews per page in that chosen order before rating, language and date filters. The source can change, and offsets beyond its window return no reviews with a reason in the run summary rather than backfilling history.
  • Join review evidence without assuming global IDs. Keep placeId, original sourceUrl and returned review links together. Regional hotel and attraction identifiers can differ from international IDs, while restaurants retain a separate route. Compare or analyze exports in your own workflow rather than merging routes by reviewId alone or assuming every route populates the same fields.

Input settings

InputTypeDefaultDescription
startUrlsarrayrequired1–20 Tripadvisor hotel, restaurant, or attraction URLs
maxReviewsPerUrlinteger20Maximum reviews saved for each URL (1–500)
startPageinteger0Zero-based page to start from for resume workflows
sortstringrecentSort reviews by recent or relevant
ratingsinteger[]allKeep ratings from 1 to 5
languagesstring[]allKeep language codes such as en, de, or pt-BR
dateFromstringnoneEarliest publication date (YYYY-MM-DD)
dateTostringnoneLatest publication date (YYYY-MM-DD)
failOnErrorbooleanfalseStop on the first failed URL instead of preserving partial results

Input recipe: English five-star reviews

{
"startUrls": [
{
"url": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
}
],
"maxReviewsPerUrl": 20,
"ratings": [
5
],
"languages": [
"en"
]
}

Filters can produce fewer results or no matches. Review order and page offsets refer to the accessible window, not the full property history.

Output data

One dataset item represents one review. The following is a synthetic shape-only example, not a newly collected review.

{
"reviewId": "example-review-id",
"reviewUrl": null,
"title": null,
"text": "Example review text for illustration only.",
"rating": 4,
"publishedDate": "2026-01-01",
"travelDate": null,
"helpfulVotes": null,
"language": "en",
"userId": null,
"username": null,
"userProfileUrl": null,
"userAvatarUrl": null,
"userLocation": null,
"userContributions": null,
"ownerResponse": null,
"photos": [],
"subratings": {},
"placeId": "208453",
"placeName": "Tripadvisor place 208453",
"placeUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html",
"placeRating": null,
"placeReviewCount": null,
"placeAddress": null,
"sourceUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html",
"scrapedAt": "2026-01-01T00:00:00.000Z"
}
FieldDescription
reviewIdTripadvisor review identifier
reviewUrlDirect public review URL
titleReview title
textFull review text
ratingOverall rating from 1 to 5
publishedDateReview publication date
travelDateVisit or stay date when available
helpfulVotesHelpful-vote count
languageReview language code
userIdPublic reviewer identifier
usernamePublic reviewer display name
userProfileUrlReviewer profile URL
userAvatarUrlReviewer avatar URL
userLocationPublic reviewer location
userContributionsPublic contribution count
ownerResponseManagement-response ID, text, and date
photosReview photo IDs, image URLs, and captions
subratingsCategory-level ratings where available
placeIdTripadvisor place identifier
placeNameHotel, restaurant, or attraction name
placeUrlCanonical place URL
placeRatingOverall place rating
placeReviewCountTotal public review count
placeAddressPublic place address
sourceUrlInput URL that produced the review
scrapedAtUTC extraction timestamp

Optional fields are returned as null, {}, or [] when unavailable through the public route used.

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

This Actor uses pay-per-event pricing. The start event is charged once per run after input validation.

The item event is charged for each review saved to the dataset. Filtered-out reviews and failed sources are not charged as saved reviews. A run that saves no reviews can still incur its start charge. The Actor checks whether the charge limit covers startup before extracting, then caps saved batches to the remaining item budget. It stops when no more items fit; billing failures stop extraction while already saved reviews remain accessible.

See the live Pricing tab for current rates and discounts.

Tips for best results

  • Start with 20 reviews. Inspect available fields before increasing your limit.
  • Leave filters empty initially. Rating, language and date filters may exclude every accessible review.
  • Group by source URL. Use sourceUrl to keep batch results tied to your input.
  • Keep ordering consistent. Use the same sort for page-based continuation, while allowing for upstream changes.

Limits and caveats

  • Public place URLs only, with up to 20 URLs and 500 saved reviews per URL. Search pages and private account data are unsupported.
  • Results may be partial. Successful sources remain in the dataset if another fails, unless failOnError stops processing. A run with no saved reviews and source failures fails. Valid extraction with no matching reviews, an offset beyond the accessible window, or an HTTP 404/410 target succeeds empty with a run-summary reason. Blocking challenges, malformed responses and acquisition safeguards remain actionable failures, not proof of privacy or deletion.
  • Essential storage or billing failures and the shared processing deadline fail the run even when some reviews were saved. Automatic resurrection/restart extraction is refused to avoid duplicate output or charges; use a new run with an explicit startPage for manual continuation. The original run start time bounds the processing deadline.
  • Tripadvisor changes and access challenges can prevent exports. This is an independent scraper, not an official Tripadvisor API.

Hotel and attraction review availability and identifiers

Hotel, attraction and AttractionProductReview tour/product URLs use Tripadvisor's anonymous regional public service. Review text remains in its original language. Place names, addresses and subrating labels may be localized. Regional review IDs are preserved as strings and direct review links point to tripadvisor.cn. These IDs can differ from international review IDs: do not assume existing exports can be deduplicated across routes by ID alone. sourceUrl always remains your original input URL.

The regional service exposes a limited review window, not the full review count shown on a property's page. For example, it may advertise 1,000 slots while the property has over 9,000 reviews. Removed/hidden slots can return fewer records. The Actor reads every page of the advertised window before ordering recent results by publication date. The acquisition limit is 5,000 slots for hotels/attractions and 15,000 for tour/product reviews; larger advertised windows fail explicitly rather than exporting an incomplete sample. A large tour window may require hundreds of direct requests before the first results, even when the output limit is small. Response bytes, retained data and a shared processing deadline are independently bounded. It does not claim those are the newest reviews outside that accessible window. relevant preserves the regional service's default order, including pinned entries. startPage skips ten unique reviews per page in the chosen order, before rating/language/date filtering. Offsets outside the accessible window return an empty result with the reason start_page_outside_accessible_window in the run summary.

Public display names, avatars, photos and subratings are included when available in verified shapes. Reviewer IDs/profile links, contributions, locations, travel dates and management responses are currently unavailable through this regional route and remain null. Some attraction responses omit place metadata: the name then uses the explicit label Tripadvisor place <location ID>, with unavailable rating/address left null. Public review counts are included when available. Reviews for unrelated locations mixed into a regional window are excluded. Conflicting metadata for a matching review still causes a source error. No account, contact, cookie, device or moderation fields are exported. Restaurant URLs retain the existing international page route. Their regional API compatibility has not been established, and anti-bot challenges can still cause source errors. Failed sources are reported rather than presented as a complete export.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

Use this as a Tripadvisor reviews API workflow through Apify, not as an official Tripadvisor API.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~tripadvisor-reviews-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"}],"maxReviewsPerUrl":20}'

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tripadvisor-reviews-scraper').call({
startUrls: [{ url: 'https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html' }],
maxReviewsPerUrl: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/tripadvisor-reviews-scraper').call(run_input={
'startUrls': [{'url': 'https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html'}],
'maxReviewsPerUrl': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP and AI agents

You can ask your AI assistant to collect data with Tripadvisor Reviews Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Tripadvisor Reviews Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/tripadvisor-reviews-scraper"
}
}
}

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Tripadvisor Reviews Scraper by Fetch Cat, or give it the identifier fetch_cat/tripadvisor-reviews-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

How can I export Tripadvisor reviews to CSV or JSON?

Run the Actor and export its dataset. JSON preserves nested photos and subratings. CSV or Excel is useful for review tables.

Is there an API for Tripadvisor hotel reviews?

Use this Actor through Apify’s API or clients as shown above. It is not an official Tripadvisor API and does not guarantee complete history.

Does recent mean the newest reviews on Tripadvisor?

For hotels and attractions, it means date order within the accessible review window. Newer reviews outside that window may be unavailable.

Why are some fields empty?

Optional fields depend on the route and source. Hotel and attraction exports currently lack travel dates, management responses and several reviewer details. The limits section explains these differences.

What if my filters return nothing?

Try a small unfiltered export first. Filters can legitimately match no accessible reviews, including when the full property history contains matches outside the available window.

Can it replace a complete reputation-monitoring system?

It provides review data for your own analysis. Scheduling, comparison, notifications and downstream sentiment analysis belong to your workflow. Related Actors below cover other review sources.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review from the Actor page to help others choose the right tool and help us improve it. Your feedback means a lot to us.

Made with care for curious people, AI agents and the possibilities in data. ♥