# Priceline Hotel Scraper (`axlymxp/priceline-hotel-scraper`) Actor

Scrape Priceline.com hotels by destination and dates — nightly and total prices, star levels, guest-rating scores, amenities, GPS and neighborhoods, with optional room detail and reviews. Built on Priceline's official API for reliable, structured JSON. Pay only for the hotels you get.

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

## Pricing

from $4.00 / 1,000 dataset items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

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

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

Extract hotel availability and pricing from **Priceline.com** at scale. Give it a
destination and dates and it returns every available hotel with **nightly + total
prices, star levels, guest-review scores, amenities, GPS coordinates and
neighborhoods** — optionally enriched with per-hotel guest reviews. Built on
Priceline's official GraphQL API, so output is clean, structured JSON, not
brittle HTML scraping.

### Who it's for

- **Travel & OTA analysts / revenue managers** — benchmark hotel rates across
  cities, track supply, monitor rate parity vs other channels.
- **Investors & market researchers** — hotel pricing and guest-sentiment data per
  market and date range.
- **PropTech / travel-app developers** — a stable JSON feed of hotel inventory to
  power apps, dashboards and price-comparison tools.
- **Agencies & data teams** — bulk hotel datasets with reviews for any US or
  international destination.

### What you get (output fields)

| Field                                       | Description                                          |
| ------------------------------------------- | ---------------------------------------------------- |
| `hotel_id`                                  | Priceline hotel id                                   |
| `name`                                      | Hotel name                                           |
| `star_level`                                | Star rating text (e.g. "3-Star Hotel")               |
| `neighborhood`                              | Neighborhood / area                                  |
| `brand`, `brand_owner`                      | Hotel brand and parent group                         |
| `latitude`, `longitude`                     | GPS coordinates                                      |
| `price_amount`, `price_currency`            | Nightly headline price                               |
| `total_price_amount`                        | Total stay price incl. taxes & fees                  |
| `price_strike`, `price_savings`             | Was-price and savings when discounted                |
| `review_score_overall`, `review_scores`     | Guest rating (0–10) + sub-scores                     |
| `review_count_label`                        | Number of reviews                                    |
| `amenities`, `themes`                       | Amenity list and property themes                     |
| `images`                                    | Hotel photo URLs                                     |
| `cancellation_policy`, `payment_disclaimer` | Booking terms                                        |
| `reviews`                                   | Guest reviews (when **Include guest reviews** is on) |
| `url`                                       | Direct hotel page URL                                |
| `scraped_at`                                | ISO-8601 scrape timestamp                            |

### Use cases

- **Rate benchmarking** — pull the full hotel list for a city + date pair on a
  schedule and track how prices move over time.
- **Market supply analysis** — count hotels, star tiers and brands per
  destination.
- **Guest-sentiment research** — combine review scores and review text across a
  market.
- **Price-comparison products** — feed Priceline inventory into a multi-OTA
  comparison app.

### Input

| Field                | Type    | Default           | Description                                 |
| -------------------- | ------- | ----------------- | ------------------------------------------- |
| `destination`        | string  | "New York"        | City name (auto-resolved) or numeric geo id |
| `checkIn`            | string  | +30 days          | Check-in `YYYY-MM-DD`                       |
| `checkOut`           | string  | +32 days          | Check-out `YYYY-MM-DD`                      |
| `adults`             | integer | 2                 | Adult guests                                |
| `rooms`              | integer | 1                 | Rooms                                       |
| `sort`               | enum    | RECOMMENDED       | `RECOMMENDED`, `PRICE`, `REVIEW_SCORE`      |
| `maxItems`           | integer | 100               | Stop after N hotels                         |
| `includeReviews`     | boolean | false             | Add per-hotel guest reviews                 |
| `maxReviews`         | integer | 10                | Reviews per hotel                           |
| `currency`           | string  | USD               | ISO 4217 currency                           |
| `proxyConfiguration` | object  | Apify residential | Proxy settings                              |

#### Example input

```json
{
    "destination": "Miami",
    "checkIn": "2026-09-01",
    "checkOut": "2026-09-03",
    "adults": 2,
    "sort": "PRICE",
    "maxItems": 100
}
````

#### Example output row

```json
{
    "hotel_id": "40730",
    "name": "New Yorker by Lotte Hotels",
    "star_level": "3-Star Hotel",
    "neighborhood": "Midtown West - Hell's Kitchen",
    "latitude": 40.7522,
    "longitude": -73.9935,
    "price_amount": "338.26",
    "price_currency": "USD",
    "total_price_amount": "863.70",
    "review_score_overall": "7.7",
    "review_count_label": "1,338 Reviews",
    "amenities": ["Free Internet Access", "Fitness Center"],
    "url": "https://www.priceline.com/relax/at/40730/from/20260901/to/20260903/rooms/1/adults/2",
    "scraped_at": "2026-07-21T00:00:00Z"
}
```

### Scheduling & integrations

Run it on a **schedule** to build hotel price-history datasets, or trigger it via
the **Apify API** and pipe results to Google Sheets, S3, a database, or a webhook.
Every field above is available in JSON, CSV, Excel and HTML exports.

### AI assistants (MCP)

Prefer to query Priceline live from Claude, ChatGPT or Cursor? Use the companion
**Priceline Travel MCP Server** actor to search hotels and flights as MCP tools.

### FAQ

**Which destinations are supported?** Any city Priceline covers, worldwide — pass
a city name (auto-resolved) or a Priceline geo id.

**How fresh is the data?** Live — every run queries Priceline in real time for
your exact dates.

**Are opaque "Express Deal" hotels included?** They appear as rows with a hidden
name (Priceline only reveals it after booking); their pricing is still returned.

**Is this reliable?** It uses Priceline's official API endpoints rather than
HTML scraping, so the schema is stable and results are consistent.

**Is scraping this legal?** The actor collects publicly available listing data.
You are responsible for using the data in line with applicable laws and
Priceline's terms.

# Actor input Schema

## `destination` (type: `string`):

City name (e.g. "New York", "Miami") — resolved automatically — or a numeric Priceline geo id (e.g. "3000016152").

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

Check-in date in YYYY-MM-DD format. Defaults to 30 days from today.

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

Check-out date in YYYY-MM-DD format. Defaults to 32 days from today.

## `adults` (type: `integer`):

Number of adult guests.

## `rooms` (type: `integer`):

Number of rooms.

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

How to sort the results.

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

Stop after collecting this many hotels.

## `includeReviews` (type: `boolean`):

Fetch guest reviews for each hotel (adds one request per hotel, slower).

## `maxReviews` (type: `integer`):

How many guest reviews to include per hotel when 'Include guest reviews' is on.

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

ISO 4217 currency code for prices.

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

Proxy settings. Residential proxies are recommended for reliability.

## Actor input object example

```json
{
  "destination": "Miami",
  "checkIn": "2026-09-01",
  "checkOut": "2026-09-03",
  "adults": 2,
  "rooms": 1,
  "sort": "RECOMMENDED",
  "maxItems": 100,
  "includeReviews": false,
  "maxReviews": 10,
  "currency": "USD",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "destination": "New York",
    "checkIn": "2026-09-01",
    "checkOut": "2026-09-03"
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/priceline-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 = {
    "destination": "New York",
    "checkIn": "2026-09-01",
    "checkOut": "2026-09-03",
}

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/priceline-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 '{
  "destination": "New York",
  "checkIn": "2026-09-01",
  "checkOut": "2026-09-03"
}' |
apify call axlymxp/priceline-hotel-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Priceline Hotel Scraper",
        "description": "Scrape Priceline.com hotels by destination and dates — nightly and total prices, star levels, guest-rating scores, amenities, GPS and neighborhoods, with optional room detail and reviews. Built on Priceline's official API for reliable, structured JSON. Pay only for the hotels you get.",
        "version": "1.0",
        "x-build-id": "Yp8corzZCWwrVbXf7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/axlymxp~priceline-hotel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-axlymxp-priceline-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/axlymxp~priceline-hotel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-axlymxp-priceline-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/axlymxp~priceline-hotel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-axlymxp-priceline-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",
                "required": [
                    "destination"
                ],
                "properties": {
                    "destination": {
                        "title": "Destination",
                        "type": "string",
                        "description": "City name (e.g. \"New York\", \"Miami\") — resolved automatically — or a numeric Priceline geo id (e.g. \"3000016152\")."
                    },
                    "checkIn": {
                        "title": "Check-in date",
                        "type": "string",
                        "description": "Check-in date in YYYY-MM-DD format. Defaults to 30 days from today."
                    },
                    "checkOut": {
                        "title": "Check-out date",
                        "type": "string",
                        "description": "Check-out date in YYYY-MM-DD format. Defaults to 32 days from today."
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Number of adult guests.",
                        "default": 2
                    },
                    "rooms": {
                        "title": "Rooms",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Number of rooms.",
                        "default": 1
                    },
                    "sort": {
                        "title": "Sort order",
                        "enum": [
                            "RECOMMENDED",
                            "PRICE",
                            "REVIEW_SCORE"
                        ],
                        "type": "string",
                        "description": "How to sort the results.",
                        "default": "RECOMMENDED"
                    },
                    "maxItems": {
                        "title": "Maximum hotels",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Stop after collecting this many hotels.",
                        "default": 100
                    },
                    "includeReviews": {
                        "title": "Include guest reviews",
                        "type": "boolean",
                        "description": "Fetch guest reviews for each hotel (adds one request per hotel, slower).",
                        "default": false
                    },
                    "maxReviews": {
                        "title": "Reviews per hotel",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many guest reviews to include per hotel when 'Include guest reviews' is on.",
                        "default": 10
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "ISO 4217 currency code for prices.",
                        "default": "USD"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are recommended for reliability.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
