Accor API endpoint
Searches Accor's anonymous public hotel catalog by text, hotel code, or latitude/longitude radius. Results contain static property identity and broad location metadata plus catalog relevance/distance; contact details, precise hotel coordinates, payment, loyalty, media, rates, rooms, reviews, and booking data are excluded.
/accor/catalog/hotelsUse exactly one selector:
query (optional): destination or hotel text, at least two characters.hotel_id (optional): four-character Accor hotel code such as A7L5.latitude and longitude (optional): search-center coordinates; supply both.radius_km (optional): 0.1 through 100, default 10 for coordinate searches.Pagination parameters:
offset (optional): zero-based result offset, 0 through 300 (default 0).limit (optional): 1 through 50 (default 20).The response contains static catalog identity, broad location, published ratings, relevance/distance, check-in/out times, amenity codes, and spoken languages. Contact details, exact hotel coordinates, payment methods, loyalty state, media, rates, rooms, reviews, and booking data are omitted.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| hotel_id | 20 | |
| name | 20 | “Raffles London at The OWO” and 19 other values |
| brand | 20 | “RAF” and 11 other values |
| chain | 20 | “RAF” and 11 other values |
| lodging | 20 | HTL in all 20 |
| type | 20 | MG (17), FR (3) |
| status | 20 | OPEN in all 20 |
| city | 20 | LONDON in all 20 |
| country | 20 | United Kingdom in all 20 |
| country_code | 20 | |
| source_url | 20 | all.accor.com |
| description | 20 | median 482 characters |
| stars | 20 | 3 to 5, median 4 |
| rating | 15 | 4.2 to 4.9, median 4.6 |
| review_count | 15 | 996 to 4,453, median 2,171 |
| distance_km | 20 | 0.22 to 4.03, median 2 |
| check_in_time | 20 | 15:00 (19), 14:00 (1) |
| check_out_time | 20 | 12:00 (18), 11:00 (2) |
| price_range | 20 | €€€ (8), €€ (6), €€€€ (4) and 1 more |
| free_amenities | 20 | median 14 entries |
| paid_amenities | 16 | median 1 entry |
| spoken_languages | 18 | median 7 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Destination or hotel text (at least two characters) | London | |
| hotel_id | string | No | Four-character Accor hotel code | A7L5 | |
| latitude | number | No | Search-center latitude (-90 to 90) | 51.5072 | |
| longitude | number | No | Search-center longitude (-180 to 180) | -0.1276 | |
| radius_km | number | No | 10 for coordinate searches | Search radius in kilometers (0.1 to 100; defaults to 10 for coordinate searches) | 10 |
| offset | integer | No | Zero-based result offset (0 to 300) | 0 | |
| limit | integer | No | Results per request (1 to 50) | 20 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/accor/catalog/hotels?query=coffee&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "London",
"offset": 0,
"limit": 20,
"total": 50,
"hotels": [
{
"hotel_id": "B1C0",
"name": "Raffles London at The OWO",
"brand": "RAF",
"lodging": "HTL",
"status": "OPEN",
"city": "London",
"country": "United Kingdom",
"country_code": "GB",
"source_url": "https://all.accor.com/hotel/B1C0/index.en.shtml",
"stars": 5,
"rating": 4.7,
"review_count": 1234,
"distance_km": 0.2173,
"check_in_time": "15:00",
"check_out_time": "12:00",
"free_amenities": [
"wifi",
"breakfast"
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/accor.catalogResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | accor.CatalogResponse | No | ||||
| data.hotel_id | string | No | ||||
| data.hotels | array | No | ||||
| data.hotels[].brand | string | No | ||||
| data.hotels[].chain | string | No | ||||
| data.hotels[].check_in_time | string | No | ||||
| data.hotels[].check_out_time | string | No | ||||
| data.hotels[].city | string | No | ||||
| data.hotels[].country | string | No | ||||
| data.hotels[].country_code | string | No | ||||
| data.hotels[].description | string | No | ||||
| data.hotels[].distance_km | number | No | ||||
| data.hotels[].free_amenities | array | No | ||||
| data.hotels[].hotel_id | string | No | ||||
| data.hotels[].lodging | string | No | ||||
| data.hotels[].name | string | No | ||||
| data.hotels[].paid_amenities | array | No | ||||
| data.hotels[].price_range | string | No | ||||
| data.hotels[].rating | number | No | ||||
| data.hotels[].review_count | integer | No | ||||
| data.hotels[].source_url | string | No | ||||
| data.hotels[].spoken_languages | array | No | ||||
| data.hotels[].stars | integer | No | ||||
| data.hotels[].status | string | No | ||||
| data.hotels[].type | string | No | ||||
| data.limit | integer | No | ||||
| data.location | accor.CatalogLocation | No | ||||
| data.location.latitude | number | No | ||||
| data.location.longitude | number | No | ||||
| data.location.radius_km | number | No | ||||
| data.offset | integer | No | ||||
| data.query | string | No | ||||
| data.total | integer | 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 GET "https://api.crawlora.net/api/v1/accor/catalog/hotels?query=coffee&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"