# Tripadvisor Hotel Reviews Extractor (`kawsar/tripadvisor-hotel-reviews-extractor`) Actor

Tripadvisor Hotel Reviews Extractor that scrapes guest ratings, review text, stay dates, and traveler details from hotel pages so SEO and hospitality teams can monitor reputation without manual copying.

- **URL**: https://apify.com/kawsar/tripadvisor-hotel-reviews-extractor.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

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?

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Hotel Reviews Extractor: scrape hotel guest reviews from Tripadvisor

Tripadvisor Hotel Reviews Extractor pulls guest reviews from Tripadvisor hotel pages into a structured dataset. Paste one or more Hotel\_Review URLs and get ratings, titles, full review text, stay dates, trip types, and reviewer details without paging through Tripadvisor by hand.

This actor is built for SEO teams, hotel marketers, and analysts who need Tripadvisor hotel review data for reputation monitoring, competitor research, or content work.

### What data does this actor extract?

| Field | Type | Description |
| --- | --- | --- |
| `hotelName` | string | Hotel name |
| `hotelUrl` | string | Canonical Tripadvisor hotel URL |
| `hotelId` | string | Tripadvisor hotel ID (`d` number) |
| `geoId` | string | Tripadvisor geo ID (`g` number) |
| `hotelRating` | number | Aggregate hotel bubble rating |
| `hotelReviewCount` | integer | Total reviews listed for the hotel |
| `hotelAddress` | string | Address when available |
| `hotelLatitude` / `hotelLongitude` | number | Coordinates when available |
| `reviewId` | string | Review ID |
| `reviewUrl` | string | Direct review URL |
| `reviewTitle` | string | Review headline |
| `reviewText` | string | Full review body |
| `rating` | integer | Overall score (1–5) |
| `subratings` | object | Category scores such as Value, Rooms, Cleanliness |
| `reviewerName` | string | Reviewer display name |
| `reviewerProfileUrl` | string | Reviewer profile URL |
| `reviewerLocation` | string | Reviewer location when shown |
| `reviewerContributions` | integer | Contribution count |
| `helpfulVotes` | integer | Helpful vote count |
| `publishedDate` | string | Publish date shown on the page |
| `dateOfStay` | string | Date of stay |
| `tripType` | string | Trip type (family, friends, etc.) |
| `isMachineTranslated` | boolean | Whether Tripadvisor marked it as translated |
| `scrapedAt` | string | UTC extraction timestamp |

### How to scrape Tripadvisor hotel reviews

1. Open **Tripadvisor Hotel Reviews Extractor** on Apify.
2. Paste one or more Tripadvisor `Hotel_Review-...` URLs into `startUrls`.
3. Set `maxItems` to cap how many reviews you want.
4. Click **Start** and wait for the run to finish.
5. Download the dataset as JSON, CSV, Excel, or HTML.

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `startUrls` | array of strings | sample hotel URL | Tripadvisor Hotel\_Review page URLs |
| `maxItems` | integer | `10` | Max reviews to extract in this run (1–1000) |
| `requestTimeoutSecs` | integer | `60` | Per-request timeout in seconds |

#### Input example

```json
{
    "startUrls": [
        "https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html"
    ],
    "maxItems": 10,
    "requestTimeoutSecs": 60
}
```

### Output example

```json
[
    {
        "hotelName": "Hotel Weisses Lamm",
        "hotelUrl": "https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html",
        "hotelId": "1168224",
        "geoId": "644055",
        "hotelRating": 4.7,
        "hotelReviewCount": 97,
        "hotelAddress": "Gries 5 6553 See, See, 6553, AT",
        "hotelLatitude": 47.08635,
        "hotelLongitude": 10.472833,
        "reviewId": "1074346292",
        "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g644055-d1168224-r1074346292-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html",
        "reviewTitle": "Truly a beautiful hotel",
        "reviewText": "A very modern, beautiful, sparkling clean hotel, cozy rooms, a very nice rooftop wellness area...",
        "rating": 5,
        "subratings": null,
        "reviewerName": "SandraNicole",
        "reviewerProfileUrl": "https://www.tripadvisor.com/Profile/SandraNik",
        "reviewerLocation": "Regensburg, Germany",
        "reviewerContributions": 109,
        "helpfulVotes": 16,
        "publishedDate": "Aug 2026",
        "dateOfStay": "August 2026",
        "tripType": "Traveled with family",
        "isMachineTranslated": true,
        "scrapedAt": "2026-09-14T08:00:00+00:00",
        "error": null
    }
]
```

### Use cases

- **Hotel SEO research**: pull real guest language from Tripadvisor reviews for content briefs and FAQ pages
- **Reputation monitoring**: schedule runs and watch rating trends for your properties
- **Competitor analysis**: compare review volume, scores, and common complaints across hotels
- **Sentiment pipelines**: feed clean review text into NLP or BI tools
- **Guest experience audits**: spot recurring themes around cleanliness, service, or location

### FAQ

**Do I need a Tripadvisor account?**
No. The actor works with public hotel review pages.

**Can I scrape multiple hotels in one run?**
Yes. Add several Hotel\_Review URLs to `startUrls`. `maxItems` applies to the whole run.

**How many reviews can I get?**
Up to `maxItems` (max 1000 per run). Tripadvisor paginates reviews; the actor follows those pages until the limit is reached.

**Does it work for restaurants or attractions?**
This version targets Tripadvisor hotel review pages (`Hotel_Review-...` URLs).

**What formats can I export?**
JSON, CSV, Excel, HTML, and the dataset API.

### Marketplace description

Tripadvisor Hotel Reviews Extractor scrapes guest reviews from Tripadvisor hotel pages. Give it Hotel\_Review URLs and get rating, title, full text, stay date, trip type, reviewer info, and category scores when they appear on the page.

Use it to compare competitor hotels, feed sentiment tools, or pull review copy for SEO research without paging through Tripadvisor by hand. Export JSON, CSV, or Excel from the dataset.

Key features:

- Bulk extract Tripadvisor hotel reviews from hotel URLs
- Grab ratings, review text, published date, and date of stay
- Include reviewer name, location, contributions, and helpful votes
- Paginate through review pages up to your maxItems cap
- Run on a schedule for reputation tracking

Built for SEO teams, hospitality marketers, and researchers who want Tripadvisor hotel review data in one place.

***

Independent tool, not affiliated with Tripadvisor. Uses publicly available hotel review pages. You are responsible for compliant use under Tripadvisor's terms and applicable law.

# Actor input Schema

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

One or more Tripadvisor Hotel\_Review page URLs. Example: https://www.tripadvisor.com/Hotel\_Review-g644055-d1168224-Reviews-Hotel\_Weisses\_Lamm-See\_Tirol\_Austrian\_Alps.html

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

Maximum number of reviews to extract across all hotel URLs in this run.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds for each page fetch.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html",
    "https://www.tripadvisor.com/Hotel_Review-g60763-d208453-Reviews-Hilton_New_York_Times_Square-New_York_City_New_York.html"
  ],
  "maxItems": 10,
  "requestTimeoutSecs": 60
}
```

# Actor output Schema

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

Extracted Tripadvisor hotel reviews with ratings, review text, stay dates, trip type, and reviewer details.

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html"
    ],
    "maxItems": 10
};

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html"],
    "maxItems": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.tripadvisor.com/Hotel_Review-g644055-d1168224-Reviews-Hotel_Weisses_Lamm-See_Tirol_Austrian_Alps.html"
  ],
  "maxItems": 10
}' |
apify call kawsar/tripadvisor-hotel-reviews-extractor --silent --output-dataset

```

## MCP server setup

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

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/Z2i7Onnl1UcKtSULX/builds/KadTDkZujTKF7dTTx/openapi.json
