# Priceline Hotel Reviews Scraper (`mrbridge/priceline-hotel-reviews-scraper`) Actor

Scrape hotel reviews from Priceline: review text, pros/cons, reviewer info, and individual ratings. Get guest scores, category ratings, GPS coordinates, and neighborhood data for 107 cities or specific URLs. Export data, run via API, schedule runs, or integrate with other tools.

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

## Pricing

from $3.00 / 1,000 hotel 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 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

## Priceline Hotel Reviews Scraper

Extract hotel reviews from [Priceline.com](https://www.priceline.com) — review text with **pros/cons**, individual ratings, and reviewer info. Also get **guest scores**, category ratings (cleanliness, location, staff), hotel descriptions, GPS coordinates, and neighborhood data. Search **107 major cities worldwide** or scrape specific hotel URLs and IDs. Fast HTTP-based extraction with JSON, CSV, or Excel export.

### What can this scraper do?

- **Guest reviews** — review text with pros/cons, reviewer info, and individual ratings per review
- **Guest scores** — overall score, cleanliness, location, staff, and more on a 0–10 scale
- **Hotel profiles** — star ratings, descriptions, and full address with GPS coordinates
- **City search** — discover hotels across 107 cities in 48 countries with star and score filters
- **Flexible input** — scrape by URL, hotel ID, or city name
- **No browser required** — fast API-based extraction, lightweight on resources
- **Structured output** — JSON, CSV, or Excel, ready for analysis and integrations
- **Automatic scheduling** — run on any interval via the Apify platform to track metrics over time
- **API access** — integrate results into any workflow via REST API, webhooks, or client libraries

### Quick start — get results in 60 seconds

1. Click **[Try for free](https://console.apify.com/actors/Dfghye4iyPSa7p2zG)** to open the scraper in Apify Console
2. Choose your input method — **URLs**, **Hotel IDs**, or **City Search**
3. Click **Start** and wait for results (3–5 seconds per hotel)
4. Download your data as **JSON**, **CSV**, or **Excel** from the Output tab

No configuration required — the default settings work out of the box.

#### Finding hotel IDs

The hotel ID is the number at the end of any Priceline hotel URL:

````

https://www.priceline.com/relax/at/71741505
^^^^^^^^
Hotel ID: 71741505

````

You can also use **City Search** mode to discover hotels automatically without knowing their IDs.

### Why scrape Priceline hotel data?

- **Competitive analysis** — Compare guest ratings and category scores across competing hotels in any market
- **Market research** — Analyze guest satisfaction trends by city, neighborhood, or hotel class across 107 cities
- **Investment due diligence** — Assess hotel reputation and review sentiment before acquisition decisions
- **Travel aggregation** — Build hotel comparison tools with structured Priceline data and GPS coordinates
- **Revenue management** — Track competitor ratings and review volumes to inform pricing strategy
- **Academic research** — Study hospitality patterns using structured rating and review datasets
- **Location intelligence** — Map hotel quality by neighborhood using GPS coordinates and scores

### Input configuration

This scraper supports three input modes:

#### Hotel URLs (default) — scrape specific Priceline hotel pages

Provide one or more Priceline hotel page URLs:

```json
{
  "hotelUrls": [
    "https://www.priceline.com/relax/at/71741505",
    "https://www.priceline.com/relax/at/700363886"
  ]
}
````

The actor extracts the hotel ID from each URL automatically. Without `inputType`, it auto-detects this mode when `hotelUrls` is provided.

#### Hotel IDs — scrape by numeric Priceline hotel identifier

Provide Priceline hotel IDs directly:

```json
{
  "inputType": "ids",
  "hotelIds": ["71741505", "700363886"]
}
```

#### City Search — discover and scrape all hotels in a city

Search all hotels in a city with optional filters:

```json
{
  "inputType": "city",
  "searchCity": "Paris",
  "maxHotels": 50,
  "minStars": 4,
  "minScore": 8
}
```

**107 cities** available across 48 countries — from New York and London to Tokyo, Dubai, and Buenos Aires. Use the dropdown in the Apify Console for the full list.

#### Input parameters reference

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `inputType` | string | Input mode: `urls`, `ids`, or `city` | `urls` |
| `hotelUrls` | string\[] | Priceline hotel page URLs | — |
| `hotelIds` | string\[] | Priceline hotel IDs (numbers) | — |
| `searchCity` | string | City name for hotel search (107 cities) | — |
| `maxHotels` | integer | Max hotels to extract from city search | `100` |
| `minStars` | integer | Min star rating filter for city search (0–5) | `0` |
| `minScore` | number | Min guest score filter for city search (0–10) | `0` |
| `maxReviewsPerHotel` | integer | Max reviews to collect per hotel (0 = all) | `100` |
| `checkIn` | string | Check-in date (YYYY-MM-DD) | Tomorrow |
| `checkOut` | string | Check-out date (YYYY-MM-DD) | Day after tomorrow |

### What data can you extract from Priceline?

This scraper produces one JSON object per hotel in the default dataset. Each object contains the complete hotel profile with ratings, reviews, and location data.

| Data Point | Example |
|------------|---------|
| Hotel name & star rating | Doubletree By Hilton, 4 stars |
| Overall guest score (0–10) | 7.0 / 10 (Good) |
| Category ratings | Cleanliness 7.4, Location 8.5, Staff 7.6 |
| Total review count | 6,008 reviews |
| Full hotel description | Multi-paragraph hotel description |
| Description language | Detected automatically (en, fr, de, es, zh, ja, ko) |
| Street address | 350 West 40th Street |
| City, state, country | New York, NY, US |
| Neighborhood | Times Square - Theatre District |
| GPS coordinates | 40.757, -73.993 |
| Guest reviews | Review text, rating, reviewer name, pros/cons |
| Extraction timestamp | ISO 8601 timestamp |

#### Output example

```json
{
  "hotelId": "71741505",
  "name": "Doubletree By Hilton New York Times Square West",
  "url": "https://www.priceline.com/relax/at/71741505",
  "starLevel": 4,
  "description": "The DoubleTree by Hilton Hotel New York – Times Square West is within 0.9 mi of Times Square...",
  "descriptionLanguage": "en",
  "ratings": {
    "overallScore": 7,
    "totalReviewCount": 6008,
    "ratingLabel": "Good",
    "categories": {
      "overall": 6.9,
      "cleanliness": 7.4,
      "location": 8.5,
      "staff": 7.6,
      "comfort": null,
      "valueForMoney": null
    }
  },
  "location": {
    "address": "350 West 40th Street",
    "city": "New York",
    "state": "NY",
    "countryCode": "US",
    "neighborhood": "Times Square - Theatre District",
    "latitude": 40.75680164,
    "longitude": -73.99306987
  },
  "reviews": [
    {
      "text": "Great location, very close to Times Square and Broadway theaters.",
      "rating": 8,
      "reviewer": "John D.",
      "pros": "Location, friendly staff",
      "cons": "Room size"
    }
  ],
  "scrapedAt": "2026-04-25T11:28:45.228Z",
  "dataVersion": "0.4.0"
}
```

#### Output fields reference

| Field | Type | Description |
|-------|------|-------------|
| `hotelId` | string | Unique Priceline hotel identifier |
| `name` | string | Hotel name |
| `url` | string | Priceline hotel page URL |
| `starLevel` | number | Star classification (1–5) |
| `description` | string | Full hotel description text |
| `descriptionLanguage` | string | Detected language code (en, fr, de, es, zh, ja, ko) |
| `ratings.overallScore` | number | Overall guest score (0–10 scale) |
| `ratings.totalReviewCount` | number | Total number of guest reviews |
| `ratings.ratingLabel` | string | Rating label: Excellent, Very Good, Good, Fair, or Poor |
| `ratings.categories` | object | Category scores: cleanliness, location, staff, overall |
| `location` | object | Full address, city, state, country, neighborhood |
| `location.latitude` | number | GPS latitude coordinate |
| `location.longitude` | number | GPS longitude coordinate |
| `reviews` | array | Guest reviews with text, rating, reviewer info, pros/cons |
| `scrapedAt` | string | ISO 8601 extraction timestamp |
| `dataVersion` | string | Data schema version |

#### Error records

If a hotel fails to extract, an error record is added to the dataset instead:

```json
{
  "error": true,
  "errorMessage": "Fetch failed after 3 retries",
  "errorType": "ExtractionError",
  "hotelUrl": "https://www.priceline.com/relax/at/123",
  "timestamp": "2026-04-25T11:28:45.228Z"
}
```

You are not charged for failed extractions.

### How much does it cost to scrape Priceline?

This scraper uses **pay-per-event** pricing — you only pay for successful extractions:

| Event | Cost |
|-------|------|
| Successful hotel extraction | **$0.005** per hotel |
| Failed extraction | Free |
| Incomplete data (validation error) | Free |
| City search (listing page) | Free |

Platform compute costs are minimal — a typical run uses ~0.001 compute units.

With the [Apify Free plan](https://apify.com/pricing?fpr=mrbridge), you get $5 free usage credits each month — enough to **scrape up to 1,000 hotels for free**. The $49/month [Scale plan](https://apify.com/pricing?fpr=mrbridge) gives you $49 of platform credits, letting you **scrape up to 9,800 hotels every month**.

#### Cost estimates

| Scenario | Hotels | Cost |
|----------|--------|------|
| Single hotel lookup | 1 | $0.005 |
| Small batch | 10 | $0.05 |
| City research (top 50) | 50 | $0.25 |
| Full city scan | 100 | $0.50 |

### Which Priceline scraper should I use?

| Need | Best actor | What it does |
|------|-----------|--------------|
| **Hotel reviews, ratings & details** | [**Priceline Hotel Reviews Scraper**](https://apify.com/mrbridge/priceline-hotel-reviews-scraper?fpr=mrbridge) (this one) | Guest reviews, scores, category ratings, GPS, descriptions |
| **Live hotel prices & deals** | [Priceline Hotel Prices Scraper](https://apify.com/mrbridge/priceline-hotel-scraper?fpr=mrbridge) | Search by destination and dates, get prices, amenities, availability |

**Tip:** Use the Live Prices scraper to find hotels and compare rates, then use this scraper to get in-depth guest reviews and ratings for your shortlisted hotels.

### Integrations and API access

The Apify platform provides built-in monitoring, scheduling, and integrations for all actors:

- **[REST API](https://docs.apify.com/api/v2)** — Call the actor programmatically from any language
- **[JavaScript client](https://docs.apify.com/sdk/js) / [Python client](https://docs.apify.com/sdk/python)** — Use the official Apify client libraries
- **[Zapier](https://apify.com/integrations/zapier?fpr=mrbridge)** / **[Make](https://apify.com/integrations/make?fpr=mrbridge)** / **[n8n](https://apify.com/integrations/n8n?fpr=mrbridge)** — Automate data collection with no-code platforms
- **[Google Sheets](https://apify.com/integrations/google-sheets?fpr=mrbridge)** — Export results directly to a spreadsheet
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — Get notified when a run completes
- **[Scheduling](https://docs.apify.com/platform/schedules)** — Run on any interval (daily, weekly, monthly) to track hotel metrics over time

You can also access results programmatically via the dataset API endpoint to integrate Priceline hotel data into your existing data pipeline.

### FAQ

#### How do I find Priceline hotel IDs?

The hotel ID is the number at the end of any Priceline hotel URL: `priceline.com/relax/at/{hotelId}`. You can also use **City Search** mode to discover hotels automatically without knowing their IDs.

#### Which cities are supported for hotel search?

107 cities across 48 countries. The full list includes major destinations across North America, Europe, Asia, Middle East, Africa, South America, and Oceania. Use the dropdown in the Apify Console to browse available cities.

#### What category ratings are available?

This scraper extracts **Cleanliness**, **Location**, **Staff**, and **Overall Quality** scores on a 0–10 scale. Comfort and Value for Money are included in the schema but may be null depending on what Priceline returns for a given hotel.

#### How fast is the extraction?

Each hotel takes approximately 3–5 seconds. A batch of 10 hotels completes in under a minute. City search adds ~15 seconds for the listing page.

#### What happens if a hotel page is unavailable?

The actor logs the error and pushes an error record to the dataset. Other hotels in the batch continue processing normally. You are not charged for failed extractions.

#### Can I schedule recurring runs?

Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run this scraper on any interval (daily, weekly, etc.) and track hotel metrics over time.

#### What export formats are available?

JSON, CSV, Excel, XML, and RSS. You can also access results via the Apify API or connect to Google Sheets for automatic updates.

#### Can I use this scraper via MCP?

Yes. Connect to [mcp.apify.com](https://mcp.apify.com) and add the Priceline Hotel Reviews Scraper as a tool for AI assistants like Claude, ChatGPT, or Cursor. See the **MCP tab** on the Actor page for setup instructions.

#### Does Priceline have an official API?

Priceline does not offer a public API for hotel reviews and ratings. This scraper extracts the same publicly visible data that any visitor sees on Priceline.com, structured for programmatic use.

### Is it legal to scrape Priceline?

This scraper extracts publicly accessible data that any visitor can see on Priceline.com. It does not bypass any login, paywall, or access restriction. No personal data is collected — only hotel profiles, guest reviews, and ratings that Priceline displays publicly.

Always use web scraping responsibly and in accordance with applicable laws, regulations, and [Priceline's terms of service](https://www.priceline.com/content/en-us/terms-and-conditions.html). If you are unsure about your use case, consult legal counsel.

For more information, see Apify's guide on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Support and feedback

- **Issues & feature requests** — Open an issue on the [Issues tab](https://console.apify.com/actors/Dfghye4iyPSa7p2zG/issues) in Apify Console
- **Custom solutions** — Contact us for tailored hotel data extraction workflows
- **Bug reports** — Include your run ID and input configuration for fastest resolution

# Actor input Schema

## `inputType` (type: `string`):

Choose how to specify which hotels to scrape. Use URLs or IDs for specific hotels, or City Search to discover hotels in a city.

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

One or more Priceline hotel page URLs. The hotel ID is extracted automatically from the URL (e.g. priceline.com/relax/at/71741505).

## `hotelIds` (type: `array`):

Priceline numeric hotel IDs. Find the ID at the end of any hotel URL: priceline.com/relax/at/{hotelId}.

## `searchCity` (type: `string`):

Select a city to search for hotels (107 cities, each labeled with its country). Set Input Type to 'City Search' to use this field.

## `maxHotels` (type: `integer`):

Optional. Maximum number of hotels to extract from city search results (applied after star and score filters). Default: 100.

## `minStars` (type: `integer`):

Optional. Minimum star rating filter for city search results (0-5). Default: 0 (no filter).

## `minScore` (type: `number`):

Optional. Minimum overall review score filter for city search results (0-10). Default: 0 (no filter).

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

Optional. Maximum number of guest reviews to collect per hotel. Set to 0 for all available reviews. Default: 100.

## `discoverMode` (type: `boolean`):

Save raw API responses and search HTML to Key-Value Store for debugging. Keep disabled in production.

## `checkIn` (type: `string`):

Optional. Check-in date in YYYY-MM-DD format. Defaults to tomorrow.

## `checkOut` (type: `string`):

Optional. Check-out date in YYYY-MM-DD format. Defaults to day after tomorrow.

## Actor input object example

```json
{
  "inputType": "urls",
  "hotelUrls": [
    "https://www.priceline.com/relax/at/71741505"
  ],
  "maxHotels": 100,
  "minStars": 0,
  "minScore": 0,
  "maxReviewsPerHotel": 100,
  "discoverMode": false
}
```

# Actor output Schema

## `hotelProfiles` (type: `string`):

Dataset containing all extracted hotel profiles with ratings, reviews, and location data

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

Summary of extraction results (total hotels, success count, error count)

# 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": [
        "https://www.priceline.com/relax/at/71741505"
    ],
    "maxReviewsPerHotel": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrbridge/priceline-hotel-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": ["https://www.priceline.com/relax/at/71741505"],
    "maxReviewsPerHotel": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("mrbridge/priceline-hotel-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": [
    "https://www.priceline.com/relax/at/71741505"
  ],
  "maxReviewsPerHotel": 100
}' |
apify call mrbridge/priceline-hotel-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Priceline Hotel Reviews Scraper",
        "description": "Scrape hotel reviews from Priceline: review text, pros/cons, reviewer info, and individual ratings. Get guest scores, category ratings, GPS coordinates, and neighborhood data for 107 cities or specific URLs. Export data, run via API, schedule runs, or integrate with other tools.",
        "version": "0.4",
        "x-build-id": "iZ4hS7ZCARz4jIAW4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mrbridge~priceline-hotel-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mrbridge-priceline-hotel-reviews-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/mrbridge~priceline-hotel-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-mrbridge-priceline-hotel-reviews-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/mrbridge~priceline-hotel-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-mrbridge-priceline-hotel-reviews-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": {
                    "inputType": {
                        "title": "Input Type",
                        "enum": [
                            "urls",
                            "ids",
                            "city"
                        ],
                        "type": "string",
                        "description": "Choose how to specify which hotels to scrape. Use URLs or IDs for specific hotels, or City Search to discover hotels in a city.",
                        "default": "urls"
                    },
                    "hotelUrls": {
                        "title": "Hotel URLs",
                        "type": "array",
                        "description": "One or more Priceline hotel page URLs. The hotel ID is extracted automatically from the URL (e.g. priceline.com/relax/at/71741505).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "hotelIds": {
                        "title": "Hotel IDs",
                        "type": "array",
                        "description": "Priceline numeric hotel IDs. Find the ID at the end of any hotel URL: priceline.com/relax/at/{hotelId}.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchCity": {
                        "title": "City",
                        "enum": [
                            "Buenos Aires",
                            "Sydney",
                            "Melbourne",
                            "Vienna",
                            "Brussels",
                            "São Paulo",
                            "Rio de Janeiro",
                            "Toronto",
                            "Vancouver",
                            "Montreal",
                            "Santiago",
                            "Shanghai",
                            "Beijing",
                            "Guangzhou",
                            "Shenzhen",
                            "Hong Kong",
                            "Bogotá",
                            "Prague",
                            "Copenhagen",
                            "Cairo",
                            "Helsinki",
                            "Paris",
                            "Nice",
                            "Lyon",
                            "Berlin",
                            "Munich",
                            "Frankfurt",
                            "Hamburg",
                            "Athens",
                            "Budapest",
                            "Mumbai",
                            "Delhi",
                            "Bangalore",
                            "Chennai",
                            "Jakarta",
                            "Bali",
                            "Dublin",
                            "Tel Aviv",
                            "Rome",
                            "Milan",
                            "Florence",
                            "Venice",
                            "Tokyo",
                            "Osaka",
                            "Kyoto",
                            "Nairobi",
                            "Kuala Lumpur",
                            "Mexico City",
                            "Cancún",
                            "Marrakech",
                            "Amsterdam",
                            "Auckland",
                            "Lagos",
                            "Oslo",
                            "Lima",
                            "Manila",
                            "Warsaw",
                            "Kraków",
                            "Lisbon",
                            "Porto",
                            "Doha",
                            "Riyadh",
                            "Jeddah",
                            "Singapore",
                            "Cape Town",
                            "Johannesburg",
                            "Seoul",
                            "Busan",
                            "Barcelona",
                            "Madrid",
                            "Stockholm",
                            "Zurich",
                            "Geneva",
                            "Taipei",
                            "Bangkok",
                            "Phuket",
                            "Istanbul",
                            "Dubai",
                            "Abu Dhabi",
                            "London",
                            "Edinburgh",
                            "Manchester",
                            "New York",
                            "Los Angeles",
                            "Chicago",
                            "Miami",
                            "San Francisco",
                            "Las Vegas",
                            "Houston",
                            "Washington DC",
                            "Boston",
                            "Seattle",
                            "Orlando",
                            "Denver",
                            "Nashville",
                            "San Diego",
                            "Atlanta",
                            "Dallas",
                            "Philadelphia",
                            "Phoenix",
                            "Austin",
                            "New Orleans",
                            "Honolulu",
                            "Portland",
                            "Minneapolis",
                            "Tampa",
                            "Charlotte"
                        ],
                        "type": "string",
                        "description": "Select a city to search for hotels (107 cities, each labeled with its country). Set Input Type to 'City Search' to use this field."
                    },
                    "maxHotels": {
                        "title": "Max Hotels",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Optional. Maximum number of hotels to extract from city search results (applied after star and score filters). Default: 100.",
                        "default": 100
                    },
                    "minStars": {
                        "title": "Min Star Rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional. Minimum star rating filter for city search results (0-5). Default: 0 (no filter).",
                        "default": 0
                    },
                    "minScore": {
                        "title": "Min Review Score",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "number",
                        "description": "Optional. Minimum overall review score filter for city search results (0-10). Default: 0 (no filter).",
                        "default": 0
                    },
                    "maxReviewsPerHotel": {
                        "title": "Max Reviews Per Hotel",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Maximum number of guest reviews to collect per hotel. Set to 0 for all available reviews. Default: 100.",
                        "default": 100
                    },
                    "discoverMode": {
                        "title": "Discovery Mode",
                        "type": "boolean",
                        "description": "Save raw API responses and search HTML to Key-Value Store for debugging. Keep disabled in production.",
                        "default": false
                    },
                    "checkIn": {
                        "title": "Check-In Date",
                        "type": "string",
                        "description": "Optional. Check-in date in YYYY-MM-DD format. Defaults to tomorrow."
                    },
                    "checkOut": {
                        "title": "Check-Out Date",
                        "type": "string",
                        "description": "Optional. Check-out date in YYYY-MM-DD format. Defaults to day after tomorrow."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
