# TripAdvisor Review Scraper (`fastdataapi/tripadvisor-review-scraper`) Actor

TripAdvisor Review Scraper — Extract TripAdvisor reviews, ratings, review text, reviewer details, travel dates, photos, business information, and review URLs. Ideal for sentiment analysis, hospitality research, competitor analysis, and customer feedback monitoring.

- **URL**: https://apify.com/fastdataapi/tripadvisor-review-scraper.md
- **Developed by:** [Fast Data API](https://apify.com/fastdataapi) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### TripAdvisor Review Scraper — Ratings, Text, Photos and Owner Replies

TripAdvisor Review Scraper extracts every review from a TripAdvisor hotel, restaurant or attraction page: star rating, full review text, trip type, sub-ratings, photos, owner replies and the reviewer's public profile. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a review sentiment analysis pipeline. **No TripAdvisor account or login is needed** — paste a review page link or a place name and get one row per review. Start with one hotel, then scale to every property you track.

***

### What data can I extract with TripAdvisor Review Scraper?

Using this TripAdvisor Reviews API, you will be able to extract the following TripAdvisor review data:

| ⭐ Star rating | 📝 Full review text | 👤 Reviewer profile | 💬 Owner reply |
| --- | --- | --- | --- |
| 📊 Sub-ratings (aspects) | 📸 Review photos | 🧳 Trip type | ✈️ Travel month |
| 🏷️ Review title | 📅 Published date | 📱 Published from (if shared) | 🌍 Review language |
| 🛏️ Room tip (hotels) | 👍 Helpful votes | 🆔 Review ID | 🔗 Review URL |
| 📍 Place ID | 🏨 Place details | 🕒 Scraped-at timestamp | |

***

### How to use TripAdvisor Review Scraper

Anyone who wants to scrape TripAdvisor reviews without building their own scraper can run this Actor and get every review from one run as structured rows.

**Copy to your AI assistant:**

```text
This Actor is an Apify Actor that returns TripAdvisor reviews as structured JSON: star rating, full review text, trip type, sub-ratings, photos, owner replies, and the reviewer's name, username and home town. Use it whenever someone needs TripAdvisor hotel, restaurant or attraction reviews without cookies, a login, or a browser - tracking your own property's rating, comparing competitor ratings in one city, and feeding review text into a sentiment-analysis pipeline. Inputs: startUrls (array of TripAdvisor review page links or place names, required), maxComments (integer, 1-10000, default 10), sortOrder ("newest"|"oldest"|"relevant"|"rating", default "newest"), reviewsLanguages (string, a language name or "ALL_REVIEW_LANGUAGES", default "English"), reviewRatings (string, "ALL_REVIEW_RATINGS"|"POSITIVE"|"NEGATIVE"|"AVERAGE"|"1"-"5", default "ALL_REVIEW_RATINGS"), scrapeReviewerInfo (boolean, default true), proxyConfiguration (object, Apify Proxy settings). The language and rating filters are applied by TripAdvisor itself, so maxComments counts matching reviews only.
```

#### TripAdvisor Review Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

An AI assistant connected to Apify's MCP server can find this TripAdvisor reviews API through its search, add and call actor tools, run it for a list of places, and read the reviews back mid-conversation. No glue code, no scraping logic written into your prompts, and no separate API key to manage beyond the one Apify connection your agent already has.

```bash
claude mcp add --transport http apify "https://mcp.apify.com"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open the Actor's page in the Apify Store.
3. Enter a TripAdvisor review page link or a place name.
4. Click **Start** (or send your API request).
5. Download or stream your results, or export TripAdvisor reviews to CSV, Excel or JSON.

#### How to scale TripAdvisor Review Scraper to bulk

The place list takes as many entries as you want, so add every TripAdvisor review page URL or place name you want to track and they all run in the same session, up to three at a time. This is how to scrape bulk TripAdvisor reviews by URL: one run can mix hotels, restaurants and attractions, and duplicate links to the same place are scraped once. For a recurring pull, set up an Apify schedule to rerun the same place list daily or weekly so new reviews keep arriving in fresh runs, or call the Actor from a script with a different place list each time.

***

### ✨ Features

TripAdvisor Review Scraper fetches clean, structured reviews from TripAdvisor hotel, restaurant and attraction pages. It's ideal for reputation monitoring, competitor research, review sentiment analysis and travel market research. It extracts, per review:

- **Star rating and text** – the exact score and the full review as written
- **Trip details** – travel month and trip type (family, couples, solo, business, friends)
- **Sub-ratings** – aspect scores such as Rooms, Service, Value, Location or Food
- **Photos** – every photo attached to the review, with captions
- **Owner reply** – the place's public response, when there is one
- **Reviewer profile** – name, username, home town, avatar and contribution counts

⚡ Every review is saved as soon as its page is read, so results start filling the dataset within a couple of seconds of starting the run (a recorded run stored its first review after 2.0 seconds).

***

### Use cases 💡

- **Hotel manager** — run this TripAdvisor hotel reviews scraper on your own property and flag reviews with no reply.
- **Competitor researcher** — compare ratings and sub-ratings across hotels or restaurants in one city.
- **Sentiment analyst** — feed review text and ratings into a TripAdvisor review sentiment analysis pipeline.
- **Travel researcher** — collect TripAdvisor attraction reviews and rating histograms for a destination.
- **AI agent builder** — pass review JSON into a RAG pipeline as grounded guest-feedback context.

Building an AI agent? [Connect TripAdvisor Review Scraper over MCP](#tripadvisor-review-scraper-mcp-server-use-these-actors-from-chatgpt-claude-or-cursor) and let it call the actor on its own.

***

### Why choose this actor?

- **Every review streamed in as it's read.** A recorded run saved 100 reviews from one hotel in 4.2 seconds, with the first review stored after 2.4 seconds.
- **Three places at once, filters applied by TripAdvisor itself.** A recorded run collected 71 reviews from three places — a hotel, an attraction and a restaurant — in 3.3 seconds; one place returned all 11 reviews it has on TripAdvisor, since that's the real total.
- **The full picture behind each review, not just a star count.** A sample review came back with its owner reply, a guest room tip, two photos and the reviewer's travel details attached.

***

### ⬇️ Input

Paste one or more TripAdvisor review page links or place names into `startUrls` — the only required field, and the one place this doubles as a TripAdvisor hotel reviews scraper, a TripAdvisor restaurant reviews scraper, or an attraction review scraper, all in the same run. Everything else narrows what comes back per place.

| Parameter | Required | Type | Description | Example value |
| --- | --- | --- | --- | --- |
| `startUrls` | Yes | Array | TripAdvisor review page links (any country domain) or place names, one entry per place. Works for hotels, restaurants and attractions; duplicate entries are scraped once. | `["https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"]` |
| `maxComments` | No | Integer | Maximum reviews to save per place, 1–10,000 (default 10). A place with fewer matching reviews gives all it has. Free plan: up to 20 per place per run, 200 per month. | `100` |
| `sortOrder` | No | String | Order reviews are collected in: `newest` (default), `oldest`, `relevant` or `rating`. | `"newest"` |
| `reviewsLanguages` | No | String | Only reviews written in this language, or `ALL_REVIEW_LANGUAGES` for every language (default `English`). | `"English"` |
| `reviewRatings` | No | String | Only reviews with these star ratings: `ALL_REVIEW_RATINGS` (default), `POSITIVE`, `NEGATIVE`, `AVERAGE`, or one exact star count `1`–`5`. | `"ALL_REVIEW_RATINGS"` |
| `scrapeReviewerInfo` | No | Boolean | Add the reviewer's public profile to every row (default `true`). Off leaves the `user` field `null`. | `true` |
| `reviewQueryId` | No | String | Advanced, optional. Pins TripAdvisor's internal review-list identifier; leave it empty and the Actor works out the current one on its own. | `""` |
| `proxyConfiguration` | No | Object | Apify Proxy settings (default: Apify residential proxy). | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |

A run without any TripAdvisor link or place name stops right away with a clear status message.

#### Example input

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
  ],
  "maxComments": 100,
  "sortOrder": "newest",
  "reviewsLanguages": "English",
  "reviewRatings": "ALL_REVIEW_RATINGS",
  "scrapeReviewerInfo": true,
  "reviewQueryId": "",
  "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}
}
```

***

### ⬆️ Output

Use this to extract TripAdvisor reviews as one typed, normalized JSON item per review, with the same field names on every run. Export your results as JSON, CSV or Excel straight from the run, so you can download TripAdvisor reviews to CSV for a spreadsheet or feed the JSON straight into a pipeline.

#### Example output

A real row from a recorded run:

```json
{
  "id": "1080272805",
  "url": "https://www.tripadvisor.com/ShowUserReviews-g60763-d208453-r1080272805-Hilton_New_York_Times_Square-New_York_City_New_York.html",
  "title": "Great Location in Times Square",
  "lang": "en",
  "locationId": "208453",
  "publishedDate": "2026-10-03",
  "publishedPlatform": null,
  "rating": 5,
  "helpfulVotes": 0,
  "text": "Conveniently located in the heart of Times Square. A perfect home base for our 3 day stay where we could easily walk to theaters, restaurants and major sites. Multiple subway lines are steps away.\n\nThe hotel is well maintained and rooms are decent sized for NYC. Views were great from the upper floors and we appreciated the additional security of key card access in guest elevators. Housekeeping was friendly and thorough.\n\nWould stay again!",
  "roomTip": {
    "tips": [
      { "body": "Buy water and snack items from Target (across the street) to avoid higher prices at the onsite sundry (a 1L bottle of Evian was $11!)", "published": true }
    ]
  },
  "travelDate": "2026-07",
  "tripType": "FAMILY",
  "user": {
    "userId": "7E8B66A6BF827F607B044CC3928E9E86",
    "name": "AveMaria",
    "contributions": { "totalContributions": 61, "helpfulVotes": 28 },
    "username": "AveMaria604",
    "userLocation": "Alexandria, Virginia",
    "avatar": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/25/9a/78/56/avemaria604.jpg?w=100&h=100&s=1",
    "link": "https://www.tripadvisor.com/Profile/AveMaria604"
  },
  "ownerResponse": {
    "id": "1080754555",
    "text": "Dear Avemaria,\nThank you for choosing Hilton Times Square as your home base and for sharing such a thoughtful review. We are glad that our central location near theaters, dining, and subway lines made exploring the city so easy, and that your well-kept room and our attentive housekeeping team made each day comfortable. We look forward to welcoming you back again soon.",
    "lang": "en",
    "publishedDate": "2026-10-06",
    "responder": "Front Desk",
    "connectionToSubject": "General Manager"
  },
  "subratings": [],
  "photos": [
    { "id": "885569953", "url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/34/c8/b9/a1/caption.jpg?w=550&h=309&s=1", "caption": null, "albumId": null },
    { "id": "885569954", "url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/34/c8/b9/a2/caption.jpg?w=550&h=309&s=1", "caption": null, "albumId": null }
  ],
  "placeInfo": {
    "id": "208453",
    "name": "Hilton New York Times Square",
    "rating": 4.3,
    "numberOfReviews": 9025,
    "locationString": "New York City, New York",
    "latitude": 40.75665,
    "longitude": -73.988815,
    "webUrl": "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html",
    "website": "https://www.hilton.com/en/hotels/nyctshh-hilton-times-square/?seo_id=yextn-amer-hh-nyctshh",
    "address": "234 West 42nd Street, New York City, NY 10036",
    "addressObj": {
      "street1": "234 West 42nd Street",
      "street2": null,
      "city": "New York City",
      "state": "NY",
      "country": "United States",
      "postalcode": "10036"
    },
    "ratingHistogram": { "count1": 275, "count2": 297, "count3": 715, "count4": 2579, "count5": 5159 },
    "placeType": "ACCOMMODATION"
  },
  "scrapedAt": "2026-10-08T10:47:35Z"
}
```

***

### How does it work?

TripAdvisor Review Scraper reads the same public review pages any visitor sees on TripAdvisor, through plain HTTP requests — no browser is opened. Requests go through Apify's residential proxy by default, or start on a direct connection and switch to the proxy automatically once TripAdvisor starts blocking it. A blocked request is retried on a fresh connection rather than failing the run, and a wrong or removed listing is skipped and reported instead of stopping the whole run. Only data any visitor can see without logging in is returned — nothing from behind a TripAdvisor account. Each review is normalized into the same set of fields on every run, so the schema an integration reads today keeps working even when TripAdvisor changes its page layout or anti-bot checks. A place name with no direct link is matched to a TripAdvisor page through a public search first.

***

### How do you integrate TripAdvisor Review Scraper into your stack?

It works with what you already use: a REST API from any language, MCP for AI agents, and no-code tools.

#### MCP integration for AI agents

```bash
claude mcp add --transport http apify "https://mcp.apify.com"
```

This registers Apify's MCP server as a tool your agent can call directly. Once connected, Claude, Cursor or Windsurf can search for this Actor, add it as a tool, and call it with a review page link or place name — no separate integration code required on your side. The agent gets the same structured JSON rows back that a normal run produces, ready to read or summarize in the same conversation.

#### No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node's "Run an Actor" operation, or the HTTP Request node pointed at the run-sync endpoint with your token. In Make, use the Apify app's "Run an Actor" module, then "Get Dataset Items" to read the reviews. In LangChain, the `langchain-apify` package wraps any Apify Actor, including this one, as a callable tool.

***

### Is it legal to scrape TripAdvisor data?

Scraping publicly available data is generally lawful, although TripAdvisor's Terms of Use restrict automated access. This Actor returns only reviews that any visitor can see without logging in, nothing from behind a TripAdvisor account. Reviewer names, usernames, home towns and avatars are personal data under GDPR and CCPA, so storing and using them must have a lawful basis and follow local data-protection law; turn off "Include reviewer profile" if you don't need it. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does TripAdvisor Review Scraper return?

The top fields are star rating, full review text, trip type, sub-ratings and the reviewer's profile. See [the data fields section](#what-data-can-i-extract-with-tripadvisor-review-scraper) for the full list.

#### Does TripAdvisor Review Scraper require a TripAdvisor account or login?

No. Only public review data is extracted, and no TripAdvisor credentials are needed to run this TripAdvisor review extractor.

#### How fast does TripAdvisor Review Scraper run?

A recorded run saved 100 reviews from one hotel in 4.2 seconds, and a run against three places returned 71 reviews in 3.3 seconds. Results are read live from TripAdvisor, not served from a cache.

#### What happens if a link is wrong or a listing has been removed?

A wrong link or a removed listing is skipped and named in the log and the run's status message, and it isn't charged; the other places in the same run keep going. A place with no reviews matching your filters is reported as such, and the run still succeeds.

#### Can I scrape multiple TripAdvisor places at once?

Yes. `startUrls` takes multiple entries — hotels, restaurants and attractions can be mixed in one run — and up to three places are scraped at the same time.

#### Does TripAdvisor Review Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — it is available as an MCP tool. Use `claude mcp add --transport http apify "https://mcp.apify.com"` to register Apify's MCP server in Claude Code, Cursor or Windsurf. Any agent that can call an HTTP endpoint can use the REST API directly.

#### Does TripAdvisor Review Scraper return data in a format LLMs can use directly?

Yes. Typed, normalized JSON with consistent field names, no HTML parsing and no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool with no transformation step.

#### What happens when TripAdvisor changes its layout or anti-bot system?

This Actor is maintained, and when TripAdvisor changes, it's updated so your calls keep returning the same JSON schema with no changes on your end.

#### Can I use TripAdvisor Review Scraper without managing proxies or browser infrastructure?

Yes. Proxy rotation and retrying after a block run on the Actor's side. You send one request and get structured JSON back, with no proxy accounts and no browser setup to maintain.

#### Which TripAdvisor review fields work best for AI training data and RAG indexing?

For RAG, the text-rich fields: the review text, the owner reply and the room tip. For training data, the numeric and boolean fields: star rating, helpful votes and the sub-rating values. All fields are typed primitives — strings, integers, booleans — so no extra normalization is needed.

***

### Your feedback

Found a bug or a place that didn't come out right? Let us know so we can keep this Actor accurate as TripAdvisor changes. Every report is read, and fixes ship as soon as they're found.

# Actor input Schema

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

One entry per place. Works for hotels, restaurants and attractions.

**Direct TripAdvisor review links** give the best and fastest results, for example:

- `https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html`
- `https://www.tripadvisor.com/Restaurant_Review-g60763-d25218867-Reviews-Shmone-New_York_City_New_York.html`
- `https://www.tripadvisor.com/Attraction_Review-g60763-d105127-Reviews-Central_Park-New_York_City_New_York.html`

Links from any TripAdvisor country site (tripadvisor.co.uk, .de, .fr …) work too.

**Place names or keywords** (e.g. `Hilton New York Times Square`) are looked up on Google and the first TripAdvisor page found is used, so they can miss. Duplicate entries and links to the same place are scraped once.

## `maxComments` (type: `integer`):

How many reviews to save from each place (1 to 10,000). If a place has fewer reviews matching your filters, you get all of them.

Free plan: up to 20 reviews per place in each run and 200 reviews per month.

## `sortOrder` (type: `string`):

The order in which reviews are collected.

- **Newest first**: most recent reviews first (default, best for monitoring).
- **Oldest first**: earliest reviews first. TripAdvisor doesn't offer this order at the moment, so the run uses newest first and says so in the log.
- **Most relevant**: TripAdvisor gives the same order as newest first.
- **Highest rating**: 5-star reviews first.

## `reviewsLanguages` (type: `string`):

Only reviews written in this language are collected. Choose **All languages** to get every review of the place.

## `reviewRatings` (type: `string`):

Only reviews with these star ratings are collected, so the review limit counts matching reviews only.

- **All ratings**: every review (default).
- **Positive**: 4 and 5 stars.
- **Negative**: 1 and 2 stars.
- **Average**: 3 stars.
- Or one exact star rating.

## `scrapeReviewerInfo` (type: `boolean`):

Adds the reviewer's public profile to every row: name, username, profile link, home town, avatar and contribution counts. Turn it off when you only need the reviews; the `user` field is then `null`.

## `reviewQueryId` (type: `string`):

A 16-character value (digits 0-9 and letters a-f) that TripAdvisor uses to identify its review list. It changes from time to time; the Actor finds the current one by itself and remembers it for later runs, so you almost never need this. Set it only to pin a specific value, e.g. `ef3cb4f569f27e43`. An invalid value is ignored with a warning.

## `proxyConfiguration` (type: `object`):

Which connection the requests go through.

- **Apify residential proxy** (default): the most reliable choice for TripAdvisor.
- **Datacenter or your own proxies**: used for every request.
- **No proxy**: the run starts on a direct connection and switches to Apify's residential proxy by itself if TripAdvisor starts blocking.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
  ],
  "maxComments": 10,
  "sortOrder": "newest",
  "reviewsLanguages": "English",
  "reviewRatings": "ALL_REVIEW_RATINGS",
  "scrapeReviewerInfo": true,
  "reviewQueryId": "ef3cb4f569f27e43",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped reviews, one row per review, with rating, full text, reviewer profile, owner response, photos, sub-ratings and place details.

# 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/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
    ],
    "reviewsLanguages": "English",
    "reviewRatings": "ALL_REVIEW_RATINGS",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/tripadvisor-review-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/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"],
    "reviewsLanguages": "English",
    "reviewRatings": "ALL_REVIEW_RATINGS",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/tripadvisor-review-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/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
  ],
  "reviewsLanguages": "English",
  "reviewRatings": "ALL_REVIEW_RATINGS",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call fastdataapi/tripadvisor-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fastdataapi/tripadvisor-review-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/sVBQvBjwf8rKRJNwo/builds/Qi1Q5frnZL41694gf/openapi.json
