Build your hotel solution with the CDS Groupe API
A REST/JSON-based hotel platform providing unified endpoints for Search, Availability, Content, Booking, Booking Details, and Cancel. Integrate once to seamlessly access multiple suppliers.
# Search hotels (example endpoint names)
GET http://bookings.cdsgroupe.com/cds-api/v1/hotelSearch?checkin=2025-10-15&checkout=2025-10-16&room=1&guest=1&allotment=1&ages=99&radius=10&latitude=48.8575475&longitude=2.3513765&agentDutyCode=BOOKING_V3&language=FR¤cy=EUR&pageNumber=1&pageSize=10&userPlatform=desktop
# Book a room (example)
POST https://api.cdsgroupe.com/v1/bookings
Content-Type: application/json
{
"agentDutyCode": "{{codeClient}}", //Client code cretaed by CDS GROUPE Team
"Login": "{{login}}", //Username of the API (Connected user)
"HotelCode": "6203406", //(REQUIRED) HtlCd from Availibility response
"RoomQuantities": "1", //(REQUIRED) nbr of Room for booking
"GuestQuantitie": "1", //(REQUIRED) nbr of guest for booking
"GuestPerRoom": "1", //(REQUIRED) nbr of guest per room for booking (list of int separated by ; or ,)
"currency": "EUR", //Currency (EUR, GBP, USD, ....) => Default EUR
"language": "EN", //Language (FR, EN, DE, SP, PT, IT) => Default FR
"CountryName": "", //Country names of the travellers must = GuestQuantitie (list of Country names separated by ; or ,)
"AddressLine": "", //Adress of the travellers must = GuestQuantitie (list of adress separated by ; or ,)
"Ages": "99", //99 = adult and age between 1 and 17 for child age (list of int separated by ; or ,)
"CityName": "", //City of the travellers must = GuestQuantitie (list of city names separated by ; or ,)
"PhoneNumber": "+33123456789", //Phone numbers of the travellers must = GuestQuantitie (list of phones separated by ; or ,)
"PostalCode": "", //Postal codes of the travellers must = GuestQuantitie (list of Postal codes separated by ; or ,)
"FirstName": "test", //(REQUIRED) First names of the travellers must = GuestQuantitie (list of names separated by ; or ,)
"LastName": "test", //(REQUIRED) Last names of the travellers must = GuestQuantitie (list of names separated by ; or ,)
"Email": "test@cdsgroupe.com", //(REQUIRED) Emails of the travellers must = GuestQuantitie (list of emails separated by ; or ,)
"NamePrefix": "1", // 1 = Mr, 2 = Mrs, 3 = Ms
"LoyaltyCard": "XXXXXXXXXXXXX", //Loyalty Card of the travellers must = GuestQuantitie (list of Loyalty Cards separated by ; or ,)
"Start": "{{in}}", //(REQUIRED) the checkin date, format yyyy-MM-dd
"End": "{{out}}", //(REQUIRED) the chouckout date, format yyyy-MM-dd
"RatePlanCode": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", //(REQUIRED) RatCd from Availibility must equal RoomQuantities (list of RatCd separated by ; or ,)
"RoomCode": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", //(REQUIRED) RomCd from Availibility must equal RoomQuantities (list of RomCd separated by ; or ,)
"AmountAfterTax": "112", //(REQUIRED) RatPrice from Availibility plus TaxPrice and RatMealPrice if TaxIncluded = false else RatPrice (list of RatPrice separated by ; or ,)
"AmountBeforeTax": "112", //(REQUIRED) RatPrice from Availibility must equal RoomQuantities (list of RatPrice separated by ; or ,)
"CardCode": "VI", //(REQUIRED) Credit card code - AX - MC,CA - VI
"CardNumber": "4236861588423130", //(REQUIRED) Credit card number
"ExpireDate": "2025-12-01", //(REQUIRED) Credit card expire date, format yyyy-MM-dd
"SeriesCode": "123", //(REQUIRED) Credit card cvv / cvc
"CardHolderName": "TEST", //(REQUIRED) Credit card holder name
"CopieEmail": "copie@cdsgroupe.com", //We will send a copie of voucher to this email if exist
"Comment": "test comment to send to props", //Comment that we wills end to property if the supplier accept it
"BookerLogin": "Booker Login", //If booker is not the user connected to the API
"BookerLastName": "Booker Last Name",
"BookerFirstName": "Booker First Name",
"BookerEmail": "BookerEmail@cdsgroupe.com",
"userPlatform":"desktop" // desktop,mobile,mobile-app (Default = desktop)
}
# See full specifications:
https://developers.cdsgroupe.com/