Discover/Hotels API
live

Hotels APIhotels.com

Search hotels by destination and dates, get room availability, retrieve property details, and discover popular destinations via the Hotels.com API.

Endpoint health
verified 5d ago
autocomplete_destination
search_hotels
get_popular_destinations
3/3 passing latest checkself-healing
Endpoints
5
Updated
21d ago

What is the Hotels API?

The Hotels.com API gives developers access to 5 endpoints covering hotel search, room availability, property details, destination autocomplete, and popular destination lists. Starting with autocomplete_destination, you can resolve a free-text query like "Istanbul" into a structured region ID, then pass that ID directly to search_hotels to retrieve up to 20 hotel listings with nightly pricing, guest ratings, review summaries, and direct booking URLs.

Try it
Search keyword for destination lookup (e.g. 'Istanbul', 'New York', 'Paris')
api.parse.bot/scraper/fa8d38aa-36ba-45d4-8191-f30d2d2e3c46/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/fa8d38aa-36ba-45d4-8191-f30d2d2e3c46/autocomplete_destination?query=Paris' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace hotels-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.hotels_com_api import HotelsCom, Destination, PopularDestination, Hotel

client = HotelsCom()

# Step 1: List popular destinations to get region IDs
for dest in client.populardestinations.list():
    print(dest.name, dest.id)

# Step 2: Autocomplete a destination to find its region ID
for result in client.destinations.search(query="Istanbul"):
    print(result.name, result.type, result.lat, result.long)

# Step 3: Search hotels in Paris for upcoming dates
for hotel in client.hotels.search(
    query="Paris",
    region_id="2734",
    start_date="2026-07-01",
    end_date="2026-07-04",
    adults=2,
    rooms=1,
):
    print(hotel.name, hotel.price_per_night, hotel.total_price, hotel.location)
All endpoints · 5 totalmissing one? ·

Suggest destination names as a user types a query string. Returns matching cities, airports, neighborhoods, and points of interest with their region IDs, coordinates, and types. Use the returned region ID as input to search_hotels.

Input
ParamTypeDescription
queryrequiredstringSearch keyword for destination lookup (e.g. 'Istanbul', 'New York', 'Paris')
Response
{
  "type": "object",
  "fields": {
    "destinations": "array of location objects each containing id, name, type, lat, long"
  },
  "sample": {
    "data": {
      "destinations": [
        {
          "id": "2734",
          "lat": "48.853564",
          "long": "2.348095",
          "name": "Paris, France",
          "type": "CITY"
        },
        {
          "id": "6200422",
          "lat": "48.862383",
          "long": "2.339074",
          "name": "Paris City Center, Paris, France",
          "type": "NEIGHBORHOOD"
        }
      ]
    },
    "status": "success"
  }
}

About the Hotels API

Searching Hotels

The search_hotels endpoint accepts a region_id (resolved via autocomplete_destination or get_popular_destinations), a destination name, check-in and check-out dates in YYYY-MM-DD format, and optional rooms and adults counts. Each result in the hotels array includes id, name, location, rating, reviews_text, price_per_night, total_price, image_url, and a url linking to the Hotels.com listing. Results are sorted by recommendation and capped at 20 properties per call.

Resolving Destinations

autocomplete_destination takes a partial query string and returns an array of location objects, each with an id, name, type (city, airport, neighborhood, or point of interest), and lat/long coordinates. The id field maps directly to the region_id parameter in search_hotels. get_popular_destinations provides a curated list of destination names and IDs with no input required, useful for bootstrapping destination pickers without a user query.

Property-Level Data

Once you have a hotel id from search results, get_hotel_details returns a full property detail object. get_hotel_rooms accepts the same property_id along with check-in/check-out dates and optional occupancy parameters, returning an array of available room types with associated pricing. Both endpoints return a status field alongside the data payload.

Reliability & maintenanceVerified

The Hotels API is a managed, monitored endpoint for hotels.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hotels.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official hotels.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a hotel price comparison tool using search_hotels nightly rates and total_price fields across multiple destinations.
  • Power a destination autocomplete input with region IDs from autocomplete_destination for accurate hotel search results.
  • Display a curated 'popular destinations' widget using get_popular_destinations without requiring user input.
  • Show per-room pricing and availability for a selected property using get_hotel_rooms with specific check-in/check-out dates.
  • Aggregate guest ratings and reviews_text from search_hotels results to rank hotels by traveler sentiment.
  • Deep-link users directly to Hotels.com booking pages using the url field returned in hotel listings.
  • Seed a travel app's destination database with region IDs and coordinates from autocomplete_destination results.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Hotels.com have an official developer API?+
Hotels.com does not publicly offer a standalone developer API for general use. Affiliate access is available through the Expedia Group Affiliate Program (affiliate.expediagroup.com), but it requires a partnership agreement and is not open to all developers.
What does search_hotels actually return for each property?+
Each hotel object in the response includes id, name, location, rating (numeric guest score), reviews_text (a short summary label), price_per_night, total_price for the stay, image_url, and a direct url to the Hotels.com listing. The endpoint returns up to 20 results sorted by Hotels.com's recommendation order.
Does the API return more than 20 hotels per search or support pagination?+
search_hotels returns up to 20 hotel listings per request and does not currently expose pagination parameters. The API covers destination search, property details, and room availability. You can fork it on Parse and revise to add offset or page parameters if broader result sets are needed.
Are hotel reviews or individual review text available through the API?+
The search_hotels endpoint returns a reviews_text summary label and a numeric rating per property, but individual user reviews are not currently exposed. The API covers search listings, room availability, and property details. You can fork it on Parse and revise to add an endpoint that retrieves per-review content for a property.
How do I get a region_id to use with search_hotels?+
Call autocomplete_destination with a query string such as 'Paris' or 'JFK'. Each returned destination object includes an id field — this is the region_id you pass to search_hotels. Alternatively, get_popular_destinations returns a ready-made list of destination names and IDs requiring no query input.
Page content last updated . Spec covers 5 endpoints from hotels.com.
Related APIs in TravelSee all →
tripadvisor.com API
Search for travel destinations and discover hotels with detailed information like ratings, reviews, and amenities. Get comprehensive place details to help plan your perfect trip and compare accommodation options.
orbitz.com API
Search for hotels and destinations on Orbitz, then view detailed property information including pricing and amenities. Get typeahead location suggestions as you type to quickly find your travel destination.
hotelscan.ai API
Search and compare hotels with detailed guest reviews, room availability, and pricing information across flexible dates. Find similar properties, get autocomplete suggestions for locations, and access comprehensive hotel details all in one place.
travelocity.com API
Search for travel destinations and browse hotel listings on Travelocity. Compare options by location, dates, and availability to find and book accommodation.
agoda.com API
agoda.com API
expedia.com API
Search for hotels and flights across Expedia while viewing detailed property information to compare prices and amenities for your travel plans. Get comprehensive travel options all from one integration without manually browsing the website.
hilton.com API
Search for Hilton hotels worldwide by destination with autocomplete suggestions for locations, or convert addresses into exact coordinates. Find your ideal Hilton accommodation and get location details all in one place.
trivago.com.br API
Search hotels across Trivago by destination, dates, and guest count. Filter by price range and currency, get autocomplete suggestions for locations, and retrieve detailed hotel information including star ratings, guest reviews, and pricing from multiple booking sites.