Hotels.com API: The Official Routes, the Wrappers, and What Actually Works
This guide maps every Hotels.com API route: the Expedia Group affiliate and partner programs, the marketplace wrappers, and the working path to rates and reviews as JSON.
Table of contents

There is no Hotels.com API.
Hotels.com is an Expedia Group brand and has never run its own developer program: every official integration is an Expedia Group program, and every "Hotels.com API" listed on an API marketplace is an unofficial wrapper around the public website.
If you searched for a Hotels.com API to pull rates, availability, or guest reviews, that changes the question.
The data you're after is Expedia Group inventory, and the practical route runs through Expedia's surfaces rather than through Hotels.com.
This guide maps the official routes and who they're for, what the marketplace listings actually are, and the working path to Hotels.com data as JSON, with a Python example that runs end to end.
Key Takeaways
- Hotels.com has no developer API of its own. As an Expedia Group brand, its official doors are the group's: the Travel Creator affiliate program, the affiliate shopping APIs, and the Rapid API for booking partners. Our Expedia Rapid API guide covers the partner route in depth.
- The marketplace "Hotels.com API" listings are unofficial. They scrape the public site, bill per request, and break when the site changes.
- Hotels.com and Expedia share supply and reviews. Same properties, same verified-review pool, so Expedia-keyed data covers the Hotels.com job.
- The working route is two calls: resolve the hotel to its Expedia Group property ID, then pull rates and reviews by that ID. The Python below does both.
- Booking still needs a partnership. Reading data is open; transacting rooms is Rapid's job, and nothing else here does it.
Why There's No Hotels.com API

Hotels.com sits alongside Expedia and Vrbo in the Expedia Group brand family, and the two hotel brands sell the same lodging supply behind different storefronts.
The review pool is shared too: Expedia folded Hotels.com's verified reviews into its own collection years ago, and Rapid's documentation describes its reviews as coming from Expedia Group travelers who have recently completed a stay.
A concrete check: at the time of writing, the Aloft on Chicago's Magnificent Mile shows 8.6/10 on both sites, from 3,365 reviews on Hotels.com and 3,349 on Expedia.
The gap is a few days of new reviews, and the pool is the same.
That's why a dedicated Hotels.com API never appeared.
From the group's side there's one lodging platform with several storefronts, and developer access is handled at the group level.
The GitHub angle deserves a line, since "hotels com api github" is a common search: the hotelsdotcom GitHub organization is the company's engineering team open-sourcing internal tooling.
Useful projects, none of them a way to read hotel data.
The Official Routes and Who They're For

| Route | Who It's For | What You Get |
|---|---|---|
| Expedia Group Travel Creator program | Bloggers, creators, publishers | Affiliate links, widgets, banners, commissions on bookings |
| Affiliate shopping APIs (Lodging Listings) | Approved affiliates with traffic | Property offers, prices, and deeplinks that send the booking to an Expedia Group site |
| Rapid API | Companies that sell travel | Content, rates, availability, and booking under a commercial agreement |
| Partner Central and connectivity | Hotels and their PMS vendors | Managing your own property's listing |
The Travel Creator program is the one self-serve door.
Anyone can apply, applications are reviewed in minutes, and it explicitly covers Expedia, Hotels.com, and Vrbo.
What it hands you is monetization tooling (a link builder, widgets, a Travel Shops storefront paying up to 4% on qualifying transactions) and no data endpoint.
The affiliate shopping APIs are the closest thing to a Hotels.com developer API that Expedia Group publishes.
The Lodging Listings API searches Expedia Group inventory by keyword, region, coordinates, or hotel ID and returns up to 1,000 offers with prices and deeplinks.
Credentials are a Travel Redirect API key and password issued on the partner side rather than through a signup form, so expect an application and a conversation about your traffic before anything runs.
Rapid is the booking-partner API, and the guide linked above covers who qualifies.
The short version: revenue projections, not data projects.
Reading availability, prices, or reviews for properties you don't operate, at market scale, sits outside all four routes.
That's the job the rest of this guide is about.
The Marketplace "Hotels.com API" Listings

Search the phrase and the top result is a listing on an API marketplace, followed by more of the same.
None of them are Expedia Group products.
They're scraper wrappers: the vendor renders Hotels.com pages on their own infrastructure and resells the parsed output per request.
The "Hotels.com API key" people search for is the marketplace's key, tied to that vendor's plan, and the searches for a "hotelscom scraper api" describe the same products more honestly.
Two points in their favor: they exist, and for a weekend project or a class assignment they're often good enough.
Two points against: they inherit every layout change Hotels.com ships, with a fix arriving whenever the maintainer gets to it, and the schema is whatever the wrapper's author chose, which can shift without a changelog.
The failure modes match the per-run tool class our hotel data scraper comparison documents.
Getting Hotels.com Data: The Expedia Group Route

Third-party hotel data APIs treat the Expedia Group platform as one source: resolve the hotel once, then read the shared rates and reviews under a single key.
The Expedia API from StayAPI covers the read side, room rates and guest reviews by property ID, and the same key includes a meta-search endpoint that turns a hotel name into its links on Hotels.com, Expedia, and the other booking sites.
That resolve step is the hotel-matching problem our hotel mapping guide explains in depth.
Here it's three lines, and the whole flow in Python looks like this:
import re
import requests
BASE = "https://api.stayapi.com/v1"
HEADERS = {"x-api-key": "YOUR_API_KEY"}
# 1. Resolve the hotel name to its booking-site links
links = requests.get(
f"{BASE}/meta/search",
params={"hotel_name": "Aloft Chicago Mag Mile", "location": "Chicago"},
headers=HEADERS,
).json()["links"]
print(links["hotels_com"]) # https://www.hotels.com/ho864960480/aloft-chicago-mag-mile-...
property_id = re.search(r"\.h(\d+)\.", links["expedia"]).group(1) # "26998765"
# 2. Rates for the shared Expedia Group inventory
rates = requests.get(
f"{BASE}/expedia/hotel/rates",
params={"property_id": property_id, "check_in": "2026-10-06",
"check_out": "2026-10-08", "adults": 2},
headers=HEADERS,
).json()
print(rates["lowest_price_amount"], rates["sold_out"]) # 1094.0 False
# 3. Newest reviews from the shared pool
reviews = requests.get(
f"{BASE}/expedia/hotel/reviews",
params={"property_id": property_id, "sort": "recent_desc"},
headers=HEADERS,
).json()
for r in reviews["reviews"]:
print(r["rating"], r["review_date"], r["text"][:60])
The meta-search response (truncated):
{
"success": true,
"hotel_name": "Aloft Chicago Mag Mile",
"links": {
"hotels_com": "https://www.hotels.com/ho864960480/aloft-chicago-mag-mile-chicago-united-states-of-america/",
"expedia": "https://www.expedia.com/Chicago-Hotels-Aloft-Chicago-Mag-Mile.h26998765.Hotel-Information",
"booking_com": "https://www.booking.com/hotel/us/aloft-chicago-mag-mile.html",
"marriott": "https://www.marriott.com/en-us/hotels/chiaa-aloft-chicago-mag-mile/overview/",
...
}
}
The reviews response (truncated):
{
"property_id": "26998765",
"reviews": [
{
"rating": "10/10 Excellent",
"text": "The room was great and the staff were super helpful! Centrally located which was really nice.",
"reviewer_name": "Breehanna",
"review_date": "Sep 3, 2026",
"owner_response": null
},
{
"rating": "8/10 Good",
"text": "Good location, clean rooms, friendly staff",
"reviewer_name": "Madeline",
"review_date": "Sep 3, 2026",
"owner_response": null
}
],
"has_more": true
}
| Field | Description |
|---|---|
links.hotels_com |
The property's Hotels.com page, for spot checks |
links.expedia |
Carries the Expedia Group property ID (.h26998765.) |
lowest_price_amount |
Cheapest rate for the stay, as a number |
reviews[].rating |
Expedia Group's 10-point score with its label |
has_more |
Pagination flag for the review pull |
Two limits, stated plainly.
The rate is Expedia's display of the shared inventory; Hotels.com's own page can show a brand-specific promotion on the same room, so treat the number as the Expedia Group rate and use the hotels_com link when you need the brand's exact screen.
And there's no group-wide search endpoint here, so your property list comes from names or URLs you already have rather than from a city-wide query.
Full parameters are in the meta-search endpoint documentation and the Expedia reviews endpoint documentation.
What Each Route Covers
| You Need | Creator program | Affiliate shopping APIs | Rapid | Marketplace wrappers | Data API (StayAPI) |
|---|---|---|---|---|---|
| Signup | Self-serve | Partner-issued | Partner application | Self-serve | Self-serve, free tier |
| Rates for arbitrary hotels | No | Yes, with deeplinks | Partners only | Yes, fragile | Yes, by property ID |
| Review text | No | No | Partners only | Sometimes | Yes, sortable |
| Booking | Via links | Via deeplinks | Yes | No | No |
| Maintenance | None | None | None | Ongoing | None |
One row in Rapid's favor: if you need to sell rooms, it's the only column that does the job.
Getting Started
- If you're monetizing travel traffic, apply to the Travel Creator program linked above. That's the right door for links and widgets.
- For rates and reviews data, sign up at stayapi.com. Free tier, no credit card, no partner application.
- Run the Python above with your own hotel names, or skip the resolve step if you already hold Expedia property URLs.
- Schedule the calls and pipe the JSON into Google Sheets, Looker Studio, Power BI, or no-code platforms like N8N and Make.com. For portfolio-scale monitoring across Expedia Group and the other booking sites, book a demo call.
FAQ
Does Hotels.com have an API?
No.
Hotels.com is an Expedia Group brand, and developer access runs through Expedia Group programs: the Travel Creator affiliate program, the affiliate shopping APIs, and the Rapid API for booking partners.
Third-party data APIs cover the read side.
How do I get a Hotels.com API key?
There's no Hotels.com-issued key.
Affiliate credentials come from Expedia Group's creator and partner programs, marketplace keys belong to the wrapper vendor, and data-API keys (StayAPI's included) are issued on signup.
Is there a free Hotels.com API?
The Travel Creator program is free to join and provides links rather than data.
Marketplace wrappers and data APIs typically offer free evaluation tiers; StayAPI's covers the first requests without a card.
Is the Hotels.com API the same as the Expedia API?
For data purposes, yes.
Hotels.com and Expedia sell the same Expedia Group supply and draw on the same verified review pool, so an Expedia property ID reaches the Hotels.com property too.
Booking integrations are separate agreements.
Where is the Hotels.com API documentation?
There's none from Hotels.com.
Expedia Group's developer hub documents Rapid and the affiliate shopping APIs, and third-party data APIs document their own Expedia endpoints, which is where the Hotels.com data job gets done.
Ready to simplify your hotel data?
Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.