# TripAdvisor Reviews Scraper (`parseforge/tripadvisor-reviews-scraper`) Actor

Scrape TripAdvisor reviews from any location page. Each review includes rating, full text, date, helpful votes, and owner response. Filter by language. No login required.

- **URL**: https://apify.com/parseforge/tripadvisor-reviews-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Travel, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 20 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $25.99 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### TripAdvisor Reviews Scraper

**Scrape TripAdvisor reviews from any restaurant, hotel, or attraction page, up to a million per run.** Every review comes with its rating, full text, date of travel, helpful votes, and owner response. No login or API key. Export to CSV, JSON, Excel, or XML.

TripAdvisor's official API is limited and requires approval, making bulk review extraction difficult. This scraper reads the public review feeds directly from any TripAdvisor location page, filtered by language, and returns each review in one fixed schema. No registration needed.

| Who uses it | What they scrape TripAdvisor for |
|---|---|
| Market researchers | Analyze customer sentiment and trends across hundreds of locations. |
| Hotel and restaurant owners | Monitor their own reviews and competitor feedback in bulk. |
| Data analysts | Build datasets for NLP, sentiment analysis, or reputation benchmarking. |
| Travel bloggers and journalists | Gather review data for articles or destination guides. |

### What it does

This Actor collects TripAdvisor reviews from restaurant, hotel, or attraction pages and returns each review as a flat row with rating, text, date, and reviewer info.

- 🔗 **URL-based scraping:** Paste one or more TripAdvisor location URLs directly.
- 🌐 **Location ID input:** Use the numeric location ID from the URL (e.g., d457808) as an alternative to URLs.
- 🌍 **Language filter:** Set a language code (e.g., 'en', 'es', 'fr') to only collect reviews in that language.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with TripAdvisor data

**📊 Monitor brand reputation.**

A hotel chain runs this scraper weekly on all its property pages to track rating changes and respond to negative reviews.

**🔍 Analyze competitor reviews.**

A restaurant owner scrapes reviews from top competitors to identify what customers praise or complain about.

**📈 Build a travel sentiment dataset.**

A data scientist collects reviews from hundreds of attractions to train a sentiment analysis model for the hospitality industry.

**🌐 Localize customer feedback.**

A global brand filters reviews by language to understand regional customer satisfaction separately.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key needed** | Scrape public TripAdvisor reviews without any registration or token. |
| **Language filter** | Collect only reviews in the language you need, reducing noise. |
| **Bulk extraction** | Get up to 1 million reviews per run from multiple locations at once. |
| **Structured output** | Every review includes rating, text, date, helpful votes, and owner response. |

### How it compares

This Actor competes directly with other TripAdvisor review scrapers on Apify, offering a simple URL-based input and language filtering without requiring an API key.

| Feature | ParseForge | Tripadvisor Scraper | Tripadvisor Reviews Scraper | 🐺 TripAdvisor Reviews Scraper API | $0.50/1K Reviews |
|---|---|---|---|---|
| Full review text | Yes | Not listed | Yes | Yes |
| Review rating | Yes | Yes | Yes | Yes |
| Date of travel | Yes | Not listed | Yes | Not listed |
| Owner response | Yes | Not listed | Yes | Not listed |
| Helpful votes | Yes | Not listed | Yes | Not listed |
| Language filter | Yes | Not listed | Not listed | Not listed |
| Location ID input | Yes | Not listed | Not listed | Not listed |

### Configure the run

Drive the Actor from TripAdvisor location URLs or a location ID, alone or together, and the language filter runs as each review is read so only matching reviews reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
  ],
  "maxItems": 10
}
```

A larger pull:

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
  ],
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.03466 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $3.47 |
| 1,000 results | $34.66 |
| 10,000 results | $346.60 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [TripAdvisor Reviews Scraper](https://apify.com/parseforge/tripadvisor-reviews-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to TripAdvisor through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tripadvisor-reviews-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no reviews?**

Check that your URL is a valid TripAdvisor location page with reviews. Ensure the language filter matches the reviews on the page. Also verify that maxItems is set high enough.

**The scraper is returning fewer reviews than expected.**

TripAdvisor may not show all reviews if the page is very old or the location has few reviews. Try increasing maxItems and removing the language filter to see all available reviews.

**I get an error about invalid URL.**

Make sure the URL starts with 'https://www.tripadvisor.com/' and points to a restaurant, hotel, or attraction page. Do not use shortened URLs or mobile links.

**Can I scrape reviews from a specific date range?**

The current version does not support date range filtering. You can filter the results after export using the 'publishedDate' field.

**The scraper is very slow.**

Reduce the maxItems value or split your URLs into multiple runs. Also check your Apify plan's concurrency limits.

### FAQ

| Question | Answer |
|---|---|
| Do I need a TripAdvisor API key? | No. This scraper reads public review pages directly, so no API key or login is required. |
| Can I scrape reviews from multiple locations in one run? | Yes. You can provide multiple TripAdvisor URLs in the startUrls field, and the Actor will collect reviews from all of them. |
| What data does each review include? | Each review includes the rating, full text, date of travel, published date, helpful votes, owner response, reviewer name and location, and the review URL. |
| How do I find the location ID? | The location ID is the number after 'd' in the URL. For example, in 'https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html', the location ID is 457808. |
| Can I filter reviews by language? | Yes. Set the 'language' parameter to a language code like 'en' for English, 'es' for Spanish, or 'fr' for French. |
| What is the maximum number of reviews I can scrape? | You can set maxItems up to 1,000,000 reviews per run. |
| Is this scraper legal? | Scraping public data from TripAdvisor is generally allowed, but you should review TripAdvisor's terms of service and respect robots.txt. This Actor is for personal and research use. |
| Can I scrape reviews from attractions or things to do? | Yes. The scraper works on any TripAdvisor page that has reviews, including restaurants, hotels, and attractions. |
| What export formats are available? | You can download the results as CSV, JSON, Excel, or XML from the Apify dataset. |
| How fast is the scraper? | Speed depends on the number of reviews and your Apify plan, but it typically processes hundreds of reviews per minute. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TripAdvisor, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `startUrls` (type: `array`):

URLs of TripAdvisor restaurant, hotel, or attraction pages to scrape reviews from. Example: https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html

## `maxItems` (type: `integer`):

How many reviews to collect per run.

## `locationId` (type: `integer`):

TripAdvisor location ID (found in URL as d123456). Use this OR startUrls, not both.

## `language` (type: `string`):

Filter reviews by language code (e.g., 'en' for English, 'es' for Spanish, 'fr' for French).

## Actor input object example

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
  ],
  "maxItems": 10,
  "language": "en"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/tripadvisor-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/tripadvisor-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
  ],
  "maxItems": 10
}' |
apify call parseforge/tripadvisor-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/tripadvisor-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fmZ9z9V1vmusRPt36/builds/tAtx2bq7zKQegzOOF/openapi.json
