# Hotel Review Aggregator (`antsarlabs/hotel-review-aggregator`) Actor

Aggregates hotel reviews from multiple platforms (currently Google & TripAdvisor, more coming) into one normalized API. Supports both REST API and MCP access

- **URL**: https://apify.com/antsarlabs/hotel-review-aggregator.md
- **Developed by:** [Dagim Alemu](https://apify.com/antsarlabs) (community)
- **Categories:** MCP servers, Travel, Integrations
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Hotel Reviews Aggregator API & MCP Server

Hotel Reviews Aggregator & MCP Server extracts hotel reviews from Google Travel and TripAdvisor.

It provides a REST API endpoint for applications and a Model Context Protocol (MCP) endpoint for AI assistants such as Claude Desktop, Cursor, and custom AI agents.

***

### Use Cases

- Competitor Analysis: Benchmark guest ratings, review volume, and customer feedback against competing hotels.
- Data Analytics and Research: Collect structured review datasets for market research, sentiment analysis, and reporting.
- AI Agent Integration: Supply real-time hotel review data directly to AI agents, chatbots, and research workflows.
- ERP and CRM Integration: Connect review data directly into internal ERP systems, CRM platforms, and hospitality dashboards.
- Brand Protection: Track reviews across platforms to identify emerging issues and customer satisfaction trends.

***

### Features

- Dual Platform Coverage: Extract reviews from both Google Travel and TripAdvisor.
- Built-in MCP Server: Native support for Model Context Protocol using the tool get\_hotel\_reviews.
- Standby Mode: Fast responses without startup delays.
- Proxy Rotation: Automatically rotates IP addresses to avoid rate limits and blocks.
- Pagination: Easily fetch large numbers of reviews using next\_page\_token.
- Pay-Per-Event Pricing: Pay only for valid review requests.

***

### Extracted Data

Each review returned includes the following fields:

- Rating: Star rating given by the reviewer.
- Review Text: Text content of the review.
- Author Information: Reviewer name and profile details.
- Publish Date: Review date in ISO format.
- Platform: Source platform (google or tripadvisor).

***

### How to Use

#### 1. REST API (POST /api/reviews)

Send an HTTP POST request to your Standby Actor endpoint:

```bash
curl -X POST "https://<YOUR-STANDBY-URL>/api/reviews?token=<YOUR-APIFY-TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "google",
    "url": "https://www.google.com/travel/hotels/entity/..."
  }'
```

##### Request Parameters

| Parameter | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `source` | `string` | Yes | Target platform (`google` or `tripadvisor`). |
| `url` | `string` | Yes | Full hotel page URL on Google Travel or TripAdvisor. |
| `next_page` | `string` | No | Pagination token returned from a previous request. |

##### Sample Response

```json
{
  "platform": "google",
  "source_url": "https://www.google.com/travel/hotels/entity/...",
  "next_page_token": "CAESB0dPT0dMR...",
  "reviews": [
    {
      "author": "John Doe",
      "rating": 5,
      "text": "Great service and beautiful rooms!",
      "date": "2026-07-20"
    }
  ]
}
```

***

#### 2. Model Context Protocol (MCP) Server (POST /mcp)

Connect this Actor as an MCP Server tool to AI applications.

##### Tool Definition

- Tool Name: `get_hotel_reviews`
- Description: Fetches a page of hotel reviews from Google or TripAdvisor for a given URL.

##### MCP Client Configuration (`claude_desktop_config.json` / Cursor)

```json
{
  "mcpServers": {
    "hotel-reviews": {
      "url": "https://<YOUR-STANDBY-URL>/mcp?token=<YOUR-APIFY-TOKEN>"
    }
  }
}
```

***

### Pricing

You pay only for successful requests:

- REST API Review Fetch (`POST /api/reviews`): $0.003 per request.
- MCP Tool Call (`get_hotel_reviews`): $0.003 per tool call.

Invalid requests with missing required parameters are not charged.

***

### Platform Features

- Automatic Proxy Rotation: Handles IP rotation automatically.
- Standby Server: Stays online to respond to requests continuously.
- Monitoring and Logs: View request metrics and error logs in the Apify Console.

***

### Support

If you run into issues or have questions, submit an issue in the Issues tab on Apify Store.

# Actor input Schema

## Actor input object example

```json
{}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("antsarlabs/hotel-review-aggregator").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("antsarlabs/hotel-review-aggregator").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 '{}' |
apify call antsarlabs/hotel-review-aggregator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,antsarlabs/hotel-review-aggregator"
        }
    }
}
```

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/PxDcb4zgWD5KTIuN6/builds/sh9s8ct0b2L6f8Byb/openapi.json
