Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Priceline API

Real-time access to Priceline travel data: hotel search with room-level pricing and availability, hotel reviews, flight search for one-way and round trips, and car rental search across hundreds of providers. Clean JSON over a normal REST API, so there is no scraping, no proxy rotation, and no HTML parsing to maintain.

Built and maintained by Happy Endpoint. Not affiliated with, endorsed by, or connected to Priceline.


What you get

  • Location autocomplete for cities, airports, hotels, and attractions
  • Hotel search filtered by dates, occupancy, star rating, amenities, and rate options such as free cancellation
  • Hotel detail records including photos, policies, and amenities
  • Room-level pricing and availability with cancellation policies
  • Hotel reviews
  • Flight search, one-way and round trip, with cabin class and baggage attributes
  • Car rental search by location, date, and time window

Getting started

1. Get an API key

Subscribe on RapidAPI. There is a free tier: https://rapidapi.com/happyendpoint/api/priceline-api-pro

2. Find a location ID

Hotel search takes a location ID rather than a city name, so this is the first call you make.

curl "https://priceline-api-pro.p.rapidapi.com/auto-complete-location?query=new%20york" \
  -H "x-rapidapi-host: priceline-api-pro.p.rapidapi.com" \
  -H "x-rapidapi-key: YOUR_RAPIDAPI_KEY"

3. Search hotels

curl "https://priceline-api-pro.p.rapidapi.com/hotels-search?locationID=3000016152&date_checkin=03-05-2026&date_checkout=03-07-2026&adult_person_count=2&room_count=1&currency=USD&sort_order=HDR" \
  -H "x-rapidapi-host: priceline-api-pro.p.rapidapi.com" \
  -H "x-rapidapi-key: YOUR_RAPIDAPI_KEY"

Python

import os

import requests

HOST = "priceline-api-pro.p.rapidapi.com"
HEADERS = {
    "x-rapidapi-host": HOST,
    "x-rapidapi-key": os.environ["RAPIDAPI_KEY"],
}


def get(path, **params):
    r = requests.get(
        f"https://{HOST}{path}",
        params={k: v for k, v in params.items() if v is not None},
        headers=HEADERS,
        timeout=30,
    )
    r.raise_for_status()
    return r.json()


locations = get("/auto-complete-location", query="new york")

hotels = get(
    "/hotels-search",
    locationID="3000016152",
    date_checkin="03-05-2026",     # MM-DD-YYYY
    date_checkout="03-07-2026",
    adult_person_count=2,
    room_count=1,
    currency="USD",
    sort_order="HDR",
)

JavaScript

const HOST = 'priceline-api-pro.p.rapidapi.com';

async function get(path, params = {}) {
  const url = new URL(`https://${HOST}${path}`);
  for (const [k, v] of Object.entries(params)) {
    if (v != null) url.searchParams.set(k, v);
  }

  const res = await fetch(url, {
    headers: {
      'x-rapidapi-host': HOST,
      'x-rapidapi-key': process.env.RAPIDAPI_KEY,
    },
  });
  if (!res.ok) throw new Error(`Priceline API ${res.status}`);
  return res.json();
}

const hotels = await get('/hotels-search', {
  locationID: '3000016152',
  date_checkin: '03-05-2026',
  date_checkout: '03-07-2026',
  adult_person_count: 2,
  currency: 'USD',
});

Endpoints

Base URL: https://priceline-api-pro.p.rapidapi.com

Locations

Endpoint Returns
GET /auto-complete-location Location suggestions. Returns the IDs hotel search needs
GET /advance-auto-complete-location Location suggestions with finer control over result types

Hotels

Endpoint Returns
GET /hotels-search Hotels matching dates, occupancy, and filters
GET /hotel-details Full record for one hotel
GET /hotel-room-and-price-details Room types with prices, rates, and cancellation policies
GET /hotel-reviews-by-hotelid Guest reviews for one hotel

Flights

Endpoint Returns
GET /search-flights Flight search, one-way or round trip
GET /round-trip-search-flights Round trip search

Cars

Endpoint Returns
GET /search-rental-car Rental cars by pickup and dropoff location and time

Service

Endpoint Returns
GET /status Service health

Parameter notes

Worth reading before your first search, because the formats are not uniform across the API.

Hotel dates use MM-DD-YYYY. So date_checkin=03-05-2026 means 5 March 2026. Car rental dates use YYYY-MM-DD instead, so do not assume one format throughout.

Multi-value filters are comma separated. For example star_ratings=3,3.5,4,4.5,5 or rate_option=FREE_CANCELLATION,PAY_LATER.

Car pickup locations accept coordinates or an airport code. Either pick_up_location=40.758867,-73.984877 or pick_up_location=JFK works.

Hotel search needs a locationID from autocomplete, not a city name.


Using this API from Claude, Cursor, or another MCP client

RapidAPI hosts an MCP server, so you can query this API from an AI assistant without writing any code:

{
  "mcpServers": {
    "Priceline Travel": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.rapidapi.com",
        "--header",
        "x-api-host: priceline-api-pro.p.rapidapi.com",
        "--header",
        "x-api-key: YOUR_RAPIDAPI_KEY"
      ]
    }
  }
}
Client Config path
Claude Desktop (macOS) ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows) %APPDATA%\Claude\claude_desktop_config.json
Cursor ~/.cursor/mcp.json
Claude Code .mcp.json in your project root

What people build with this

  • Hotel and flight comparison sites
  • Travel booking platforms and metasearch
  • Corporate travel dashboards
  • Price monitoring and fare alert tools
  • Travel affiliate content with live pricing
  • Itinerary planners combining hotels, flights, and cars

FAQ

Does Priceline have an official public API?

Priceline runs partner integrations, but there is no open self-serve API for general developers. This API is built and maintained by Happy Endpoint and is not affiliated with Priceline.

Is there a free tier?

Yes. RapidAPI hosts a free plan with a monthly request quota, enough to prototype against.

Why does my hotel search return nothing?

Two usual causes. Hotel dates are MM-DD-YYYY, not YYYY-MM-DD, and locationID has to come from /auto-complete-location rather than being a city name.

Can I get room-level prices, not just a nightly rate?

Yes. /hotel-room-and-price-details returns individual room types with their prices, rate options, and cancellation policies.

Can I filter by free cancellation?

Yes. Pass rate_option=FREE_CANCELLATION, optionally combined with PAY_LATER as a comma separated list.

Do you cover other travel platforms?

VRBO is in the catalogue. See happyendpoint.com/library.


Related repos


About Happy Endpoint

Happy Endpoint builds and maintains real-time data APIs for property portals, retailers, and marketplaces. All APIs are available on RapidAPI with a free tier.

Licence

MIT. See LICENSE.

About

Priceline API: real-time hotel, flight, and car rental pricing and availability data for travel applications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors