Hotel rate monitoring and price comparison
Use Hotels.com endpoints to turn hotel rate monitoring and price comparison into repeatable API requests with documented inputs and JSON responses.
Turn Hotels.com into structured JSON — date-bound hotel search with per-night and per-stay prices, one property's live rates and room offers, the guest-review overview and paginated review archive, and static property metadata, all credential-free.
Search Hotels.com by destination and dates, then pull live per-night rates, room offers, guest reviews, and property detail as structured JSON.
Endpoint families
6
Documented params
14
Examples
6
Live catalog snapshot
Active endpoints
7
Methods
GET, POST
Required params
14
Schema refs
7
{
"platform": "Hotels.com",
"endpoint": "hotels-autocomplete",
"method": "GET",
"path": "/hotels/autocomplete",
"auth": "apiKey"
}Use cases
Search Hotels.com by destination and dates, then pull live per-night rates, room offers, guest reviews, and property detail as structured JSON.
Use Hotels.com endpoints to turn hotel rate monitoring and price comparison into repeatable API requests with documented inputs and JSON responses.
Use Hotels.com endpoints to turn destination-level inventory and pricing research into repeatable API requests with documented inputs and JSON responses.
Use Hotels.com endpoints to turn guest-review analysis and reputation tracking into repeatable API requests with documented inputs and JSON responses.
Use Hotels.com endpoints to turn travel content aggregation into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Hotels.com endpoint catalog — 7 endpoints, 14 documented request parameters, and 7 published response schemas — the same catalog Docs and Playground run against.
7 documented Hotels.com endpoints, grouped into 6 request families — Reviews, Autocomplete and Offers, plus 3 more.
14 request parameters are documented across those Hotels.com endpoints, 14 of them required — the full input contract is public before you write any integration code.
6 of the 7 Hotels.com endpoints ship a recorded example response, and 7 carry a documented response schema — you can code against the real JSON before the first request.
Hotels.com endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
7 hosted MCP tools back the Hotels.com endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/hotels/reviews
/hotels/autocomplete
/hotels/offers
/hotels/property
/hotels/rates
/hotels/search
Endpoint catalog
/hotels/autocompleteReturns anonymous Hotels.com search-box suggestions for a partial destination or property name. Availability and prices are not included.
Response notes
Returns anonymous destination and property suggestions from the Hotels.com search box. A valid no-match response has an empty `suggestions` array. Availability and prices are not included. ```json { "code": 200, "msg": "OK", "data": { "query": "New York", "suggestions": [ { "type": "SearchLocationBasicItem", "geo_type": "CITY", "region_id": "178293", "primary_text": "New York", "location_full_name": "New York, NY, United States", "latitude": 40.7128, "longitude": -74.006 } ] } } ```
MCP tool hotels_autocomplete
/hotels/offersReturns the public room/unit offer summaries shown for one Hotels.com property and date range, including room labels and non-transactional offer messages. Booking, checkout, payment, and reservation tokens are never returned. property_id is the numeric global property id from a Search response.
MCP tool hotels_offers
/hotels/propertyReturns public static metadata from one canonical Hotels.com property page, including name, address, rating, images, and amenities. Date-bound availability, prices, booking, and review content are excluded.
Response notes
Returns public static property metadata. Date-bound availability, prices, booking, and review content are excluded. ```json { "code": 200, "msg": "OK", "data": { "property": { "id": "107229", "url": "https://www.hotels.com/ho107229/hilton-san-francisco-financial-district-san-francisco-united-states-of-america/", "name": "Hilton San Francisco Financial District", "address": { "locality": "San Francisco", "region": "California", "country": "US" }, "guest_rating": 8.4, "review_count": 1234, "amenities": ["Free WiFi", "Fitness center"] } } } ```
MCP tool hotels_property
/hotels/ratesReturns one Hotels.com property's date-bound rates and availability: the same normalized property card Search returns, with the live per-night and per-stay prices Hotels.com shows for the requested dates. property_id is the numeric global property id from a Search response's properties[].id; it is distinct from the legacy /ho<id>/ URL id.
Response notes
Returns one property's date-bound rates and availability as the same normalized property card `/hotels/search` returns, with the live `price` (per-stay total), `strikeout_price`, and `nightly_price` for the requested dates. `properties` normally has one entry. An unknown property id, or one with no rates for the requested dates, returns `404`. ```json { "code": 200, "msg": "OK", "data": { "property_id": "19681371", "check_in": "2026-09-10", "check_out": "2026-09-11", "properties": [ { "id": "19681371", "name": "Pod Times Square", "url": "https://www.hotels.com/ho630803872/pod-times-square-new-york-united-states-of-america/", "review_score": 9.2, "review_count": 5901, "price": "$424", "strikeout_price": "$504", "nightly_price": "$369 nightly", "thumbnail_url": "https://images.trvl-media.com/lodging/..." } ] } } ```
MCP tool hotels_rates
/hotels/reviewsReturns one Hotels.com property's review overview: the overall rating (0-10) with its descriptive label, the per-category sub-ratings (cleanliness, service, amenities, and so on), and a bounded set of highlighted guest reviews with reviewer, date, rating label, text, and verified-stay flag. property_id is the numeric global property id from a Search response's properties[].id. This mirrors the property page's Guest reviews section; the full paginated review archive is not exposed.
Response notes
Returns the property's review overview: `overall_rating` on the 0-10 scale as displayed (e.g. `9.2/10`), a `superlative` label (e.g. `Wonderful`), per-category sub-ratings in `categories`, and a bounded set of highlighted guest reviews in `reviews` (reviewer, date, `8/10 Very good`-style rating label, message, and a `verified` flag). This mirrors the property page's Guest reviews section; the full paginated review archive is not exposed. An unknown property id returns `404`. ```json { "code": 200, "msg": "OK", "data": { "property_id": "19681371", "overall_rating": "9.2/10", "superlative": "Wonderful", "categories": [ {"name": "Cleanliness", "score": "9.2"}, {"name": "Amenities", "score": "8.4"}, {"name": "Service", "score": "9.2"} ], "reviews": [ { "reviewer_name": "Sheila", "date": "Aug 16, 2026", "rating_label": "8/10 Very good", "message": "Good 1 day stay", "verified": true } ] } } ```
MCP tool hotels_reviews
/hotels/reviews/archiveReturns one page of public guest reviews for a Hotels.com property, including reviewer, date, traveler type, rating label, title, and message. Use page and page_size to walk the archive; the response reports whether another page is available. property_id is the numeric global property id from a Search response's properties[].id. Booking, account, and private review data are not included.
Response notes
Returns one page of public guest reviews and `has_more`, which indicates that Hotels.com advertises another page for the same property and stay criteria. Use a later `page` value to continue. The endpoint excludes booking, account, payment, and private review data. ```json { "code": 200, "msg": "OK", "data": { "property_id": "19681371", "page": 1, "page_size": 10, "has_more": true, "reviews": [ { "id": "6a58fc8bac9dc27290ad8704", "reviewer_name": "Shulamit", "date": "Jul 16, 2026", "traveler_type": "Solo traveler", "rating_label": "10/10 Exceptional", "message": "Very convenient location and decent rooms." } ] } } ```
MCP tool hotels_reviews_archive
/hotels/searchReturns a page of date-bound Hotels.com hotel search results for either a free-text destination or a numeric Hotels.com region_id: normalized property cards with per-night and per-stay prices, review score and count, location, thumbnail, amenities, and promotional badges. Provide exactly one of query or region_id; region_id skips destination typeahead resolution. Prices are the live rates Hotels.com shows for the requested check-in and check-out dates.
Response notes
Returns a page of date-bound search results with the live per-night and per-stay prices Hotels.com shows for the requested dates. Price fields are display strings: `price` is the per-stay total (`LEAD`), `strikeout_price` the crossed-out reference price, and `nightly_price` the per-night qualifier (e.g. `$369 nightly`). Each property's `url` is the canonical `/ho<id>/<slug>/` page (usable with `/hotels/property`) and its `id` is the numeric global property id usable with `/hotels/rates` and `/hotels/reviews`. A destination with no matches returns an empty `properties` array. ```json { "code": 200, "msg": "OK", "data": { "destination": "New York, New York, United States of America", "region_id": "2621", "check_in": "2026-09-10", "check_out": "2026-09-11", "page": 1, "properties": [ { "id": "19681371", "name": "Pod Times Square", "url": "https://www.hotels.com/ho630803872/pod-times-square-new-york-united-states-of-america/", "location": "New York", "review_score": 9.2, "review_count": 5901, "review_title": "Wonderful", "price": "$424", "strikeout_price": "$504", "nightly_price": "$369 nightly", "thumbnail_url": "https://images.trvl-media.com/lodging/...", "badges": ["Member Price $47 off"] } ] } } ```
MCP tool hotels_search
Related APIs
Travel & Hospitality
Build travel and lodging research workflows from structured Airbnb stay, room, availability, and review data.
Travel & Hospitality
Research hotels, restaurants, attractions, and destination pages from TripAdvisor with normalized listing and review endpoints.
Travel & Hospitality
Turn Expedia's Stays, Flights, and Things To Do results into structured JSON — destination search, hotel listings with pricing and reviews, flight offers, and activity search, sourced from the same API the official mobile app uses. Credential-free.
Company coverage
Expedia Group, Inc. · EXPE
Hotels.com is operated by Expedia Group, Inc. (EXPE). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the Hotels.com endpoints above.
Other Expedia Group, Inc. platforms in the catalog
How to scrape Hotels.com
Crawlora's seven Hotels.com endpoints cover the whole public funnel — destination suggestions, date-bound search, per-property rates and room offers, the review overview and archive, and static property detail — as normalized JSON with one API key and no account or signed session. Booking, checkout, payment and reservation tokens are never returned.
Send partial text to /hotels/autocomplete for Hotels.com's own search-box suggestions covering destinations (with region IDs) and property names. Prices are not included at this step; use the region ID or free-text destination in the next call.
POST /hotels/search with a free-text destination or a numeric Hotels.com region_id plus check-in and check-out dates for one page of normalized property cards: per-night and per-stay prices, review score and count, location, and the property_id you need for the per-property endpoints.
POST /hotels/rates with a property_id and dates for that property's date-bound rates and availability (the same card shape Search returns), and /hotels/offers for the public room and unit offer summaries shown for that stay, with room labels and non-transactional offer messages.
POST /hotels/reviews for the review overview — the 0–10 overall rating with its label and per-category sub-ratings (cleanliness, service, amenities and so on) plus a bounded set of highlighted reviews — and /hotels/reviews/archive to walk the full public review list with page and page_size (reviewer, date, traveler type, rating label, title, message).
POST /hotels/property with a canonical Hotels.com property page for name, address, rating, images and amenities. This endpoint is date-free static metadata; use /hotels/rates for prices and /hotels/reviews for review content.
FAQ
Resolve a destination with /hotels/autocomplete, call /hotels/search with that destination or region_id and your dates for priced property cards, then use the returned property_id with /hotels/rates, /hotels/offers, /hotels/reviews and /hotels/reviews/archive for one property's live rates, room offers and guest reviews. /hotels/property returns the static detail page. No account or signed session is required.
Yes. /hotels/search returns per-night and per-stay prices for the requested dates, and /hotels/rates returns one property's date-bound rates and availability. /hotels/offers adds the room and unit offer summaries. Only /hotels/property is static, date-free metadata.
Yes. /hotels/reviews returns the overall 0–10 rating with its descriptive label, per-category sub-ratings and a bounded set of highlighted reviews; /hotels/reviews/archive pages through the full public review list with reviewer, date, traveler type, rating label, title and message.
No. The endpoints return public search, rate, offer, review and property data only. Booking, checkout, payment and reservation tokens are never returned.
Collecting publicly accessible search results, rates, reviews and property metadata is generally permissible if you respect Hotels.com's terms of use, robots directives, rate limits, and applicable law. This is for public data you are authorized to collect, for research, monitoring and comparison rather than abusive collection.