Hotels.com API endpoint
Returns 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.
/hotels/propertyurl (required): a canonical HTTPS Hotels.com property URL in the form https://www.hotels.com/ho<id>/<slug>/. Query parameters and fragments are rejected.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| request (body) | object | Yes | Canonical Hotels.com property URL | ||
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/hotels/property" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.hotels.com/ho107229/hilton-san-francisco-financial-district-san-francisco-united-states-of-america/"}'{
"url": "https://www.hotels.com/ho107229/hilton-san-francisco-financial-district-san-francisco-united-states-of-america/"
}{
"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"
]
}
}
}Request schema
#/definitions/hotels.PropertyOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| url | string | Yes | https://www.hotels.com/ho107229/hilton-san-francisco-financial-district-san-francisco-united-states-of-america/ |
Response schema
#/definitions/hotels.propertyResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | hotels.PropertyResponse | No | ||||
| data.property | hotels.Property | No | ||||
| data.property.address | hotels.Address | No | ||||
| data.property.address.country | string | No | ||||
| data.property.address.locality | string | No | ||||
| data.property.address.postal_code | string | No | ||||
| data.property.address.region | string | No | ||||
| data.property.address.street_address | string | No | ||||
| data.property.amenities | array | No | ||||
| data.property.description | string | No | ||||
| data.property.guest_rating | number | No | ||||
| data.property.id | string | No | ||||
| data.property.images | array | No | ||||
| data.property.latitude | number | No | ||||
| data.property.longitude | number | No | ||||
| data.property.name | string | No | ||||
| data.property.review_count | integer | No | ||||
| data.property.star_rating | number | No | ||||
| data.property.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/property" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.hotels.com/ho107229/hilton-san-francisco-financial-district-san-francisco-united-states-of-america/"}'