# TripAdvisor Scraper — Hotels, Restaurants & More (`lentic_clockss/tripadvisor-scraper`) Actor

Scrape TripAdvisor hotels, restaurants, attractions, cruises, vacation rentals, and forums by destination or geo. Extract ratings, review counts, prices, rankings, and detail URLs across regional domains. Export JSON/CSV for travel research and lead gen.

- **URL**: https://apify.com/lentic\_clockss/tripadvisor-scraper.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** Travel, Lead generation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## TripAdvisor Scraper — Hotels, Restaurants, Attractions & More

### What does TripAdvisor Scraper do?

[TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper) extracts structured place and listing data from [TripAdvisor](https://www.tripadvisor.com) by destination or geo id. Unlike hotels-only tools, it covers **hotels, restaurants, attractions (things to do), cruises, vacation rentals, and forums** across regional TripAdvisor domains.

Use it for travel research, competitive monitoring, lead generation, and destination inventory — **no TripAdvisor login**. Export results as **JSON or CSV**.

### What you can scrape

| Field | Description |
|---|---|
| `service` | hotels / restaurants / attractions / cruises / vacation_rentals / forums |
| `name` | Place or listing title |
| `rating` / `reviewCount` | Bubble rating (typically out of 5) and review volume |
| `price` / `priceDisplay` / `currency` | Price signals when shown |
| `url` | Detail page URL |
| `listingId` | Stable TripAdvisor id when available |
| `domain` | Regional host used for the search |
| `destination` | Search geography |
| `sponsored` | Sponsored placement flag |
| `scrapedAt` | Collection timestamp |

#### Hotels
Geo-based hotel SERPs with optional check-in / check-out for priced cards.

#### Restaurants
Restaurant listings for a destination geo — ratings, review counts, and detail URLs.

#### Attractions (things to do)
Attractions and tours cards for sightseeing and activity research.

#### Cruises / vacation rentals / forums
Additional TripAdvisor verticals when available for the selected geo and domain.

### Multi-domain & locales

Supported hosts include: `www.tripadvisor.com`, `.co.uk`, `.ca`, `.com.au`, `.de`, `.fr`, `.it`, `.es`, `.nl`, `.ie`, `.co.jp`, `.com.sg`, `.com.hk`, `.com.my`, `.co.id`, `.co.in`, `.com.mx`, `.com.br`, `.com.ar`, `.co.za`, `.com.ph`, `.com.tw`, `.com.tr`.

Set `domain` to the market you care about; residential proxy country defaults from that host (for example `www.tripadvisor.co.uk` → GB).

### Why scrape TripAdvisor?

- **Travel research** — collect hotels, restaurants, and attractions for a city
- **Competitive monitoring** — track ratings, review counts, and sponsored placement
- **Lead generation** — structured detail URLs for outreach or enrichment
- **Destination inventory** — multi-vertical coverage in one Actor

### More Actors like this

Need another travel site or a different vertical? Use a **dedicated Actor** below for structured fields. Use this Actor for **TripAdvisor** hotels, restaurants, attractions, and related listing SERPs across regional domains.

#### Similar travel scrapers
- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Despegar Scraper](https://apify.com/lentic_clockss/despegar-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [Traveloka Scraper](https://apify.com/lentic_clockss/traveloka-scraper)
- [Travelstart Flights Scraper](https://apify.com/lentic_clockss/travelstart-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)

#### Prefer another specialized scraper?
If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

**Jobs & Freelance**
- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)

**E-commerce**
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)

**Real Estate**
- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)

**Social & Content**
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)

**Ads Intelligence**
- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

**Local & Maps**
- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

#### General tools
- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ See the full catalog in [Related Actors](#related-actors) below, or browse [apify.com/lentic_clockss](https://apify.com/lentic_clockss).

---

### How to scrape TripAdvisor (step-by-step)

1. Open [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper) and click **Try for free**.
2. Choose a `service` (start with `hotels` or `attractions`).
3. Set `destination` and preferably `regionId` (TripAdvisor geo id, e.g. Bangkok `293916`).
4. Optionally pick a regional `domain` and `maxResults`.
5. Click **Start** and download the dataset as JSON or CSV.

You can also run via the Apify API, Scheduler, or integrations (Make, Zapier, n8n, webhooks).

### How much does it cost?

This Actor uses **Pay per event** pricing. You are **not** charged separately for Apify platform usage on this Actor.

| Event | Price |
|---|---|
| Actor Start (`apify-actor-start`) | **$0.005** per start (memory-scaled) |
| result (`apify-default-dataset-item`) | **$3.00 / 1,000** results ($0.003 each) |

**Examples**

- 100 results ≈ $0.005 + $0.30 = **~$0.31**
- 1,000 results ≈ $0.005 + $3.00 = **~$3.01**

Free Apify-plan users are capped at **10 runs** and **200 results** for this Actor.

### Input

| Parameter | Default | Description |
|---|---|---|
| `service` | `hotels` | Vertical to scrape |
| `domain` | `www.tripadvisor.com` | Regional host |
| `destination` | `Bangkok` | City / region |
| `regionId` | `293916` | Geo id without `g` prefix |
| `checkin` / `checkout` | — | Optional stay dates |
| `maxResults` | `50` | Cap (free plan ≤ 200) |
| `currency` / `locale` | `USD` / `en_US` | Market prefs |
| `proxyCountry` | from domain | Apify RESIDENTIAL country |

#### Hotels in Bangkok

```json
{
  "service": "hotels",
  "domain": "www.tripadvisor.com",
  "destination": "Bangkok",
  "regionId": "293916",
  "maxResults": 5,
  "currency": "USD"
}
````

#### Attractions in Singapore

```json
{
  "service": "attractions",
  "domain": "www.tripadvisor.com",
  "destination": "Singapore",
  "regionId": "294265",
  "maxResults": 5
}
```

#### UK domain restaurants

```json
{
  "service": "restaurants",
  "domain": "www.tripadvisor.co.uk",
  "destination": "London",
  "regionId": "186338",
  "currency": "GBP",
  "locale": "en_GB",
  "maxResults": 5
}
```

### Output / sample dataset

```json
{
  "source": "tripadvisor",
  "service": "attractions",
  "listingId": "123456",
  "name": "Example Temple Bangkok",
  "domain": "www.tripadvisor.com",
  "destination": "Bangkok",
  "url": "https://www.tripadvisor.com/Attraction_Review-g293916-d123456-Reviews-Example.html",
  "rating": 4.5,
  "reviewCount": 12840,
  "sponsored": false,
  "scrapedAt": "2026-07-27T03:00:00+00:00"
}
```

### Tips

- Prefer a real TripAdvisor **geo id** (`regionId`) for precise SERPs.
- Start with small `maxResults` (3–10) while validating a market.
- Bare HTTP is blocked (403); acquisition uses **Camoufox** + residential proxy via an authenticated worker.
- Standby Live View exposes `/health`, `/input-example`, and `/openapi.json`; scraping still runs via normal Actor runs.

### FAQ

#### Is it legal to scrape TripAdvisor?

This Actor is **unofficial** and not affiliated with TripAdvisor. Scraping public search results may be subject to TripAdvisor terms, applicable laws, and your compliance policies. You are responsible for how you use the data.

#### Do I need a TripAdvisor login or Content API?

No. Provide destination / geo id and receive structured dataset rows you can schedule and pipe into workflows.

#### Reviews vs listings?

This Actor focuses on **listing / place SERPs** across multiple verticals. Dedicated review-text scrapers are a different product category on the Apify Store.

### Support

Questions or feature requests? Open an issue on the Actor page or contact the developer on Apify.

### Related Actors

All **77** public Actors from \[[lentic\_clockss](https://apify.com/lentic_clockss)]. Click a name to open the Store detail page.

#### Jobs & Freelance

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Freelancer.com Scraper](https://apify.com/lentic_clockss/freelancer-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Himalayas Jobs Scraper](https://apify.com/lentic_clockss/himalayas-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/lentic_clockss/jobicy-remote-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/lentic_clockss/remoteok-all-jobs-scraper)
- [SEEK Jobs Scraper](https://apify.com/lentic_clockss/seek-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)

#### Real Estate

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [99.co Scraper](https://apify.com/lentic_clockss/ninetynine-co-sg-scraper)
- [Realtor.com Agents Scraper](https://apify.com/lentic_clockss/realtor-com-agents-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Bayut Scraper](https://apify.com/lentic_clockss/bayut-uae-scraper)
- [Craigslist Housing Scraper](https://apify.com/lentic_clockss/craigslist-housing-scraper)
- [Daft.ie Scraper](https://apify.com/lentic_clockss/daft-property-scraper)
- [Dot Property Scraper](https://apify.com/lentic_clockss/dot-property-th-scraper)
- [FINN.no Scraper](https://apify.com/lentic_clockss/finn-scraper)
- [Funda Scraper](https://apify.com/lentic_clockss/funda-scraper)
- [Hepsiemlak Scraper](https://apify.com/lentic_clockss/hepsiemlak-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [Immobiliare.it Scraper](https://apify.com/lentic_clockss/immobiliare-property-scraper)
- [ImmoScout24 Scraper](https://apify.com/lentic_clockss/immobilienscout24-scraper)
- [Naver Land Scraper](https://apify.com/lentic_clockss/naver-land-scraper)
- [OpenSooq Scraper](https://apify.com/lentic_clockss/opensooq-real-estate-scraper)
- [Otodom Scraper](https://apify.com/lentic_clockss/otodom-scraper)
- [Property Finder Scraper](https://apify.com/lentic_clockss/property-finder-uae-scraper)
- [PropertyGuru Scraper](https://apify.com/lentic_clockss/propertyguru-sg-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)
- [Realtor.ca Scraper](https://apify.com/lentic_clockss/realtor-ca-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [SeLoger Scraper](https://apify.com/lentic_clockss/seloger-property-scraper)
- [SUUMO Scraper](https://apify.com/lentic_clockss/suumo-property-scraper)
- [Zillow Group Scraper](https://apify.com/lentic_clockss/zillow-group-scraper)

#### E-commerce

- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [E-commerce Scraper](https://apify.com/lentic_clockss/ecommerce-scraper)
- [1688 Global Product Search Scraper](https://apify.com/lentic_clockss/1688-global-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [ASOS Product Scraper](https://apify.com/lentic_clockss/asos-scraper)
- [Cdiscount Product Scraper](https://apify.com/lentic_clockss/cdiscount-scraper)
- [Costco Product Scraper](https://apify.com/lentic_clockss/costco-scraper)
- [Coupang Product Scraper](https://apify.com/lentic_clockss/coupang-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [Lazada Scraper](https://apify.com/lentic_clockss/lazada-ph-search-results-collector)
- [MercadoLibre Scraper](https://apify.com/lentic_clockss/mercadolibre-scraper)
- [Mercari Japan Scraper](https://apify.com/lentic_clockss/mercari-scraper)
- [Rakuten Japan Scraper](https://apify.com/lentic_clockss/rakuten-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)

#### Travel & Stays

- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Despegar Scraper](https://apify.com/lentic_clockss/despegar-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [Traveloka Scraper](https://apify.com/lentic_clockss/traveloka-scraper)
- [Travelstart Flights Scraper](https://apify.com/lentic_clockss/travelstart-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

#### Social & Content

- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [Hacker News Scraper](https://apify.com/lentic_clockss/hacker-news-scraper)

#### Ads Intelligence

- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [Google Ads Transparency VN](https://apify.com/lentic_clockss/google-ads-transparency-center-vn)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

#### Local & Maps

- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

#### General Tools

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ Browse the full profile: [apify.com/lentic\_clockss](https://apify.com/lentic_clockss)

# Actor input Schema

## `service` (type: `string`):

TripAdvisor vertical to scrape: hotels, restaurants, attractions, cruises, vacation rentals, forums.

## `domain` (type: `string`):

Regional TripAdvisor host (e.g. www.tripadvisor.com, www.tripadvisor.co.uk, www.tripadvisor.com.ph, www.tripadvisor.co.jp).

## `destination` (type: `string`):

City or region name (e.g. Bangkok, London). Optional if regionId (geo id) is set.

## `regionId` (type: `string`):

TripAdvisor geo id without g prefix (e.g. Bangkok=293916). Strongly recommended for precise SERPs.

## `checkin` (type: `string`):

Optional YYYY-MM-DD for hotels / vacation rentals when priced stay cards are needed.

## `checkout` (type: `string`):

Optional YYYY-MM-DD for hotels / vacation rentals with checkin.

## `adults` (type: `integer`):

Number of adult travelers

## `children` (type: `integer`):

Number of children

## `rooms` (type: `integer`):

Number of hotel rooms

## `maxResults` (type: `integer`):

Maximum listings to return. Free-plan users capped at 200.

## `currency` (type: `string`):

ISO currency code

## `locale` (type: `string`):

Locale tag (e.g. en\_US, en\_GB)

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

SERP sort hint when supported

## `includeSponsored` (type: `boolean`):

Include sponsored ad cards in results

## `proxyCountry` (type: `string`):

Optional ISO country for Apify RESIDENTIAL proxy (defaults from domain).

## `workerBaseUrl` (type: `string`):

Optional HTTPS override for the Cloud Run worker. Only allowlisted hosts are accepted (configured worker host, localhost, or ALLOWED\_WORKER\_HOSTS). Defaults to Actor env WORKER\_BASE\_URL.

## Actor input object example

```json
{
  "service": "hotels",
  "domain": "www.tripadvisor.com",
  "destination": "Bangkok",
  "regionId": "293916",
  "checkin": "2026-09-12",
  "checkout": "2026-09-14",
  "adults": 2,
  "children": 0,
  "rooms": 1,
  "maxResults": 50,
  "currency": "USD",
  "locale": "en_US",
  "sort": "RECOMMENDED",
  "includeSponsored": false,
  "proxyCountry": "",
  "workerBaseUrl": ""
}
```

# Actor output Schema

## `listings` (type: `string`):

Default dataset containing scraped TripAdvisor listings across all supported verticals.

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

Key-value store record with run counters, selected input, worker endpoint, and completion timestamp.

## `inputEcho` (type: `string`):

Key-value store record containing the sanitized input used by this run.

## `errorSummary` (type: `string`):

Key-value store record containing controlled error details when the Actor cannot complete the requested scrape.

# 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 = {
    "service": "hotels",
    "domain": "www.tripadvisor.com",
    "destination": "Bangkok",
    "regionId": "293916"
};

// Run the Actor and wait for it to finish
const run = await client.actor("lentic_clockss/tripadvisor-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 = {
    "service": "hotels",
    "domain": "www.tripadvisor.com",
    "destination": "Bangkok",
    "regionId": "293916",
}

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

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

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

```

## CLI example

```bash
echo '{
  "service": "hotels",
  "domain": "www.tripadvisor.com",
  "destination": "Bangkok",
  "regionId": "293916"
}' |
apify call lentic_clockss/tripadvisor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lentic_clockss/tripadvisor-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TripAdvisor Scraper — Hotels, Restaurants & More",
        "description": "Scrape TripAdvisor hotels, restaurants, attractions, cruises, vacation rentals, and forums by destination or geo. Extract ratings, review counts, prices, rankings, and detail URLs across regional domains. Export JSON/CSV for travel research and lead gen.",
        "version": "0.2",
        "x-build-id": "eW0LQ43FLlqyjVmzz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lentic_clockss~tripadvisor-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lentic_clockss-tripadvisor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lentic_clockss~tripadvisor-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lentic_clockss-tripadvisor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lentic_clockss~tripadvisor-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lentic_clockss-tripadvisor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "service",
                    "destination"
                ],
                "properties": {
                    "service": {
                        "title": "Service",
                        "enum": [
                            "hotels",
                            "restaurants",
                            "attractions",
                            "cruises",
                            "vacation_rentals",
                            "forums"
                        ],
                        "type": "string",
                        "description": "TripAdvisor vertical to scrape: hotels, restaurants, attractions, cruises, vacation rentals, forums.",
                        "default": "hotels"
                    },
                    "domain": {
                        "title": "TripAdvisor Domain",
                        "type": "string",
                        "description": "Regional TripAdvisor host (e.g. www.tripadvisor.com, www.tripadvisor.co.uk, www.tripadvisor.com.ph, www.tripadvisor.co.jp).",
                        "default": "www.tripadvisor.com"
                    },
                    "destination": {
                        "title": "Destination",
                        "type": "string",
                        "description": "City or region name (e.g. Bangkok, London). Optional if regionId (geo id) is set.",
                        "default": "Bangkok"
                    },
                    "regionId": {
                        "title": "Geo ID",
                        "type": "string",
                        "description": "TripAdvisor geo id without g prefix (e.g. Bangkok=293916). Strongly recommended for precise SERPs.",
                        "default": "293916"
                    },
                    "checkin": {
                        "title": "Check-in Date",
                        "type": "string",
                        "description": "Optional YYYY-MM-DD for hotels / vacation rentals when priced stay cards are needed.",
                        "default": ""
                    },
                    "checkout": {
                        "title": "Check-out Date",
                        "type": "string",
                        "description": "Optional YYYY-MM-DD for hotels / vacation rentals with checkin.",
                        "default": ""
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of adult travelers",
                        "default": 2
                    },
                    "children": {
                        "title": "Children",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of children",
                        "default": 0
                    },
                    "rooms": {
                        "title": "Rooms",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of hotel rooms",
                        "default": 1
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum listings to return. Free-plan users capped at 200.",
                        "default": 50
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "ISO currency code",
                        "default": "USD"
                    },
                    "locale": {
                        "title": "Locale",
                        "type": "string",
                        "description": "Locale tag (e.g. en_US, en_GB)",
                        "default": "en_US"
                    },
                    "sort": {
                        "title": "Sort",
                        "type": "string",
                        "description": "SERP sort hint when supported",
                        "default": "RECOMMENDED"
                    },
                    "includeSponsored": {
                        "title": "Include Sponsored Ads",
                        "type": "boolean",
                        "description": "Include sponsored ad cards in results",
                        "default": false
                    },
                    "proxyCountry": {
                        "title": "Proxy Country",
                        "type": "string",
                        "description": "Optional ISO country for Apify RESIDENTIAL proxy (defaults from domain).",
                        "default": ""
                    },
                    "workerBaseUrl": {
                        "title": "Worker Base URL Override",
                        "type": "string",
                        "description": "Optional HTTPS override for the Cloud Run worker. Only allowlisted hosts are accepted (configured worker host, localhost, or ALLOWED_WORKER_HOSTS). Defaults to Actor env WORKER_BASE_URL.",
                        "default": ""
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
