Hotels.com API endpoint
Returns one Hotels.com property's date-bound rates and availability: the same 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.
/hotels/ratesproperty_id (required): numeric global property id, e.g. 19681371 — the properties[].id value from /hotels/search. This is distinct from the legacy /ho<id>/ URL id.check_in (required): YYYY-MM-DD check-in date.check_out (required): YYYY-MM-DD check-out date, after check_in.adults: adults, 1-9. Defaults to 2 when 0.currency: 3-letter currency code, e.g. USD. Defaults to USD.locale: locale, e.g. en_US. Defaults to en_US.Returns one property's date-bound rates and availability as the same 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.
| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| id | 1 | |
| name | 1 | “Pod Times Square” |
| url | 1 | hotels.com |
| review_score | 1 | 9 |
| review_count | 1 | 6,171 |
| review_title | 1 | “Wonderful” |
| price | 1 | “$331 total” |
| strikeout_price | 1 | “$364” |
| nightly_price | 1 | “$259 nightly” |
| thumbnail_url | 1 | images.trvl-media.com |
| badges | 1 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| request (body) | object | Yes | Rates request | ||
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/hotels/rates" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"adults":2,"check_in":"2026-09-10","check_out":"2026-09-11","currency":"USD","locale":"en_US","property_id":"19681371"}'{
"adults": 2,
"check_in": "2026-09-10",
"check_out": "2026-09-11",
"currency": "USD",
"locale": "en_US",
"property_id": "19681371"
}{
"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/..."
}
]
}
}Request schema
#/definitions/hotels.RatesOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| adults | integer | No | 2 | |||
| check_in | string | Yes | 2026-09-10 | |||
| check_out | string | Yes | 2026-09-11 | |||
| currency | string | No | USD | |||
| locale | string | No | en_US | |||
| property_id | string | Yes | 19681371 |
Response schema
#/definitions/hotels.ratesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | hotels.RatesResponse | No | ||||
| data.check_in | string | No | ||||
| data.check_out | string | No | ||||
| data.properties | array | No | ||||
| data.properties[].amenities | array | No | ||||
| data.properties[].badges | array | No | ||||
| data.properties[].id | string | No | ||||
| data.properties[].location | string | No | ||||
| data.properties[].name | string | No | ||||
| data.properties[].nightly_price | string | No | ||||
| data.properties[].price | string | No | ||||
| data.properties[].review_count | integer | No | ||||
| data.properties[].review_score | number | No | ||||
| data.properties[].review_title | string | No | ||||
| data.properties[].strikeout_price | string | No | ||||
| data.properties[].thumbnail_url | string | No | ||||
| data.properties[].url | string | No | ||||
| data.property_id | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X POST "https://api.crawlora.net/api/v1/hotels/rates" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"adults":2,"check_in":"2026-09-10","check_out":"2026-09-11","currency":"USD","locale":"en_US","property_id":"19681371"}'