# TripAdvisor Reviews Scraper – Hotels, Restaurants & Attractions (`data_wiki/tripadvisor-reviews-scraper`) Actor

Scrape Tripadvisor reviews from any hotel, restaurant, attraction or tour. Filter by stars, date and language, and get owner replies, photos and reviewer details. No login needed. Export to CSV, Excel or JSON. Great for reputation tracking, sentiment analysis and competitor research.

- **URL**: https://apify.com/data_wiki/tripadvisor-reviews-scraper.md
- **Developed by:** [Data WiKi](https://apify.com/data_wiki) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 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.
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

### 🚀 What is Tripadvisor Reviews Scraper?

Tripadvisor Reviews Scraper is an Apify Actor that reads the public reviews of Tripadvisor hotels, restaurants, attractions and tours and saves one row per review. Each row holds the stars, text, dates, trip type, owner reply and photos, with the details of the place attached. You paste place links, set filters and export the data.

- **One row per review:** rating, rank and address of the place sit inside every row, so a single table is enough to compare places.
- **Simple settings:** star rating, review language, a start date and a sort order.
- **Many places per run:** add a list of hotel, restaurant, attraction or tour links.
- **No Tripadvisor account:** the Actor reads public pages that any visitor can see.
- **Optional personal data:** switch reviewer details off when you only need ratings and text.

Use it as a Tripadvisor reviews extractor that runs from a simple form. Click **Try for free**, paste a place link and press **Start**.

### 📊 What data can you extract from Tripadvisor?

You can extract Tripadvisor reviews as JSON, CSV, Excel, XML or HTML. Every review is one object with the fields below. Each run gives you structured Tripadvisor reviews data. The example values are made up for illustration and are not real reviews.

| Field | Description | Example |
|---|---|---|
| `id` | Tripadvisor review ID | `900000101` |
| `url` | Link to the review | `https://www.tripadvisor.com/ShowUserReviews-g100001-d2345678-r900000101-Example_Garden_Cafe-Example_Town.html` |
| `title` | Review title | `Example title` |
| `lang` | Language the review is shown in | `en` |
| `locationId` | Tripadvisor ID of the place | `2345678` |
| `publishedDate` | Date the review was written | `2026-10-20` |
| `rating` | Stars given, 1 to 5 | `2` |
| `helpfulVotes` | Helpful votes received | `1` |
| `travelDate` | Month or day of the visit | `2026-09` |
| `tripType` | Trip type such as FAMILY, COUPLES, SOLO, BUSINESS or FRIENDS, when given | `FRIENDS` |
| `text` | Full review text | `Example text written for this README.` |
| `originalLanguage` | Language the review was written in | `en` |
| `isMachineTranslated` | True when the text was machine translated | `false` |
| `subratings` | Extra ratings such as Food or Service as name and value pairs | `[{"name": "Service", "value": 2}]` |
| `ownerResponse` | Owner reply: id, text, lang, publishedDate, responder, responderName, daysToRespond | `{"daysToRespond": 3, ...}` |
| `hasOwnerResponse` | True when the owner replied | `true` |
| `wordCount` | Words in the review text | `6` |
| `photoCount` | Number of photos on the review | `0` |
| `photos` | Photo id, link, width, height and caption (removed when photos are switched off) | `[]` |
| `reviewerTip` | Tip the reviewer left for other travelers | `null` |
| `isPinnedFavorite` | True when the reviewer pinned the review | `false` |
| `hasTrustSafetyAlert` | True when Tripadvisor flagged the review | `false` |
| `user` | Reviewer block: userId, name, username, link, isVerified, avatar, hometown, userLocation, country, isDomesticReviewer, totalContributions, helpfulVotesReceived (left out when reviewer details are off) | `{"name": "Example Reviewer", ...}` |
| `placeInfo` | Place block: name, placeType, rating, numberOfReviews, ratingDistribution, subratings, rank, address, coordinates, amenities, cuisines, priceRange, phone, website | `{"name": "Example Garden Cafe", ...}` |
| `scrapedAt` | When the review was read (UTC) | `2026-11-01T09:00:00Z` |

Fields such as rank, price range, cuisines, phone, website and amenities depend on what the place page shows and can be `null`. The Output tab has three table views: Overview, Reviewer and Place data.

Hotel links produce a Tripadvisor hotel reviews dataset. Restaurant links produce a Tripadvisor restaurant reviews dataset. The `ownerResponse` field gives you Tripadvisor reviews with owner replies. The `photos` field adds Tripadvisor reviews with photos.

### 💡 Use cases for Tripadvisor data

- **Hotel reputation:** schedule a weekly run with `reviewsSince` set to `7d` to monitor new tripadvisor reviews of your property. The same rows feed hotel reputation management reports. Repeated runs let you track hotel ratings over time through `placeInfo.rating`.
- **Restaurant reputation:** restaurant links give you the data for restaurant reputation management. Add several restaurant links to compare restaurant ratings in a city.
- **Complaints and satisfaction:** set `ratings` to 1 and 2 to analyze negative hotel reviews. Read `text` and `subratings` side by side for guest satisfaction research for hotels.
- **Owner replies:** `ownerResponse.daysToRespond` and `publishedDate` let you audit hotel owner replies. Counting `hasOwnerResponse` gives the review response rate for hotels.
- **Competitor comparison:** add the links of rival hotels to compare hotels by guest reviews in one table. Rank, rating and `ratingDistribution` support hotel review benchmarking against competitors.
- **Datasets and models:** export `text` and `rating` as a hotel review dataset for sentiment analysis. With the stars as labels, the rows work as training data for review sentiment models. Restaurant links add data for restaurant review sentiment analysis. Mixed runs build a travel review dataset.
- **Visitors:** `user.country`, `user.hometown` and `user.isDomesticReviewer` show where hotel guests come from. Attraction pages support attraction visitor feedback analysis. Tour pages support tour operator reputation tracking.
- **Research:** the exported rows serve hospitality review analytics. Restaurant owners can run restaurant guest feedback analysis on the same rows. Students can use them for tripadvisor reviews for academic research.

### 🛠️ How to scrape Tripadvisor reviews

1. Create a free Apify account and open Tripadvisor Reviews Scraper in Apify Console.
2. Paste one or more Tripadvisor hotel, restaurant, attraction or tour links into **Place URLs**.
3. Set **Max reviews per place** (10 by default, 0 for every review) and any filters you need.
4. Click **Start** and watch the log, which counts saved reviews.
5. Open the Output tab to browse the reviews.
6. Download the dataset in your preferred format.

No code is needed, so you can get tripadvisor reviews without coding. The Actor also works as a Tripadvisor reviews downloader for quick exports. To collect Tripadvisor reviews for a list of places, add one link per line. To pull Tripadvisor reviews again later, run the same input on a schedule.

#### How to get Tripadvisor reviews by star rating

Pick the stars you want in **Filter by star rating**, for example 1 and 2 for complaints. Only reviews with those ratings are saved.

#### How to get Tripadvisor reviews in any language

Leave **Review language** on `all`, or choose one of 35 language codes such as `en`, `de` or `zh-CN`. One language can be chosen per run.

#### How to get Tripadvisor reviews published after a date

Fill **Reviews since date** with a date such as `2025-01-31` or a relative value such as `90d` or `6 months`. With the default sort, which returns Tripadvisor reviews newest first, the Actor stops reading a place when it reaches older reviews.

#### How to get Tripadvisor reviews for many hotels at once

Add every place link to **Place URLs**. The Actor reads several places in the same run and saves their reviews into one dataset, and the `placeInfo` block tells the places apart.

### 💰 How much does it cost to scrape Tripadvisor?

Tripadvisor Reviews Scraper uses pay per event. The `main_result` event is charged once per review saved to the dataset, and the `apify-actor-start` event is charged once per run at $0.00005. Apify platform usage (compute) is billed on top of the events above.

| Plan tier | Price per review | Price per 1,000 reviews |
|---|---|---|
| Free | $0.001 | $1.00 |
| Bronze | $0.0009 | $0.90 |
| Silver | $0.0008 | $0.80 |
| Gold, Platinum, Diamond | $0.0007 | $0.70 |

Example: 1,000 reviews on the Free tier cost 1,000 x $0.001 = $1.00, and 500 reviews on the Gold tier cost 500 x $0.0007 = $0.35, each plus the $0.00005 start event. A review is never charged twice in one run. Check the Pricing tab for the current rates and set a maximum spend per run; the Actor stops cleanly when the limit is reached. The Actor is configured with 1024 MB of memory.

### ⬇️ Input

Only **Place URLs** (`urls`) is required. The example below reads up to 20 recent one and two star English reviews of one restaurant, and replaces the link with your own place (the ids in it are placeholders).

```json
{
  "urls": [
    "https://www.tripadvisor.com/Restaurant_Review-g100001-d2345678-Reviews-Example_Garden_Cafe-Example_Town.html"
  ],
  "maxReviewsPerPlace": 20,
  "reviewsSince": "6 months",
  "ratings": ["1", "2"],
  "language": "en",
  "sort": "newest",
  "includeReviewerDetails": true,
  "includePhotos": true
}
```

| Field | What it does |
|---|---|
| `urls` (required) | Tripadvisor hotel, restaurant, attraction or tour links, one per line. Links from any Tripadvisor domain work. |
| `maxReviewsPerPlace` | Most reviews saved for each place. 0 means every review. Default 10. |
| `reviewsSince` | Only reviews written on or after a date (`2025-01-31`) or a relative value such as `90d` or `6 months`. Empty means no limit. |
| `ratings` | Keep only these star ratings (`"1"` to `"5"`). Empty means all. |
| `language` | `all` or one language code. Default `all`. |
| `sort` | `newest` (default), `detailed` or `insightful`. |
| `includeReviewerDetails` | Add the reviewer block to every row. Default on. Leave it on to get Tripadvisor reviews with reviewer details. |
| `includePhotos` | Add the photos of each review. Default on. |
| `proxyConfiguration` | Optional. You can choose a proxy here; the Actor starts without one. |

> 💡 Keep **Max reviews per place** small for a first test and raise it once the output looks right.

> 💡 Newest-first sorting with **Reviews since date** is the quickest way to read only recent reviews.

> ⚠️ When **Reviews since date** is combined with the detailed or insightful sort, the Actor scans at most 100 pages of reviews per place before the date filter applies.

### ⬆️ Output

The scraped results are shown as a dataset in the **Storage** tab. The table view is for convenience and does not show **all the fields**. The dataset holds Tripadvisor reviews in JSON, and you can also download it as CSV, Excel, XML or HTML. The same rows open as a Tripadvisor reviews CSV in any spreadsheet. The sample below continues from the input above, is shortened and uses made-up values.

```json
{
  "id": 900000101,
  "url": "https://www.tripadvisor.com/ShowUserReviews-g100001-d2345678-r900000101-Example_Garden_Cafe-Example_Town.html",
  "title": "Example title",
  "lang": "en",
  "locationId": 2345678,
  "publishedDate": "2026-10-20",
  "rating": 2,
  "helpfulVotes": 1,
  "travelDate": "2026-09",
  "tripType": "FRIENDS",
  "text": "Example text written for this README.",
  "originalLanguage": "en",
  "isMachineTranslated": false,
  "subratings": [{ "name": "Service", "value": 2 }, { "name": "Food", "value": 3 }],
  "ownerResponse": {
    "id": 900000102,
    "text": "Example reply.",
    "lang": "en",
    "publishedDate": "2026-10-23",
    "responder": "Manager",
    "responderName": "Example Manager",
    "daysToRespond": 3
  },
  "hasOwnerResponse": true,
  "wordCount": 6,
  "photoCount": 0,
  "photos": [],
  "reviewerTip": null,
  "isPinnedFavorite": false,
  "hasTrustSafetyAlert": false,
  "user": {
    "userId": "EXAMPLE0001",
    "name": "Example Reviewer",
    "username": "example_reviewer",
    "link": null,
    "isVerified": false,
    "avatar": null,
    "hometown": "Sampletown, Germany",
    "userLocation": { "name": "Sampletown, Germany", "id": null },
    "country": "Germany",
    "isDomesticReviewer": false,
    "totalContributions": 7,
    "helpfulVotesReceived": 1
  },
  "placeInfo": {
    "id": "2345678",
    "name": "Example Garden Cafe",
    "placeType": "RESTAURANT",
    "rating": 4.0,
    "numberOfReviews": 180,
    "ratingDistribution": { "1": 8, "2": 12, "3": 25, "4": 60, "5": 75 },
    "cuisines": ["Cafe"]
  },
  "scrapedAt": "2026-11-01T09:00:00Z"
}
```

A `RUN_SUMMARY` record in the key-value store lists `totalReviews`, `placesProcessed`, `errors`, `httpRequests`, `durationSecs` and `spendLimitReached`.

> ⚠️ Reviewer name, username, profile link, avatar and hometown are personal data. Switch **Include reviewer details** off when you only need ratings and text.

### ⚠️ Limitations and error handling

- Only public reviews are collected. Nothing that needs a Tripadvisor login is read.
- The number of saved reviews can be lower than the count a place shows. Filters, **Max reviews per place** and what Tripadvisor returns all reduce it.
- One review language can be chosen per run. Run again for another language.
- Links that are not hotel, restaurant, attraction or tour pages are skipped with a warning in the log.
- A place that cannot be read is logged as failed and counted in `errors` of the run summary. The run can still finish successfully with fewer reviews, or with none when no link is valid, so check the log and the summary.
- The Actor retries when Tripadvisor rejects a request. If access stays blocked, the run stops reading and keeps the reviews already saved.
- There is no per-link status table. Failed places appear in the log and in the run summary only.
- If you set a maximum spend per run, the Actor stops cleanly when it is reached.

### 🔌 Integrating Tripadvisor Reviews Scraper with other apps

You can start Tripadvisor Reviews Scraper from the Apify API, on a schedule or from a webhook, and send the results on to other tools. Run this Apify Tripadvisor reviews scraper from Console, the API or a schedule. For a weekly check, set `reviewsSince` to `7d` and run the Actor on a [schedule](https://docs.apify.com/actors/running/schedules); each run then saves the reviews from that window.

- [Apify integrations](https://docs.apify.com/integrations), including [Make](https://docs.apify.com/integrations/make) and [Zapier](https://docs.apify.com/integrations/zapier)
- [Webhooks](https://docs.apify.com/integrations/webhooks) to trigger your own code when a run finishes
- The [Apify API](https://docs.apify.com/api/v2) with the Actor id `data_wiki/tripadvisor-reviews-scraper`; see the API tab for ready-made code
- AI agents can call this Actor through the [Apify MCP server](https://docs.apify.com/mcp)

### 🔗 Other Tripadvisor and review scrapers by data_wiki

| Actor | What it extracts | When to use it |
|---|---|---|
| [Tripadvisor Review Scraper](https://apify.com/data_wiki/tripadvisor-review-scraper) | The same review fields, with extra keyword, month and traveler-type filters and seven tables | You need those filters or a status row for each link |
| [Tripadvisor Scraper](https://apify.com/data_wiki/tripadvisor-scraper) | Places from search terms or links: details, awards and contact info, with optional reviews | You start from a search term or want place data first |
| [Airbnb Scraper](https://apify.com/data_wiki/airbnb-scraper) | Airbnb listings with prices, hosts, amenities, ratings and guest reviews | You compare hotels with short-term rentals |
| [Glassdoor Reviews & Jobs Scraper](https://apify.com/data_wiki/glassdoor-reviews-jobs-scraper) | Employee reviews, salaries and jobs for a company | You analyze reviews of employers instead of travel places |

If you want to [filter Tripadvisor reviews by keyword, month or traveler type](https://apify.com/data_wiki/tripadvisor-review-scraper), that sibling exposes those inputs. To [search Tripadvisor places by keyword](https://apify.com/data_wiki/tripadvisor-scraper) and collect place data, use the place-first Actor. You can [read stay listings and guest reviews on Airbnb](https://apify.com/data_wiki/airbnb-scraper) next to hotel feedback. The link to [employer reviews on Glassdoor](https://apify.com/data_wiki/glassdoor-reviews-jobs-scraper) is a weak one, because the data is about workplaces, but the review analysis is the same kind of work.

### ⚖️ Is it legal to scrape Tripadvisor?

Tripadvisor Reviews Scraper only collects reviews and profile details that users have made public on [Tripadvisor](https://www.tripadvisor.com), and it does not read private data or anything behind a login. Follow the rules that apply to you, such as the GDPR and CCPA, respect Tripadvisor's terms and the copyright of review text and photos. This is not legal advice; consult a lawyer if you are unsure. See [is web scraping legal](https://blog.apify.com/is-web-scraping-legal/) and [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/) for background.

#### Handling reviewer personal data

Reviews contain personal data: reviewer names, usernames, profile links, avatars, hometowns and the review text itself. Collect it only with a legitimate reason and do not use it to profile or contact individual reviewers. Turn **Include reviewer details** off to leave the reviewer block out of the dataset. The run log never prints reviewer names.

### ❓ FAQ

#### Which Tripadvisor reviews scraper should I use?

Three Tripadvisor Actors by data_wiki exist. This one saves one dataset with three views, 10 reviews per place by default, and rating, language, date and sort filters. The [review Actor with seven tables](https://apify.com/data_wiki/tripadvisor-review-scraper) returns the same review fields plus keyword, month and traveler-type filters, seven tables with a status row per link, and 50 reviews by default. The [place-first Actor for search terms](https://apify.com/data_wiki/tripadvisor-scraper) takes search terms or links, returns place data such as awards and contact info, and collects reviews only if you ask for them. Pick the one whose inputs and tables fit your task.

#### Do I need a Tripadvisor account or API key?

No. This Tripadvisor reviews scraper without login reads public pages, so you only need an Apify account.

#### How many reviews can I get?

As many as Tripadvisor returns for the place and your filters. **Max reviews per place** defaults to 10, and 0 reads every review. Run a small test first to confirm the count.

#### Is there a Tripadvisor reviews API?

You can run the Actor and read its dataset through the [Apify API](https://docs.apify.com/api/v2). It is not an official Tripadvisor API.

#### Does it work on hotels and restaurants only?

No. Hotel, restaurant, attraction and tour pages from any Tripadvisor domain are accepted. Other page types are skipped with a warning.

#### Can I scrape private data or reviewer emails?

No. Only public review and profile details are collected, and no emails.

#### Do I need proxies?

No. The Actor starts without a proxy and retries when Tripadvisor rejects a request. You can choose a proxy in the input if you want one.

#### Can I use it through an MCP server?

Yes. Agents can find and call the Actor through the [Apify MCP server](https://docs.apify.com/mcp) with the same input as above.

### 💬 Your feedback

Found a problem or need another field? Open an issue in the Issues tab of the Actor. Need a custom solution? Contact hello.datawiki@gmail.com.

# Actor input Schema

## `urls` (type: `array`):

TripAdvisor hotel, restaurant, attraction or tour page URLs to scrape reviews from (Hotel_Review, Restaurant_Review, Attraction_Review or AttractionProductReview links). Any TripAdvisor domain works.

## `maxReviewsPerPlace` (type: `integer`):

Maximum number of reviews to scrape per place. Set to 0 for all reviews.

## `reviewsSince` (type: `string`):

Only scrape reviews published on or after this date. Accepts absolute dates (2025-01-31), relative values (90d, 6 months), or leave empty for all reviews.

## `ratings` (type: `array`):

Only return reviews with these star ratings. Leave empty for all ratings.

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

Filter reviews by language code (e.g. en, fr, de, es). Use 'all' to get reviews in every language.

## `sort` (type: `string`):

Sort reviews by date (newest first), detail level, or usefulness.

## `includeReviewerDetails` (type: `boolean`):

Include reviewer profile information such as name, location, and contribution counts.

## `includePhotos` (type: `boolean`):

Include photos attached to each review.

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

Configure a proxy for requests. The scraper automatically escalates from datacenter to residential proxies on repeated blocks.

## Actor input object example

```json
{
  "urls": [
    "https://www.tripadvisor.com/Hotel_Review-g60763-d122005-Reviews-The_Plaza-New_York_City_New_York.html"
  ],
  "maxReviewsPerPlace": 10,
  "language": "all",
  "sort": "newest",
  "includeReviewerDetails": true,
  "includePhotos": true
}
```

# Actor output Schema

## `reviews` (type: `string`):

All reviews: rating, text, dates, trip type, owner response and photo count.

## `reviewers` (type: `string`):

Who wrote each review: name, country, hometown and contribution counts.

## `placeData` (type: `string`):

The hotel, restaurant or attraction behind each review: rating, review count and address.

## `runSummary` (type: `string`):

Review counts, error tally and duration for the run.

# 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 = {
    "urls": [
        "https://www.tripadvisor.com/Hotel_Review-g60763-d122005-Reviews-The_Plaza-New_York_City_New_York.html"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_wiki/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 = { "urls": ["https://www.tripadvisor.com/Hotel_Review-g60763-d122005-Reviews-The_Plaza-New_York_City_New_York.html"] }

# Run the Actor and wait for it to finish
run = client.actor("data_wiki/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 '{
  "urls": [
    "https://www.tripadvisor.com/Hotel_Review-g60763-d122005-Reviews-The_Plaza-New_York_City_New_York.html"
  ]
}' |
apify call data_wiki/tripadvisor-reviews-scraper --silent --output-dataset

```

## MCP server setup

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