# Agoda Reviews Scraper (`fetch_cat/agoda-reviews-scraper`) Actor

Scrape public Agoda hotel reviews, ratings, traveler metadata, and property context for travel SEO and hotel reputation workflows.

- **URL**: https://apify.com/fetch\_cat/agoda-reviews-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Travel, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 90.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.05 / 1,000 review extracteds

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/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.

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

## Agoda Reviews Scraper

Export public Agoda hotel reviews, ratings, traveler metadata, and property context.

Use this actor when you need a repeatable CSV, JSON, Excel, or API export of Agoda guest reviews for hotel reputation monitoring, travel SEO, hospitality research, competitor analysis, or AI-agent workflows.

### At a glance

- **Input:** Agoda hotel URLs or property IDs.
- **Output:** Hotel name, city, country, overall rating, review text, review rating, stay date, traveler type, room type, reviewer metadata, helpful votes, and scrape time.
- **Sorting:** Choose Agoda review sorting where supported.
- **Best for:** Hotel review exports, reputation monitoring, travel content analysis, and Agoda API alternative workflows.
- **Proxy optional:** Start without proxy for low-cost tests; enable Apify Proxy if Agoda throttles the run.

### Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

- **[Export Agoda Business Traveler Reviews](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-business-traveler-review-export)**
- **[Export Agoda Family Traveler Reviews](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-family-travel-review-export)**
- **[Agoda Seasonal Review Monitor](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-seasonal-review-monitor)**
- **[Agoda Competitor Property Review Export](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-competitor-property-review-export)**
- **[Agoda Hotel Amenity Feedback Dataset](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-hotel-amenity-feedback-dataset)**
- **[Monitor Recent Negative Agoda Reviews](https://apify.com/fetch_cat/agoda-reviews-scraper/examples/agoda-recent-negative-review-monitor)**
- **[View all ready-to-run examples](https://apify.com/fetch_cat/agoda-reviews-scraper/examples)** (20 examples)

### What can it do?

- **Export Agoda hotel reviews:** Save public review titles, text, ratings, dates, stay dates, and traveler context.
- **Collect property context:** Include hotel name, city, country, overall rating, rating text, and total review count when available.
- **Analyze review segments:** Use traveler type, room type, reviewer country, length of stay, and helpful votes.
- **Run multiple hotels:** Process several hotel URLs or property IDs in one run.
- **Use as an Agoda reviews API alternative:** Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.

### Common workflows

- **Reputation monitoring:** Track new public reviews for one or more hotels.
- **Competitor research:** Compare guest sentiment and rating patterns across nearby properties.
- **Travel SEO:** Build review datasets for destination pages, hotel summaries, or content research.
- **Hospitality analytics:** Export traveler type, stay date, room type, and reviewer country fields.
- **AI-agent summaries:** Let an agent collect review rows before summarizing guest themes.

### Input example

```json
{
  "hotelUrls": [
    { "url": "https://www.agoda.com/example-hotel/hotel/example-city.html" }
  ],
  "propertyIds": [],
  "maxReviewsPerHotel": 100,
  "sort": "recent",
  "language": "en-us",
  "currency": "USD",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Output example

```json
{
  "hotelUrl": "https://www.agoda.com/example-hotel/hotel/example-city.html",
  "propertyId": "123456",
  "hotelName": "Example Hotel",
  "city": "Bangkok",
  "country": "Thailand",
  "overallRating": 8.7,
  "overallRatingText": "Excellent",
  "totalReviews": 2450,
  "reviewId": "987654321",
  "reviewTitle": "Great location",
  "reviewText": "Clean room and friendly staff.",
  "rating": 9.2,
  "ratingText": "Exceptional",
  "reviewDate": "2026-06-20",
  "stayDate": "2026-06",
  "travelerType": "Couple",
  "roomType": "Deluxe Room",
  "reviewerName": "Anna",
  "reviewerCountry": "Portugal",
  "lengthOfStay": "2 nights",
  "helpfulVotes": 3,
  "provider": "Agoda",
  "scrapedAt": "2026-07-03T10:00:00.000Z"
}
```

### Input configuration

| Setting | JSON key | What to enter |
| --- | --- | --- |
| Hotel URLs | `hotelUrls` | Public Agoda hotel page URLs. |
| Property IDs | `propertyIds` | Agoda property IDs when you already know them. |
| Maximum reviews per hotel | `maxReviewsPerHotel` | Review rows to save for each hotel. |
| Sort | `sort` | Review order to request when supported. |
| Language | `language` | Locale such as `en-us`. |
| Currency | `currency` | Currency code such as `USD`, `EUR`, or `GBP`. |
| Proxy configuration | `proxyConfiguration` | Optional proxy settings. |

### Output fields

| Field group | Fields |
| --- | --- |
| Property | `hotelUrl`, `propertyId`, `hotelName`, `city`, `country` |
| Property ratings | `overallRating`, `overallRatingText`, `totalReviews` |
| Review identity | `reviewId`, `reviewTitle`, `reviewDate`, `stayDate` |
| Review content | `reviewText`, `rating`, `ratingText` |
| Traveler context | `travelerType`, `roomType`, `reviewerName`, `reviewerCountry`, `lengthOfStay` |
| Extra metadata | `helpfulVotes`, `provider`, `scrapedAt` |

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee charged when a run starts. Covers fixed startup cost. | $0.005 |

| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `review` | Charged per Agoda review extracted. | $0.09815 / 1,000 | $0.08535 / 1,000 | $0.06657 / 1,000 | $0.05121 / 1,000 | $0.03414 / 1,000 | $0.0239 / 1,000 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### Tips for best results

- Prefer full Agoda hotel URLs when available.
- Use property IDs for stable repeated runs.
- Keep `maxReviewsPerHotel` moderate when testing a new hotel or market.
- Use the same language and currency for comparable scheduled runs.
- Enable proxy if Agoda throttles or blocks the target page.

### Limits and caveats

- The actor exports public Agoda review data. It does not access private booking or account data.
- Some hotels may hide or delay review fields depending on region, language, or availability.
- Agoda can change review sorting, pagination, and page structure.
- Reviewer names and countries can be missing or partially anonymized.

### API usage

```bash
curl "https://api.apify.com/v2/acts/fetch_cat~agoda-reviews-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hotelUrls": [{ "url": "https://www.agoda.com/example-hotel/hotel/example-city.html" }],
    "maxReviewsPerHotel": 100,
    "language": "en-us"
  }'
```

### MCP and AI agents

You can run this actor through the official Apify MCP server at `https://mcp.apify.com`.

For a focused single-actor tool, use:

```text
https://mcp.apify.com?tools=fetch_cat/agoda-reviews-scraper
```

Agent-friendly inputs are `hotelUrls`, `propertyIds`, `maxReviewsPerHotel`, `sort`, `language`, `currency`, and `proxyConfiguration`.

### FAQ

**Does it require an Agoda account?**\
No. It extracts public review data.

**Can I export to CSV or Excel?**\
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, RSS, or through the Dataset API.

**Can I scrape several hotels in one run?**\
Yes. Add multiple hotel URLs or property IDs.

**Why are some fields empty?**\
Agoda does not expose every review field for every hotel, locale, or review.

### Related actors

- [Trip.com Hotels Scraper](https://apify.com/fetch_cat/trip-com-hotels-scraper)
- [Airbnb Reviews Scraper](https://apify.com/fetch_cat/airbnb-reviews-scraper)
- [ProductReview.com.au Scraper](https://apify.com/fetch_cat/productreview-com-au-scraper)
- [Google News Scraper](https://apify.com/fetch_cat/google-news-scraper)
- [Website Content Crawler Lite](https://apify.com/fetch_cat/website-content-crawler-lite)

### Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

### Changelog

#### 0.2

- Clarified input settings, output fields, pricing, API usage, and Agoda public-data limits.

#### 0.1

- Initial public release.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses review lookup inputs and public review results to produce the output dataset and sends requests to public Agoda Reviews pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

## `hotelUrls` (type: `array`):

Public Agoda hotel pages to scrape reviews from. Use full hotel URLs such as https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html.

## `propertyIds` (type: `array`):

Optional Agoda numeric property IDs. Use this when you already know the hotelId/propertyId and do not want to provide a hotel URL.

## `maxReviewsPerHotel` (type: `integer`):

Maximum number of reviews to save for each hotel. Keep this low for first tests, then increase for production monitoring.

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

How Agoda should sort the review comments before extraction.

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

Locale passed to Agoda, for example en-us, de-de, ja-jp. Review text may include Agoda translations when available.

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

Currency code sent to Agoda while loading hotel pages, for example USD, EUR, SGD, JPY.

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

Optional proxy settings. Datacenter/automatic proxy is usually enough for small tests; use residential only if Agoda blocks your run.

## `resumeFromCheckpoint` (type: `boolean`):

When a previous run stopped near its timeout or had source-level failures, continue only the pending sources recorded in its RUN\_CHECKPOINT key-value record.

## Actor input object example

```json
{
  "hotelUrls": [
    {
      "url": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html"
    }
  ],
  "propertyIds": [],
  "maxReviewsPerHotel": 10,
  "sort": "mostHelpful",
  "language": "en-us",
  "currency": "USD",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  },
  "resumeFromCheckpoint": false
}
```

# Actor output Schema

## `overview` (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 = {
    "hotelUrls": [
        {
            "url": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html"
        }
    ],
    "propertyIds": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/agoda-reviews-scraper").call(input);

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "hotelUrls": [{ "url": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html" }],
    "propertyIds": [],
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/agoda-reviews-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 '{
  "hotelUrls": [
    {
      "url": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html"
    }
  ],
  "propertyIds": []
}' |
apify call fetch_cat/agoda-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/2v45fsdqnAZUfntQl/builds/SF4YRDj6XfMyEgFsz/openapi.json
