<div style="color:rgba(255,255,255,1);background-color:rgba(56,50,108,1);" class="icon--content field field--field-icon field--label-hidden field__item">
HTTP Methods
The Business Offers API is accessible only through the HTTPS protocol and accepts HTTP GET and HTTP POST requests depending on the endpoint.
- REC base URL: https://rec-api.accor.com/businessoffers/v1
- PRO base URL: https://api.accor.com/businessoffers/v1
- REC Example: https://rec-api.accor.com/businessoffers/v1/best-offers
<div style="color:rgba(255,255,255,1);background-color:rgba(56,50,108,1);" class="icon--content field field--field-icon field--label-hidden field__item">
Authentication
The Business Offers API requires two authentication mechanisms to be provided simultaneously:
- BearerAuth: A JWT bearer token passed in the
Authorizationheader. - apiKeyAuth: An API key passed in the
apikeyheader.
<div style="color:rgba(255,255,255,1);background-color:rgba(56,50,108,1);" class="icon--content field field--field-icon field--label-hidden field__item">
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 206 range indicate a partially successful operation (some hotels may have failed).
- 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.
<div style="color:rgba(255,255,255,1);background-color:rgba(56,50,108,1);" class="icon--content field field--field-icon field--label-hidden field__item">
HTTP ACCEPT-LANGUAGE
The Business Offers API supports, with certain qualifications, the ability to specify languages as part of an HTTP request, using the ACCEPT-LANGUAGE HTTP header. The 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.
<div style="color:rgba(255,255,255,1);background-color:rgba(56,50,108,1);" class="icon--content field field--field-icon field--label-hidden field__item">
Example
Get Best Offers for a List of Hotels
Retrieve the cheapest available offer per hotel by providing a list of hotel IDs along with stay parameters such as check-in date, length of stay, and occupancy.
Click to reveal the response example
{
"bestOffers": [
{
"hotelId": "0911",
"offerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"roomCode": "QED",
"ratePlanCode": "BAR",
"dateIn": "2025-10-15",
"dateOut": "2025-10-17",
"lengthOfStay": {
"unit": "NIGHT",
"value": 2
},
"occupancy": {
"adults": 2,
"children": 0
},
"price": {
"amount": 250.00,
"currency": "EUR"
}
}
]
}
Post Best Offers for a List of Hotels
Alternatively, use the POST variant to pass a richer request body for the same endpoint.
POST https://rec-api.accor.com/businessoffers/v1/best-offers
Get Available Offers for a Specific Hotel
Retrieve the best available offers per product for a specific hotel using a POST request with a request body.
POST https://rec-api.accor.com/businessoffers/v1/hotels/{{hotelId}}/products/offers
Get Calendar Best Offers
Retrieve the cheapest and best offer for each day of a searched period to populate a pricing calendar.
Get Pricing Conditions
Retrieve pricing conditions for a specific offer by its ID.
GET https://rec-api.accor.com/businessoffers/v1/offers/{{offerId}}/pricing-conditions
Get Available Options and Upsells
Retrieve available options and upsells for a list of offer IDs.
GET https://rec-api.accor.com/businessoffers/v1/offers/options?offerIds={{offerId1}},{{offerId2}}