How to use it?
HTTP Methods
The API is accessible only through the Https protocol and only accepts HTTP GET requests.
It's made to retrieve information only – and not to modify it in any way.
UAT base URL:
"https://rec-api.accor.com/catalog/"
PRO base URL:
"https://api.accor.com/catalog/"
UAT Example: "https://rec-api.accor.com/catalog/v1/hotels?q=paris
HTTP Response codes
We use conventional HTTP response codes to indicate the success or failure of an API request.
- Codes in the 2xx range indicate success.
- Codes in the 4xx range indicate an error.
- Codes in the 5xx range indicate an server error.
Some 4xx errors that could be handled programmatically include an error code that briefly explains the error reported.
Squiggly Filter
Our API supports Squiggly, the Squiggly Filter is a Jackson JSON PropertyFilter, which selects properties of an object/list/map using a subset of the Facebook Graph API filtering syntax.
The easiest way to use this feature is to filter fields on the querystring like so:
- ?q=paris&fields=results.hotel.id,results.hotel.name
HTTP ACCEPT-LANGUAGE
Our API supports, with certain qualifications, the ability to specify languages as part of an HTTP request, using the ACCEPT-LANGUAGE HTTP header. The REFERENTIAL API honors this header where possible, selecting a language from the ACCEPT-LANGUAGE header and returning messages in that language.
When the ACCEPT-LANGUAGE header contains no language or a language that the API can't support, messages are returned in a default language, in this case it will be English.
Rules
Rules embeded in the API
- For a destination if there isn't enought results, we will proceed to an enlargement of the zone (X3).
- In the response you will find the information if the auto-enlarge have been done or not.
- It's possible to desactivate the auto-enlarge feature with the param "enlargementAllowed": false
- You can force the enlargement with the param "enlarge": true (X3)
- If the initial search return no hotels, even after the auto-enlarge, a radius search of 30 km will be done.
- If you are searching for a country, only the hotels of the searched country will be returned in the response.
- Only the hotels with a status OPEN or PRE_OPENING are returned
Example
Using CATALOG Accommodation
This service will provide you with the main informations available for all the Accor hotel. You can find the labels of the codes used in this service in the ACCOR REFERENTIAL API.
The response of BBOX, RADIUS, IDs or DESTINATIONS will all have almost the same answer contract
- "place" node will provide informations about the geographical research you have done
{
"place": {
"id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"type": "political",
"label": "Paris, France",
"enlargement": false,
"searchBox": {
"bottomLeft": {
"lng": "2.162769",
"lat": "48.79393"
},
"topRight": {
"lng": "2.531351",
"lat": "48.923788"
},
"boxCenter": {
"lng": "2.3522219",
"lat": "48.856614"
}
}
},
- "statistics" will summarize the statistics of the research you have done
{
"statistics": {
"hotel": {
"total": 247,
"brand": {
"JOE": 2,
"TWF": 1,
"MSH": 2,
"ADG": 18,
"SUI": 6,
"PUL": 4,
"MGA": 4,
"IBB": 23,
"TRI": 1,
"SOF": 4,
"IBH": 52,
"NOV": 17,
"RAF": 1,
"MGS": 1,
"GRE": 1,
"IBS": 39,
"MER": 46,
"HOF": 6,
"SAM": 2,
"ADA": 17
},
"lodging": {
"HTL": 211,
"APT": 36
},
"rating": {
"star": {
"0": 1,
"2": 25,
"3": 100,
"null": 33,
"4": 78,
"5": 10
},
"tripadvisor": {
"2": 5,
"3": 115,
"null": 9,
"4": 116,
"5": 2
}
},
"label": {
"extended_stay": 49,
"haoke": 26,
"fastcom": 244,
"asfst": 149,
"suite_night_upgrade": 13
},
"loyalty": {
"advantageAllowed": 216,
"burnAllowed": 216,
"earnAllowed": 216,
"huazhuRewards": 0,
"memberRate": 235,
"status": {
"participating_hotel": 216,
"partner_hotel": 0,
"partner_hotel_huazhu": 0,
"non_participating": 30
}
},
"amenity": {
"parking": 172,
"baby_sitting": 32,
"air_conditioning": 178,
"hammam": 2,
"child_facilities": 17,
"tea_machine": 35,
"golf": 8,
"bar": 155,
"wheelchair_access": 197,
"laundry": 122,
"fitness": 18,
"sauna": 3,
"meeting_rooms": 96,
"massage": 3,
"kitchen": 40,
"pet": 18,
"coffee_machine": 6,
"wifi": 245,
"spa": 7,
"restaurant": 82,
"pool": 7,
"hearing_room": 14,
"convention_center": 7,
"electric_charging_terminal": 7,
"tennis": 15,
"business_center": 9,
"shuttle": 32,
"non_smoking": 208,
"iron": 155,
"privative_bathroom": 202
}
}
},
- "results" will present the descriptions informations of the hotels present in the geographical research
{
"results": [
{
"score": 247,
"distance": 0.60244846,
"hotel": {
"id": "0785",
"name": "Novotel Paris Les Halles",
"description": "The 4-star Novotel Paris les Halles is located in the historical center of Paris. It is close to 5 metro lines and 3 suburban train lines, as well as several tourist attractions: the Louvre, Notre Dame, the Marais district and the Eiffel Tower. The hotel has a direct access to Disneyland® Paris. The Novotel Paris les Halles offers air-conditioned rooms, free WIFI, restaurant, patio, bar, fitness room and 8 meeting rooms. It is ideal for vacations as a couple, family trips, or business travel.",
"lodging": "HTL",
"brand": "NOV",
"scale": "FI",
"currencyCode": "EUR",
"roomOccupancy": {
"maxAdult": 4,
"maxChild": 4,
"maxChildAge": 15,
"maxPax": 5,
"maxRoom": 7
},
"spokenLanguages": [
"ZH",
"PT",
"RU",
"FR",
"IT",
"EN",
"ES",
"DE"
],
"checkin": {
"available": true
},
"loyaltyProgram": {
"advantageAllowed": true,
"burnAllowed": true,
"earnAllowed": true,
"huazhuRewards": false,
"status": "PARTICIPATING_HOTEL",
"memberRate": true
},
"label": [
"FASTCOM",
"ASFST"
],
"amenity": {
"free": [
"air_conditioning",
"baby_sitting",
"bar",
"child_facilities",
"fitness",
"meeting_rooms",
"privative_bathroom",
"restaurant",
"tea_machine"
],
"paying": [
"parking",
"wifi"
]
},
"media": {
"count": 7,
"medias": [
{
"1024x768": "https://www.ahstatic.com/photos/0785_ho_00_p_1024x768.jpg",
"346x260": "https://www.ahstatic.com/photos/0785_ho_00_p_346x260.jpg",
"120x90": "https://www.ahstatic.com/photos/0785_ho_00_p_120x90.jpg",
"2048x1536": "https://www.ahstatic.com/photos/0785_ho_00_p_2048x1536.jpg",
"3000x2250": "https://www.ahstatic.com/photos/0785_ho_00_p_3000x2250.jpg"
},
{
"1024x768": "https://www.ahstatic.com/photos/0785_ho_01_p_1024x768.jpg",
"346x260": "https://www.ahstatic.com/photos/0785_ho_01_p_346x260.jpg",
"120x90": "https://www.ahstatic.com/photos/0785_ho_01_p_120x90.jpg",
"2048x1536": "https://www.ahstatic.com/photos/0785_ho_01_p_2048x1536.jpg",
"3000x2250": "https://www.ahstatic.com/photos/0785_ho_01_p_3000x2250.jpg"
}
]
},
"contact": {
"phonePrefix": "33",
"phone": "1/42213131",
"fax": "1/42212003",
"mail": "H0785@accor.com"
},
"localization": {
"address": {
"street": "8 Place Marguerite de Navarre",
"zipCode": "75001",
"city": "PARIS",
"country": "France",
"countryCode": "FR"
},
"environmentCode": "TOW",
"gps": {
"lng": "2.346531",
"lat": "48.86053"
}
},
"factsheetUrl": "https://all.accor.com/hotel/0785/index.en.shtml",
"rating": {
"star": {
"score": 4.0
},
"tripadvisor": {
"score": 4.0,
"nbReviews": 5574
}
}
}
},
An example of a BBOX request
- "catalog/v1/hotels?boxBottomLeft=30.557527,120.521184&boxTopRight=31.891171,122.432322"
An example of a RADIUS request (radius param value is in KM)
- "catalog/v1/hotels?latLng=48.825903%2C2.264866&radius=10"
An example of a ID request
- "catalog/v1/hotels?id=5484, 3485, 0619,7974,7396,1200,0911"
An example of a destination request using the filter and the sort provided by the API
- "catalog/v1/hotels?q=lyon&amenity=shuttle,bar&sort=id"
An example of a destination request using Squiggly
- "catalog/v1/hotels?q=paris&fields=results.hotel.id,results.hotel.name"
{
"results": [
{
"hotel": {
"id": "0785",
"name": "Novotel Paris Les Halles"
}
},
{
"hotel": {
"id": "9685",
"name": "Mercure Paris Notre Dame Saint Germain des Prés"
}
},
{
"hotel": {
"id": "2897",
"name": "Mercure Paris La Sorbonne Saint Germain des Prés Hotel"
}
},
{
"hotel": {
"id": "1399",
"name": "ibis Paris Bastille Opera 11th"
}
},
An example of a geo request
- "catalog/v1/geo?q=Cannes, France"
{
"hotelIds": [
"1370",
"3460",
"5493",
"B6V5",
"1284",
"8957",
"1170",
"2601",
"1190",
"1168",
"6518",
"2351",
"2303",
"8768",
"0398",
"2335",
"0711",
"1122",
"7973",
"6866",