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 descriptionsPOST /properties/v2/get-offers— room-level pricing and package options for a given date rangeGET /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/searchwithproperties/v3/listto build a destination-based search with real pricing. - Property detail pages: stitch together
get-summary,get-content, andget-offersto show photos, amenities, and bookable room types. - Review widgets: use
reviews/v3/get-summaryfor the aggregate score andreviews/v3/listfor the text feed. - Price monitoring: poll
get-offerson 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.