# Agoda Hotel Scraper (`crawlio/agoda-hotel-scraper`) Actor

Scrape Agoda hotel search results, property details, live prices, room availability, and guest reviews. Extract structured hotel data for travel research, market analysis, pricing comparison, lead generation, and competitor monitoring.

- **URL**: https://apify.com/crawlio/agoda-hotel-scraper.md
- **Developed by:** [Crawlio](https://apify.com/crawlio) (community)
- **Categories:** Travel, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 search 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Agoda Hotel Scraper

### What does Agoda Hotel Scraper do?

Agoda Hotel Scraper lets you collect Agoda hotel search results, property details, and guest reviews directly from Agoda using destination queries, Agoda city IDs, or Agoda property IDs.

Agoda Hotel Scraper can scrape:

- Hotel search results for a destination
- Filtered hotel search results using Agoda-style dropdown and toggle filters
- Property details with live pricing and room availability
- Paginated property reviews

### Why scrape Agoda?

Agoda listings contain useful pricing, availability, rating, and review data for travel research, market analysis, lead generation, and competitive monitoring.

Here are some common use cases:

- Compare hotel pricing and ratings across destinations
- Monitor filtered hotel inventories for specific market segments
- Collect property-level room and availability data
- Analyze guest review volume, scores, and review text

If you would like more inspiration on how scraping travel and local listing platforms could help your business or organization, check out our [industry pages](https://apify.com/industries).

### How to scrape Agoda

It is straightforward to run Agoda Hotel Scraper.

1. Click on **Try for free**.
2. Select operation:
   - **Hotel search** -> Search Agoda hotels for a destination
   - **Property details** -> Fetch one Agoda property with pricing and rooms
   - **Property reviews** -> Fetch paginated reviews for one Agoda property
3. Fill in the input fields.
4. Click on **Run**.
5. When the run finishes, open the **Dataset** tab to preview or download the results.

### Supported operations

The Actor supports three operations:

- `search` - fetch Agoda hotel search results
- `property` - fetch one Agoda property with pricing and room details
- `reviews` - fetch Agoda guest reviews for one property

`search` is the default mode for new runs.

---

#### Hotel search

Use hotel search when you want Agoda results for a destination. You can pass a destination query and let the Actor resolve the destination automatically, or provide an Agoda `cityId` directly.

For consistent pagination, hotel search results are returned in a deterministic order before `limit` and `offset` are applied. This makes repeated runs more stable, but it can differ from Agoda's live on-site ranking order.

You can also apply Agoda filters such as:

- Property type
- Minimum star rating
- Minimum review score
- Distance from city center
- Free cancellation
- Pay at hotel
- Breakfast included
- Swimming pool
- Internet
- Parking
- Airport transfer
- Gym / fitness

**Example input:**

```json
{
  "mode": "search",
  "search": {
    "query": "Kuala Lumpur",
    "checkIn": "",
    "checkOut": "",
    "adults": 1,
    "children": 2,
    "childAges": "4,8",
    "rooms": 1,
    "limit": 10,
    "offset": 0,
    "propertyType": "hotel",
    "starRatingMin": "4",
    "reviewScoreMin": "8",
    "freeCancellation": true,
    "breakfastIncluded": true,
    "swimmingPool": true
  }
}
````

**Example output:**

```json
{
  "property_id": 44842960,
  "type": "NormalProperty",
  "name": "Grande Centre Point Surawong Bangkok",
  "rating": 5.0,
  "accommodation_type": 34,
  "city": "Bangkok",
  "country_code": "TH",
  "property_url": "https://www.agoda.com/grande-centre-point-surawong-bangkok/hotel/bangkok-th.html",
  "lat": 13.725975,
  "lng": 100.518982,
  "review_score": 9.3,
  "review_count": 13061,
  "is_available": true,
  "price_per_night_incl": 118.42,
  "price_per_night_excl": 100.62,
  "crossed_out_price": 0.0,
  "currency": "USD",
  "resultType": "hotel_search_result",
  "city_id": 9395,
  "query": "Bangkok"
}
```

#### Property details

Use property details when you already know the Agoda property ID and want one record with hotel information, pricing readiness, available room offers, policies, nearby places, and other Agoda property sections.

You can use either `propertyId` or `propertyUrl`. If you set `children` above `0`, provide matching child ages. Turn on `enrichPricing` when you want richer room pricing details.

**Example input:**

```json
{
  "mode": "property",
  "property": {
    "propertyUrl": "https://www.agoda.com/grande-centre-point-surawong-bangkok/hotel/bangkok-th.html",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "children": 0,
    "childAges": "",
    "rooms": 1,
    "enrichPricing": false
  }
}
```

**Example output:**

```json
{
  "property_id": 44842960,
  "name": "Grande Centre Point Surawong Bangkok",
  "address": "299 Thanon Surawong",
  "city": "Bangkok",
  "country": "Thailand",
  "country_code": "th",
  "stars": 5.0,
  "lat": 13.725975,
  "lng": 100.518982,
  "images": [
    {
      "url": "https://pix7.agoda.net/hotelImages/44842960/-1/2813c93250b3534365dbad6510eda7b7.jpg?ce=0&s=414x232&ar=16x9",
      "caption": "Balcony/terrace"
    }
  ],
  "image_categories": [
    {
      "name": "Rooms",
      "count": 14,
      "id": "room"
    }
  ],
  "breadcrumbs": [
    {
      "title": "Bangkok",
      "url": "/city/bangkok-th.html",
      "type": 5,
      "count": 12048
    }
  ],
  "is_available": true,
  "is_ready": true,
  "review_page_url": "/grande-centre-point-surawong-bangkok/reviews/bangkok-th.html",
  "children_stay_free_type_id": 0,
  "has_hourly_rate": false,
  "is_sustainable_travel": false,
  "pricing_enriched": false,
  "pricing_quote": {
    "check_in": "2026-05-30",
    "check_out": "2026-06-01",
    "adults": 2,
    "children": 0,
    "child_ages": [],
    "rooms_requested": 1,
    "currency": "USD",
    "room_count": 1
  },
  "rooms": [
    {
      "room_name": null,
      "total_incl": 118.42,
      "total_excl": 100.62,
      "crossed_out": 0.0,
      "cancellation": null,
      "benefits": [],
      "cashback": {}
    }
  ],
  "resultType": "property"
}
```

#### Property reviews

Use property reviews when you want guest review text, rating summaries, filters, and paginated comments for one Agoda property.

**Example input:**

```json
{
  "mode": "reviews",
  "reviews": {
    "propertyUrl": "https://www.agoda.com/grande-centre-point-surawong-bangkok/hotel/bangkok-th.html",
    "limit": 20,
    "offset": 0,
    "sortBy": "newest"
  }
}
```

**Example output:**

```json
{
  "property_id": 44842960,
  "hotel_name": "Grande Centre Point Surawong Bangkok",
  "star_rating": 5.0,
  "is_nha": false,
  "main_image_url": "https://pix8.agoda.net/hotelImages/44842960/-1/2813c93250b3534365dbad6510eda7b7.jpg?ce=0",
  "current_page": 1,
  "page_count": 5893,
  "combined_score": 9.3,
  "combined_score_text": "Exceptional",
  "review_count": 13061,
  "review_id": 1073109886,
  "provider_id": 332,
  "title": "Loved everything about this hotel ",
  "comment": "The room that we booked was massive with a great ceiling to floor glass window.",
  "score": 10.0,
  "score_text": "Exceptional",
  "review_date": "Feb 07, 2026",
  "reviewer_name": "Czarina",
  "reviewer_country": "United Kingdom",
  "demographic": "Couple",
  "room_type_name": "Premium King Room",
  "review_score": {
    "combinedReviewScore": {
      "score": 9.3,
      "scoreText": "Exceptional",
      "count": 13061
    }
  },
  "resultType": "review"
}
```

***

### Input notes

- Use `query` in `search` when you want the Actor to resolve the destination for you.
- Use `cityId` in `search` if you already know the Agoda city ID.
- Use either `propertyId` or `propertyUrl` in `property` and `reviews`.
- `limit` and `offset` are used in `search` and `reviews`.
- Use `childAges` in `search` and `property` as a comma-separated list such as `4,8`.
- When `children` is greater than `0`, provide exactly one age per child.
- Use `enrichPricing` in `property` when you want richer room-level pricing details.

### Output

Each dataset item represents one result for the selected operation:

- `search` returns one dataset item per hotel
- `property` returns one dataset item for the property
- `reviews` returns one dataset item per review comment

The Actor also stores a compact run summary in the default key-value store `OUTPUT` record.

### Is it legal to scrape Agoda?

Personal data may be protected by GDPR in the European Union and by other privacy regulations around the world. You should only scrape and process personal data when you have a legitimate reason to do so. If you are unsure, consult your lawyers.

We also recommend reading our blog post: [is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

# Actor input Schema

## `mode` (type: `string`):

Choose what to extract from Agoda.

## `search` (type: `object`):

Configure settings for Agoda hotel search.

## `property` (type: `object`):

Configure settings for a single Agoda property.

## `reviews` (type: `object`):

Configure settings for Agoda property reviews.

## `origin` (type: `string`):

Two-letter Agoda origin country code sent in request headers.

## `languageLocale` (type: `string`):

Agoda language locale header value.

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

Currency code for prices.

## Actor input object example

```json
{
  "mode": "search",
  "search": {
    "query": "Kuala Lumpur",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "children": 0,
    "childAges": "",
    "rooms": 1,
    "limit": 20,
    "offset": 0,
    "propertyType": "any",
    "starRatingMin": "0",
    "reviewScoreMin": "0",
    "cityCenterDistance": "any"
  },
  "property": {
    "propertyId": 87219375,
    "propertyUrl": "",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "children": 0,
    "childAges": "",
    "rooms": 1,
    "enrichPricing": false
  },
  "reviews": {
    "propertyId": 61727253,
    "propertyUrl": "",
    "limit": 20,
    "offset": 0,
    "sortBy": "newest"
  },
  "origin": "US",
  "languageLocale": "en-us",
  "currency": "USD"
}
```

# Actor output Schema

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

Summary stored in the OUTPUT record of the default key-value store, including the active output id for this run.

## `searchResults` (type: `string`):

Default dataset used by hotel search runs.

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

Results dataset used by property details and reviews runs.

# 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 = {
    "search": {
        "query": "Kuala Lumpur",
        "checkIn": "",
        "checkOut": "",
        "adults": 2,
        "children": 0,
        "childAges": "",
        "rooms": 1,
        "limit": 20,
        "offset": 0,
        "propertyType": "any",
        "starRatingMin": "0",
        "reviewScoreMin": "0",
        "cityCenterDistance": "any"
    },
    "property": {
        "propertyId": 87219375,
        "propertyUrl": "",
        "checkIn": "",
        "checkOut": "",
        "adults": 2,
        "children": 0,
        "childAges": "",
        "rooms": 1,
        "enrichPricing": false
    },
    "reviews": {
        "propertyId": 61727253,
        "propertyUrl": "",
        "limit": 20,
        "offset": 0,
        "sortBy": "newest"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlio/agoda-hotel-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 = {
    "search": {
        "query": "Kuala Lumpur",
        "checkIn": "",
        "checkOut": "",
        "adults": 2,
        "children": 0,
        "childAges": "",
        "rooms": 1,
        "limit": 20,
        "offset": 0,
        "propertyType": "any",
        "starRatingMin": "0",
        "reviewScoreMin": "0",
        "cityCenterDistance": "any",
    },
    "property": {
        "propertyId": 87219375,
        "propertyUrl": "",
        "checkIn": "",
        "checkOut": "",
        "adults": 2,
        "children": 0,
        "childAges": "",
        "rooms": 1,
        "enrichPricing": False,
    },
    "reviews": {
        "propertyId": 61727253,
        "propertyUrl": "",
        "limit": 20,
        "offset": 0,
        "sortBy": "newest",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlio/agoda-hotel-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 '{
  "search": {
    "query": "Kuala Lumpur",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "children": 0,
    "childAges": "",
    "rooms": 1,
    "limit": 20,
    "offset": 0,
    "propertyType": "any",
    "starRatingMin": "0",
    "reviewScoreMin": "0",
    "cityCenterDistance": "any"
  },
  "property": {
    "propertyId": 87219375,
    "propertyUrl": "",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "children": 0,
    "childAges": "",
    "rooms": 1,
    "enrichPricing": false
  },
  "reviews": {
    "propertyId": 61727253,
    "propertyUrl": "",
    "limit": 20,
    "offset": 0,
    "sortBy": "newest"
  }
}' |
apify call crawlio/agoda-hotel-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Agoda Hotel Scraper",
        "description": "Scrape Agoda hotel search results, property details, live prices, room availability, and guest reviews. Extract structured hotel data for travel research, market analysis, pricing comparison, lead generation, and competitor monitoring.",
        "version": "0.1",
        "x-build-id": "4xM9GSmXQvZGBo0ke"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlio~agoda-hotel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlio-agoda-hotel-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/crawlio~agoda-hotel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlio-agoda-hotel-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/crawlio~agoda-hotel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlio-agoda-hotel-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",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "property",
                            "reviews"
                        ],
                        "type": "string",
                        "description": "Choose what to extract from Agoda.",
                        "default": "search"
                    },
                    "search": {
                        "title": "Hotel search input",
                        "type": "object",
                        "description": "Configure settings for Agoda hotel search.",
                        "properties": {
                            "query": {
                                "title": "Destination query",
                                "type": "string",
                                "description": "Destination name to resolve automatically, such as Kuala Lumpur or Bangkok.",
                                "default": "Kuala Lumpur",
                                "editor": "textfield"
                            },
                            "cityId": {
                                "title": "City ID (Optional)",
                                "type": "integer",
                                "description": "Agoda city ID. Use this if you already know the destination ID.",
                                "editor": "number"
                            },
                            "checkIn": {
                                "title": "Check-in",
                                "type": "string",
                                "description": "Check-in date in YYYY-MM-DD format. Leave empty to use an automatic upcoming date.",
                                "default": "",
                                "editor": "datepicker"
                            },
                            "checkOut": {
                                "title": "Check-out",
                                "type": "string",
                                "description": "Check-out date in YYYY-MM-DD format. Leave empty to use an automatic upcoming date.",
                                "default": "",
                                "editor": "datepicker"
                            },
                            "adults": {
                                "title": "Adults",
                                "type": "integer",
                                "description": "Number of adult guests.",
                                "default": 2,
                                "minimum": 1,
                                "maximum": 20,
                                "editor": "number"
                            },
                            "children": {
                                "title": "Children",
                                "type": "integer",
                                "description": "Number of child guests.",
                                "default": 0,
                                "minimum": 0,
                                "maximum": 10,
                                "editor": "number"
                            },
                            "childAges": {
                                "title": "Children ages",
                                "type": "string",
                                "description": "Comma-separated child ages, for example 4,8. Leave empty when Children is 0.",
                                "default": "",
                                "editor": "textfield"
                            },
                            "rooms": {
                                "title": "Rooms",
                                "type": "integer",
                                "description": "Number of rooms.",
                                "default": 1,
                                "minimum": 1,
                                "maximum": 8,
                                "editor": "number"
                            },
                            "limit": {
                                "title": "Limit",
                                "type": "integer",
                                "description": "Maximum unique hotel results to return.",
                                "default": 20,
                                "minimum": 1,
                                "maximum": 1000,
                                "editor": "number"
                            },
                            "offset": {
                                "title": "Offset",
                                "type": "integer",
                                "description": "Skip this many unique hotel results before returning data.",
                                "default": 0,
                                "minimum": 0,
                                "maximum": 5000,
                                "editor": "number"
                            },
                            "propertyType": {
                                "title": "Property type",
                                "type": "string",
                                "description": "Filter results by Agoda property type.",
                                "default": "any",
                                "enum": [
                                    "any",
                                    "hotel",
                                    "apartment_flat",
                                    "serviced_apartment",
                                    "guesthouse_bed_breakfast",
                                    "resort"
                                ],
                                "enumTitles": [
                                    "Any",
                                    "Hotel",
                                    "Apartment / Flat",
                                    "Serviced apartment",
                                    "Guesthouse / Bed and breakfast",
                                    "Resort"
                                ],
                                "editor": "select"
                            },
                            "starRatingMin": {
                                "title": "Minimum star rating",
                                "type": "string",
                                "description": "Minimum Agoda star rating.",
                                "enum": [
                                    "0",
                                    "3",
                                    "3.5",
                                    "4",
                                    "4.5",
                                    "5"
                                ],
                                "enumTitles": [
                                    "Any",
                                    "3+",
                                    "3.5+",
                                    "4+",
                                    "4.5+",
                                    "5"
                                ],
                                "default": "0",
                                "editor": "select"
                            },
                            "reviewScoreMin": {
                                "title": "Minimum review score",
                                "type": "string",
                                "description": "Minimum Agoda guest review score.",
                                "enum": [
                                    "0",
                                    "6",
                                    "7",
                                    "8",
                                    "9"
                                ],
                                "enumTitles": [
                                    "Any",
                                    "6+ Good",
                                    "7+ Very good",
                                    "8+ Excellent",
                                    "9+ Exceptional"
                                ],
                                "default": "0",
                                "editor": "select"
                            },
                            "cityCenterDistance": {
                                "title": "Distance from city center",
                                "type": "string",
                                "description": "Filter by Agoda city center distance buckets.",
                                "default": "any",
                                "enum": [
                                    "any",
                                    "inside_city_center",
                                    "lt_2km",
                                    "2_to_5km",
                                    "5_to_10km",
                                    "gt_10km"
                                ],
                                "enumTitles": [
                                    "Any",
                                    "Inside city center",
                                    "<2 km to center",
                                    "2-5 km to center",
                                    "5-10 km to center",
                                    ">10 km to center"
                                ],
                                "editor": "select"
                            },
                            "freeCancellation": {
                                "title": "Free cancellation",
                                "type": "boolean",
                                "description": "Only show properties with Agoda free cancellation offers.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "payAtHotel": {
                                "title": "Pay at hotel",
                                "type": "boolean",
                                "description": "Only show properties that support pay-at-hotel payment.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "bookNowPayLater": {
                                "title": "Book now, pay later",
                                "type": "boolean",
                                "description": "Only show properties with Agoda book-now-pay-later offers.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "bookWithoutCreditCard": {
                                "title": "Book without credit card",
                                "type": "boolean",
                                "description": "Only show properties that can be booked without a credit card.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "payNow": {
                                "title": "Pay now",
                                "type": "boolean",
                                "description": "Only show properties that support pay-now payment.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "breakfastIncluded": {
                                "title": "Breakfast included",
                                "type": "boolean",
                                "description": "Only show properties with breakfast-included room offers.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "outsideFoodDeliveryAllowed": {
                                "title": "Outside food delivery allowed",
                                "type": "boolean",
                                "description": "Only show properties that allow outside food delivery.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "earlyCheckIn": {
                                "title": "Early check-in",
                                "type": "boolean",
                                "description": "Only show properties with early check-in room benefits.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "dinnerIncluded": {
                                "title": "Dinner included",
                                "type": "boolean",
                                "description": "Only show properties with dinner-included room offers.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "swimmingPool": {
                                "title": "Swimming pool",
                                "type": "boolean",
                                "description": "Only show properties that have a swimming pool facility.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "internet": {
                                "title": "Internet",
                                "type": "boolean",
                                "description": "Only show properties that provide internet access.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "parking": {
                                "title": "Parking",
                                "type": "boolean",
                                "description": "Only show properties that provide parking.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "airportTransfer": {
                                "title": "Airport transfer",
                                "type": "boolean",
                                "description": "Only show properties that offer airport transfer.",
                                "default": false,
                                "editor": "checkbox"
                            },
                            "gymFitness": {
                                "title": "Gym / fitness",
                                "type": "boolean",
                                "description": "Only show properties with gym or fitness facilities.",
                                "default": false,
                                "editor": "checkbox"
                            }
                        },
                        "default": {
                            "query": "Kuala Lumpur",
                            "checkIn": "",
                            "checkOut": "",
                            "adults": 2,
                            "children": 0,
                            "childAges": "",
                            "rooms": 1,
                            "limit": 20,
                            "offset": 0,
                            "propertyType": "any",
                            "starRatingMin": "0",
                            "reviewScoreMin": "0",
                            "cityCenterDistance": "any"
                        },
                        "additionalProperties": false
                    },
                    "property": {
                        "title": "Property details input",
                        "type": "object",
                        "description": "Configure settings for a single Agoda property.",
                        "properties": {
                            "propertyId": {
                                "title": "Property ID (Optional)",
                                "type": "integer",
                                "description": "Agoda property ID. Use either Property ID or Property URL.",
                                "default": 87219375,
                                "editor": "number"
                            },
                            "propertyUrl": {
                                "title": "Property URL (Optional)",
                                "type": "string",
                                "description": "Agoda property URL. Use either Property ID or Property URL.",
                                "default": "",
                                "editor": "textfield"
                            },
                            "checkIn": {
                                "title": "Check-in",
                                "type": "string",
                                "description": "Check-in date in YYYY-MM-DD format. Leave empty to use an automatic upcoming date.",
                                "default": "",
                                "editor": "datepicker"
                            },
                            "checkOut": {
                                "title": "Check-out",
                                "type": "string",
                                "description": "Check-out date in YYYY-MM-DD format. Leave empty to use an automatic upcoming date.",
                                "default": "",
                                "editor": "datepicker"
                            },
                            "adults": {
                                "title": "Adults",
                                "type": "integer",
                                "description": "Number of adult guests.",
                                "default": 2,
                                "minimum": 1,
                                "maximum": 20,
                                "editor": "number"
                            },
                            "children": {
                                "title": "Children",
                                "type": "integer",
                                "description": "Number of child guests.",
                                "default": 0,
                                "minimum": 0,
                                "maximum": 10,
                                "editor": "number"
                            },
                            "childAges": {
                                "title": "Children ages",
                                "type": "string",
                                "description": "Comma-separated child ages, for example 4,8. Leave empty when Children is 0.",
                                "default": "",
                                "editor": "textfield"
                            },
                            "rooms": {
                                "title": "Rooms",
                                "type": "integer",
                                "description": "Number of rooms.",
                                "default": 1,
                                "minimum": 1,
                                "maximum": 8,
                                "editor": "number"
                            },
                            "enrichPricing": {
                                "title": "Enrich pricing",
                                "type": "boolean",
                                "description": "Fetch richer room pricing details such as room IDs, supplier IDs, benefits, cashback, and occupancy info.",
                                "default": false,
                                "editor": "checkbox"
                            }
                        },
                        "default": {
                            "propertyId": 87219375,
                            "propertyUrl": "",
                            "checkIn": "",
                            "checkOut": "",
                            "adults": 2,
                            "children": 0,
                            "childAges": "",
                            "rooms": 1,
                            "enrichPricing": false
                        },
                        "additionalProperties": false
                    },
                    "reviews": {
                        "title": "Property reviews input",
                        "type": "object",
                        "description": "Configure settings for Agoda property reviews.",
                        "properties": {
                            "propertyId": {
                                "title": "Property ID (Optional)",
                                "type": "integer",
                                "description": "Agoda property ID. Use either Property ID or Property URL.",
                                "default": 61727253,
                                "editor": "number"
                            },
                            "propertyUrl": {
                                "title": "Property URL (Optional)",
                                "type": "string",
                                "description": "Agoda property URL. Use either Property ID or Property URL.",
                                "default": "",
                                "editor": "textfield"
                            },
                            "limit": {
                                "title": "Limit",
                                "type": "integer",
                                "description": "Maximum unique reviews to return.",
                                "default": 20,
                                "minimum": 1,
                                "maximum": 1000,
                                "editor": "number"
                            },
                            "offset": {
                                "title": "Offset",
                                "type": "integer",
                                "description": "Skip this many unique reviews before returning data.",
                                "default": 0,
                                "minimum": 0,
                                "maximum": 5000,
                                "editor": "number"
                            },
                            "sortBy": {
                                "title": "Review sort",
                                "type": "string",
                                "description": "Review sorting mode.",
                                "default": "newest",
                                "enum": [
                                    "newest"
                                ],
                                "enumTitles": [
                                    "Newest"
                                ],
                                "editor": "select"
                            }
                        },
                        "default": {
                            "propertyId": 61727253,
                            "propertyUrl": "",
                            "limit": 20,
                            "offset": 0,
                            "sortBy": "newest"
                        },
                        "additionalProperties": false
                    },
                    "origin": {
                        "title": "Origin country",
                        "type": "string",
                        "description": "Two-letter Agoda origin country code sent in request headers.",
                        "default": "US"
                    },
                    "languageLocale": {
                        "title": "Language locale",
                        "type": "string",
                        "description": "Agoda language locale header value.",
                        "default": "en-us"
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "Currency code for prices.",
                        "default": "USD"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
