# Tripadvisor Scraper: Hotels, Restaurants & Prices (`epicscrapers/tripadvisor-scraper`) Actor

Scrape Tripadvisor hotels, restaurants, attractions and tours from cities, URLs or names: ratings, rankings, phone, email, website, awards, hours, cuisines, amenities and every booking site's hotel price. Filter by stars, cuisine, price, rating and MICHELIN. From $1.40 per 1,000.

- **URL**: https://apify.com/epicscrapers/tripadvisor-scraper.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** Travel, Lead generation, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 place saveds

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

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

## What's an Apify Actor?

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

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

## How to integrate an Actor?

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

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

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

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

# README

### Tripadvisor Scraper: hotels, restaurants, attractions and hotel prices

Tripadvisor Scraper exports Tripadvisor places to a spreadsheet or your own system. Type a city such as `Chicago` or `Lake Como`, paste Tripadvisor links, or enter place names, and get each hotel, restaurant, attraction or tour with its rating, rating breakdown, ranking, address, phone, email, website, awards, opening hours, cuisines, amenities and more. Add travel dates and every hotel comes with the price from each booking site.

- **Every booking site's hotel price, included.** Set a check-in date and each hotel lists the offers of Booking.com, Expedia, Hotels.com, Agoda, Trip.com, the hotel's own site and others: price per night with and without taxes, total for the stay, cancellation terms and booking link. No add-on fee.
- **Filters Tripadvisor has, applied before you pay.** Hotel stars, restaurant cuisine, price range, dietary options and meals, MICHELIN Guide, Travelers' Choice, minimum rating and attraction category. Places that don't match are never charged.
- **The whole city, not the first 30.** Ask for 10 or 3,000 places per type; pages are followed to the end of Tripadvisor's list.
- **Built on Tripadvisor's app API.** No browser and no web pages to break, so runs are fast (300 places with hotel prices in about 90 seconds) and stable.
- **From $1.40 per 1,000 places, platform usage included** ($3 on the free plan). No subscription, no photo or price add-ons, no Tripadvisor account, API key or proxy setup. Export to JSON, CSV, Excel or Google Sheets.

### What can you do with Tripadvisor data?

| Goal                             | How                                                                                                                                   |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Build hospitality lead lists     | Scrape every restaurant or hotel of a city with `phone`, `email`, `website` and `isClaimedByOwner`; use the **Contacts** view.        |
| Compare hotel prices             | Set dates and compare `offers` per hotel and booking site, or track `cheapestOffer` over time with a scheduled task.                  |
| Market research in a destination | Rank places by `rating`, `numberOfReviews` and `rankingPosition`; slice by `cuisines`, `priceLevel`, `hotelClass` or `subcategories`. |
| Find the best places             | Filter by **Travelers' Choice**, **MICHELIN** and **Minimum rating** to get only the top of a city.                                   |
| Travel apps and content          | Use `description`, `image`, `hours`, `suggestedDuration`, `awards` and coordinates to fill guides, maps and itineraries.              |
| Analyze guest satisfaction       | Compare `subratings` (cleanliness, location, rooms, service, sleep quality, value; food, atmosphere for restaurants) across places.   |

### How it compares

| What you need                    | Tripadvisor Scraper                                                    | Typical Tripadvisor scrapers              |
| -------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------- |
| Input                            | City names, URLs or place names                                        | URLs or one search term                   |
| Hotel prices                     | Every booking site, with and without taxes, total for the stay, links  | One price text per site, or a paid add-on |
| Filters                          | Stars, cuisine, price, diet, meal, MICHELIN, Travelers' Choice, rating | Usually none                              |
| Places per city                  | Up to the end of Tripadvisor's list                                    | Often stops after 30–40                   |
| Rating breakdown and sub-ratings | Yes                                                                    | Rating breakdown only                     |
| Price per 1,000 places           | $3 (free plan) to $1.40, platform usage and prices included            | Up to $5, plus add-ons                    |

### Quick start

1. Click **Try for free** and sign in to Apify. The free plan's monthly credit covers about 1,650 places.
2. Add places in one of three ways:
   - **Cities or regions:** `Chicago`, `Rome`, `Lake Como`. Choose the **Place types** (hotels, restaurants, attractions, tours) and **Max places per city and type**.
   - **Tripadvisor URLs:** a place page, or a list such as `https://www.tripadvisor.com/Restaurants-g187147-Paris_Ile_de_France.html`, from any Tripadvisor country site.
   - **Place names:** `Hilton Chicago`, `Louvre Museum`.
3. Optional: set filters, or a check-in date for hotel prices.
4. Click **Start** and download the results as JSON, CSV, Excel or HTML, or open them in Google Sheets.

### What data can you extract?

| All places                                                                                        | Hotels                                         | Restaurants                           | Attractions and tours        |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------- | ---------------------------- |
| Name, type, Tripadvisor link, image, photo count                                                  | Star rating (`hotelClass`)                     | Cuisines                              | Categories (`subcategories`) |
| Rating, review count, rating breakdown (`ratingHistogram`)                                        | Amenities                                      | Price level (`$`, `$$ - $$$`, `$$$$`) | Suggested duration           |
| Sub-ratings                                                                                       | Brand, property type                           | Meals, dietary options, features      | Opening hours, open now      |
| Ranking (`#23 of 2,358 Restaurants in Genoa`), position, total                                    | Languages spoken                               | Styles (romantic, local cuisine…)     |                              |
| Awards: Travelers' Choice, Best of the Best, MICHELIN                                             | Check-in, check-out, nights                    | Menu link                             |                              |
| Description                                                                                       | Offers from every booking site, cheapest offer | Opening hours, open now               |                              |
| Phone, email, website, claimed by owner                                                           |                                                |                                       |                              |
| Address (full and by part), coordinates, neighborhood, region path, nearest airports and stations |                                                |                                       |                              |

### Input reference

| Field                                               | What it does                                                                                                     |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Cities or regions**                               | Names of cities or regions. The best Tripadvisor match is used; the log shows which.                             |
| **Tripadvisor URLs**                                | Place pages, list pages (`Hotels-g…`, `Restaurants-g…`, `Attractions-g…`, `Attraction_Products-g…`), city pages. |
| **Place names**                                     | Single places by name. Add the city for the right match.                                                         |
| **Place types (for cities)**                        | Hotels, restaurants, attractions, tours.                                                                         |
| **Max places per city and type**                    | How many places of each type, in Tripadvisor's order.                                                            |
| **Minimum rating**                                  | 3+, 4+ or 5 bubbles.                                                                                             |
| **Travelers' Choice winners only**                  | Places with a Travelers' Choice award.                                                                           |
| **Hotel star rating**                               | 1 to 5 stars.                                                                                                    |
| **Restaurant cuisines**                             | Cuisine names as on Tripadvisor: `Italian`, `Japanese`, `Seafood`, `Pizza`…                                      |
| **Restaurant price range**                          | Cheap eats, mid-range, fine dining.                                                                              |
| **Dietary options**, **Meals**                      | Vegetarian, vegan, gluten free; breakfast, brunch, lunch, dinner.                                                |
| **MICHELIN Guide restaurants only**                 | Starred, Bib Gourmand and selected restaurants.                                                                  |
| **Attraction categories**                           | Museums, Sights & Landmarks, Nature & Parks, Nightlife…                                                          |
| **Check-in date**, **Check-out date**               | Dates (`2026-12-20`) or times from today (`30 days`). Empty check-out = one night. Up to 30 nights.              |
| **Adults per room**, **Rooms**, **Children's ages** | The party the hotel prices are for.                                                                              |
| **Currency**                                        | Currency of hotel prices. USD shows the US market, others the international one.                                 |
| **Language**                                        | Language of names, descriptions and texts.                                                                       |

Filters apply to cities and list URLs. Single place URLs and names are always scraped.

### Ready-to-run examples

#### Restaurants of a city with contacts

```json
{
    "cities": ["Chicago"],
    "placeTypes": ["restaurants"],
    "maxPlacesPerCity": 500
}
```

#### 4 and 5-star hotels with prices for a weekend

```json
{
    "cities": ["Rome"],
    "placeTypes": ["hotels"],
    "maxPlacesPerCity": 100,
    "hotelClasses": ["5", "4"],
    "checkInDate": "2026-12-18",
    "checkOutDate": "2026-12-20",
    "currency": "EUR"
}
```

#### Top-rated vegetarian-friendly Japanese restaurants

```json
{
    "cities": ["Paris"],
    "placeTypes": ["restaurants"],
    "cuisines": ["Japanese"],
    "diets": ["vegetarian"],
    "minRating": "4",
    "maxPlacesPerCity": 100
}
```

#### MICHELIN restaurants of several cities

```json
{
    "cities": ["Lyon", "Milan", "Barcelona"],
    "placeTypes": ["restaurants"],
    "michelinOnly": true,
    "maxPlacesPerCity": 300
}
```

#### Museums and landmarks for a travel guide

```json
{
    "cities": ["Vienna"],
    "placeTypes": ["attractions"],
    "attractionCategories": ["Museums", "Sights & Landmarks"],
    "maxPlacesPerCity": 50,
    "language": "de"
}
```

### Output

One row per place. A hotel with prices (shortened):

```json
{
    "id": "273262",
    "type": "HOTEL",
    "category": "hotel",
    "name": "Crowne Plaza Chicago West Loop by IHG",
    "webUrl": "https://www.tripadvisor.com/Hotel_Review-g35805-d273262-Reviews-Crowne_Plaza_Chicago_West_Loop_by_IHG-Chicago_Illinois.html",
    "rating": 4,
    "numberOfReviews": 1441,
    "ratingHistogram": {
        "count1": 70,
        "count2": 73,
        "count3": 249,
        "count4": 492,
        "count5": 557
    },
    "subratings": {
        "cleanliness": 4.3,
        "location": 4.1,
        "rooms": 4,
        "service": 4.1,
        "sleepQuality": 4.1,
        "value": 3.9
    },
    "rankingPosition": 111,
    "rankingDenominator": 211,
    "rankingString": "#111 of 211 hotels in Chicago",
    "awards": [
        {
            "name": "Travelers' Choice Winner",
            "year": 2026,
            "category": "TRAVELERS_CHOICE"
        }
    ],
    "description": "Anchored in Chicago’s most vibrant neighborhood, Crowne Plaza Chicago West Loop is on the…",
    "image": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/…?w=1200&h=-1&s=1",
    "photoCount": 448,
    "phone": "+1 312-829-5000",
    "email": "info@cpwestloop.com",
    "website": "https://www.tripadvisor.com/Commerce?p=TABAIndependentHotels&…",
    "address": "25 South Halsted Street, Chicago, IL 60661",
    "addressObj": {
        "street1": "25 South Halsted Street",
        "street2": "",
        "city": "Chicago",
        "state": "Illinois",
        "country": "United States",
        "postalcode": "60661"
    },
    "locationString": "Chicago, Illinois, United States, North America",
    "latitude": 41.88087,
    "longitude": -87.64681,
    "neighborhoodLocations": [
        {
            "id": "15565856",
            "name": "West Side"
        },
        {
            "id": "13192232",
            "name": "Near West Side"
        },
        {
            "id": "7778534",
            "name": "West Loop"
        },
        {
            "id": "15565734",
            "name": "Greektown"
        }
    ],
    "ancestorLocations": [
        {
            "id": "35805",
            "name": "Chicago",
            "subcategory": "city"
        },
        {
            "id": "28934",
            "name": "Illinois",
            "subcategory": "state"
        },
        {
            "id": "191",
            "name": "United States",
            "subcategory": "country"
        }
    ],
    "gettingThere": ["Midway Airport • 8.50 mi", "O'Hare Intl Airport • 15 mi"],
    "isClosed": false,
    "isClaimedByOwner": null,
    "hotelClass": 3,
    "amenities": ["Internet", "Kids Activities", "Suites", "Room Service", "Free Internet", "Wheelchair access"],
    "brand": "Crowne Plaza",
    "propertyType": "hotel",
    "languagesSpoken": ["English", "Spanish"],
    "checkInDate": "2026-11-06",
    "checkOutDate": "2026-11-08",
    "nights": 2,
    "offers": [
        {
            "provider": "Vio.com",
            "price": 203.35,
            "priceBeforeTaxes": 172.27,
            "taxesAndFees": 31.08,
            "totalPrice": 406.7,
            "currency": "USD",
            "priceText": "$172",
            "priceBeforeSale": null,
            "details": [],
            "url": "https://www.tripadvisor.com/Commerce?p=Vio&…"
        },
        {
            "provider": "Prestigia.com",
            "price": 247.95,
            "priceBeforeTaxes": 201.69,
            "taxesAndFees": 46.26,
            "totalPrice": 495.9,
            "currency": "USD",
            "priceText": "$202",
            "priceBeforeSale": null,
            "details": ["Fully Refundable Options until 11/05/26"],
            "url": "https://www.tripadvisor.com/Commerce?p=Prestigia&…"
        }
    ],
    "cheapestOffer": {
        "provider": "Vio.com",
        "price": 203.35,
        "…": "…"
    },
    "input": "Chicago",
    "scrapedAt": "2026-10-07T16:29:05.263Z"
}
```

Restaurants add `cuisines`, `priceLevel`, `mealTypes`, `dietaryRestrictions`, `features`, `styles`, `menuWebUrl`, `openNowText` and `hours` (`[{ "day": "Monday", "open": "12:30", "close": "14:30" }]`). Attractions and tours add `subcategories`, `suggestedDuration`, `openNowText` and `hours`.

#### Notes on fields

- **Offer prices** are per room and night. `price` always includes taxes and fees (`priceBeforeTaxes` + `taxesAndFees`), whatever the market; `priceText` is the price as Tripadvisor shows it, which leaves taxes out in the US market. `totalPrice` = `price` × nights × rooms. Offers are sorted cheapest first.
- **`rankingPosition` and `rankingDenominator`** match the ranking Tripadvisor shows (`rankingString`).
- **`website`** of some hotels is Tripadvisor's tracked link to the hotel's site, as Tripadvisor shows it.
- Field names match the most used Tripadvisor scraper on Apify (`webUrl`, `rankingString`, `addressObj`, `ratingHistogram`, `hotelClass`, `offers`…), so existing integrations keep working.

### FAQ

#### Which places are supported?

Hotels and other lodging, restaurants (and cafés, bars, bakeries), attractions, and tours and activities, in every country Tripadvisor covers. Vacation rentals are no longer on Tripadvisor.

#### Why is a filter value "not here"?

Filters use each city's own filter panel. If a city has no 1-star hotels or no Ethiopian restaurants, the log says so and that list is skipped.

#### How fast is it?

About 100 restaurants or attractions in 10 seconds, and 100 hotels with prices in about 60 seconds (each hotel's prices are collected live from the booking sites).

#### Why are some hotels without offers?

The hotel has no availability for your dates on the sites Tripadvisor compares, or its sites didn't answer in time.

#### Why did my run stop before reaching my limit?

The run reached your maximum cost per run. Raise it in the run options.

#### Do I need proxies, a Tripadvisor account or an API key?

No. Proxies are included in the price.

#### Can I use it through the API or from AI agents?

Yes. Start runs with the Apify API, the Apify client for JavaScript or Python, or from AI agents through the Apify MCP server. Schedule runs and send results to Google Sheets, Slack, Zapier, Make or webhooks.

#### Do you also scrape reviews?

Yes, with [Tripadvisor Reviews Scraper](https://apify.com/epicscrapers/tripadvisor-reviews-scraper): every review of any place, with original text, filters and only-new-reviews mode, for $0.50 per 1,000.

#### Is it legal to scrape Tripadvisor?

The scraper collects publicly available data about businesses. Contact details of businesses can still be personal data in some countries (for example a sole trader's email in the EU), so check that you have a lawful basis to process it, and respect Tripadvisor's terms for how you use the data. If unsure, consult a lawyer.

### Cost

You pay per place saved; the price drops with your Apify plan. Platform usage, proxies and hotel prices are included; city lists, searches and places filtered out by Tripadvisor are free.

| Apify plan          | Per 1,000 places | 100 restaurants | 1,000 hotels with prices |
| ------------------- | ---------------- | --------------- | ------------------------ |
| Free                | $3.00            | $0.30           | $3.00                    |
| Starter             | $2.00            | $0.20           | $2.00                    |
| Scale               | $1.70            | $0.17           | $1.70                    |
| Business and higher | $1.40            | $0.14           | $1.40                    |

Each run also has Apify's standard start fee of $0.00005. Set a maximum cost per run in the run options and the scraper stops exactly there.

### Support

Found a bug or missing a field? Open an issue on the **Issues** tab and we'll look at it quickly.

# Actor input Schema

## `cities` (type: `array`):

Scrape the places of a city or region, e.g. "Chicago", "Rome" or "Lake Como". Choose the place types and how many places below. The log shows which Tripadvisor location each name matched.

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

One per line, from any Tripadvisor country site. A hotel, restaurant, attraction or tour page gives that place. A list such as https://www.tripadvisor.com/Hotels-g187147-Paris_Ile_de_France-Hotels.html gives that list; a city page such as Tourism-g187147 gives the place types chosen below. A location ID such as 1890933 works too.

## `searchQueries` (type: `array`):

Find single places by name, e.g. "Hilton Chicago" or "Louvre Museum". Add the city to pick the right one. The best match is used.

## `placeTypes` (type: `array`):

Which places to take from cities and city URLs. A list URL such as Hotels-g… always uses its own type.

## `maxPlacesPerCity` (type: `integer`):

For cities and list URLs: how many places of each type, in Tripadvisor's order. Tripadvisor lists up to a few thousand places per city.

## `minRating` (type: `string`):

Only places rated at least this many bubbles.

## `travelersChoiceOnly` (type: `boolean`):

Only places with a Travelers' Choice award (the top 10% on Tripadvisor).

## `hotelClasses` (type: `array`):

Only hotels with these star ratings. Leave empty for all.

## `cuisines` (type: `array`):

Only restaurants with one of these cuisines, as named on Tripadvisor, e.g. Italian, Japanese, Seafood, Pizza, Vegan. Leave empty for all.

## `restaurantPrices` (type: `array`):

Only restaurants in these price ranges. Leave empty for all.

## `diets` (type: `array`):

Only restaurants with these options.

## `meals` (type: `array`):

Only restaurants serving one of these meals.

## `michelinOnly` (type: `boolean`):

Only restaurants in the MICHELIN Guide (stars, Bib Gourmand or selected).

## `attractionCategories` (type: `array`):

Only attractions in these categories.

## `checkInDate` (type: `string`):

A date (2026-12-20) or a time from today (30 days, 2 weeks). Leave empty to skip prices.

## `checkOutDate` (type: `string`):

A date or a time from today, after check-in (up to 30 nights). Empty = one night.

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

Adults in each room.

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

Prices are per room and night; totalPrice covers all rooms and nights.

## `childrenAges` (type: `array`):

One age (0-17) per child, e.g. 4 and 9.

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

Currency of hotel prices. USD shows the US market (Expedia, Priceline, Hotels.com…); other currencies show the international one (Booking.com, Agoda, Trip.com…).

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

Language of names, descriptions, ranking, opening and tag texts (cuisines, amenities…). Restaurant features, meals and dietary options stay in English.

## Actor input object example

```json
{
  "cities": [
    "Chicago"
  ],
  "placeTypes": [
    "hotels",
    "restaurants",
    "attractions"
  ],
  "maxPlacesPerCity": 10,
  "minRating": "",
  "travelersChoiceOnly": false,
  "hotelClasses": [],
  "cuisines": [],
  "restaurantPrices": [],
  "diets": [],
  "meals": [],
  "michelinOnly": false,
  "attractionCategories": [],
  "adults": 2,
  "rooms": 1,
  "childrenAges": [],
  "currency": "USD",
  "language": "en"
}
```

# Actor output Schema

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "cities": [
        "Chicago"
    ],
    "maxPlacesPerCity": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/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 = {
    "cities": ["Chicago"],
    "maxPlacesPerCity": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/tripadvisor-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 '{
  "cities": [
    "Chicago"
  ],
  "maxPlacesPerCity": 10
}' |
apify call epicscrapers/tripadvisor-scraper --silent --output-dataset

```

## MCP server setup

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