What the Hotels API does and who it's for

The Hotels API mirrors the public-facing data on Hotels.com and makes it available as a structured REST interface. Every request fetches live data directly synced with the source site — the provider explicitly states that no data is cached or stored locally. That design means you always get current pricing and availability, which matters enormously in travel where rates change constantly.

The primary audience is developers building travel aggregators, price-comparison tools, hotel booking widgets, or itinerary planners. If you need hotel inventory data without negotiating a direct partnership with a major OTA, this API provides an accessible on-ramp. With a popularity score of 9.9 out of 10 and more than 20,800 marketplace subscribers, it is one of the most widely adopted travel APIs in its category.

Active endpoints and what they return

Of the 19 listed endpoints, 9 are marked deprecated. Focus your integration on the current-generation endpoints, which span three functional areas: location search, property data, and reviews.

Location search

GET /locations/v3/search is your entry point for most workflows. Pass a query string — a city name, region, or landmark — and get back location identifiers you can feed into property queries. This is the v3 replacement for two older endpoints (/locations/v2/search and /locations/search), both of which are deprecated and should be avoided in new integrations.

Property listing and detail

POST /properties/v3/list is the core search endpoint. It accepts criteria like destination, check-in/check-out dates, guest count, and filters, then returns a list of matching properties with rate and availability data. For property-level detail, the v2 family of endpoints handles different slices of information:

  • POST /properties/v2/get-summary — headline data for a specific property (name, star rating, location, representative price)
  • POST /properties/v2/get-content — richer content such as photos, amenity lists, and facility descriptions
  • POST /properties/v2/get-offers — room-level pricing and package options for a given date range
  • GET /properties/v2/resolve-url — resolves a Hotels.com property URL to its internal identifier, useful for deep-linking or ingesting URLs from other sources

Note that several v2 list and detail endpoints (/properties/v2/list, /properties/v2/detail, /properties/list, /properties/get-details, /properties/get-hotel-photos) are deprecated. If you encounter them in older tutorials or code samples, migrate to the v3 list and the current v2 content/summary/offers split before going to production.

Reviews

POST /reviews/v3/list retrieves paginated guest reviews for a property. POST /reviews/v3/get-summary returns aggregated ratings — useful for displaying a star breakdown without loading the full review corpus. Both replace the deprecated v2 and v1 review endpoints.

Metadata

GET /v2/get-meta-data provides API-level reference data such as supported locales, currencies, and sort options. It is a good first call when building locale-aware applications that need to know which market configurations are available.

Pricing breakdown

There is no free tier. All plans are billed monthly, and the request allowances are the binding constraint for most use cases — not the per-second rate limits.

Plan Monthly cost Requests/month Rate limit
BASIC $1 500 5 req/sec
PRO $20 10,000 10 req/sec
ULTRA $100 50,000 10 req/sec
MEGA $500 1,000,000 15 req/sec

The BASIC plan at $1/month is primarily useful for prototyping. Five hundred requests disappear quickly when a single user search might involve a location lookup plus a property list call plus several detail fetches. For a production app with even modest traffic, PRO at $20/month (10,000 requests) is a more realistic starting point. ULTRA supports 50,000 requests — roughly enough for a small-to-medium travel site if you cache non-volatile data like property content on your own side. MEGA at $500/month unlocks one million requests, which suits higher-traffic aggregators or platforms running batch enrichment pipelines.

Because pricing is per-request with no overage allowance described, it is worth instrumenting your request count from day one and designing your application to batch or cache wherever the live-data requirement permits.

Latency considerations

The reported average latency is 2,211 ms. That is over two seconds per call, which is expected for an API that fetches live data on demand rather than serving from a cache — but it is a significant architectural constraint. Calling multiple endpoints sequentially in a single user-facing request could produce a sluggish experience. Practical mitigations include parallelizing independent requests (for example, fetching summary and reviews concurrently), implementing a server-side cache for content that changes infrequently (amenity lists, property descriptions, photos), and using loading states or skeleton screens in your UI. The 100% reported success rate is reassuring; the latency is the main variable to design around.

Practical use cases

  • Hotel search pages: combine locations/v3/search with properties/v3/list to build a destination-based search with real pricing.
  • Property detail pages: stitch together get-summary, get-content, and get-offers to show photos, amenities, and bookable room types.
  • Review widgets: use reviews/v3/get-summary for the aggregate score and reviews/v3/list for the text feed.
  • Price monitoring: poll get-offers on a schedule to track rate changes for specific properties — but model your request budget carefully against the plan limits.

Limitations and things to check before integrating

No free tier: you'll need to commit to at least the $1 BASIC plan to test against live data. Budget accordingly for development and staging environments — those requests count against your monthly quota.

Deprecated endpoint sprawl: nearly half the listed endpoints are deprecated. Read the endpoint list carefully and avoid building on anything marked deprecated, even if example code points there.

Live data only: because the API does not cache, you cannot replay historical pricing or perform retroactive analysis. It is purely a real-time window into current availability.

Terms of use: this API reproduces public data from Hotels.com. Before launching a commercial product, review the terms of service of both the marketplace and the underlying source to ensure your use case is permitted.

Getting started

Sign up on the marketplace and subscribe to the BASIC plan to get your API key. Make your first call to GET /v2/get-meta-data to confirm authentication and retrieve the supported locales and currencies. From there, run a GET /locations/v3/search with a sample city name, then pipe a returned location ID into POST /properties/v3/list with a test date range. That two-call sequence is the backbone of most travel search flows and will give you a realistic sense of response shapes and latency before you architect more complex request pipelines.