Cyberesa Developers V2027.0.x
Hotel API · Booking flow

HotelSearch()

This function is dedicated for hotels search (rates and availability)

Request

XML
<HotelSearchREQ>
  <Credential>
    <Login>?</Login>
    <Password>?</Password>
  </Credential>
  <SearchDetails>
    <BookingDetails>
      <User>?</User>
      <Language>?</Language>
      <FromDate>?</FromDate>
      <ToDate>?</ToDate>
      <IdCity>?</IdCity>
      <Timeout>?</Timeout>
      <Rooms>
        <Room>
          <Pax>
            <Adult>2</Adult>
            <Child age="">0</Child>
            <Infant age="">0</Infant>
          </Pax>
          <Boarding>?</Boarding>
        </Room>
        <Room>
          <Pax>
            <Adult>1</Adult>
            <Child age="8-10">2</Child>
            <Infant age="0">1</Infant>
          </Pax>
          <Boarding>?</Boarding>
        </Room>
        <Room>
          <Pax>
            <Adult>2</Adult>
            <Child age="9">1</Child>
            <Infant age="1">1</Infant>
          </Pax>
          <Boarding>?</Boarding>
        </Room>
      </Rooms>
    </BookingDetails>
    <Filters>
      <Budget minimum="?" Maximum="?">?</Budget>
      <Keywords>?</Keywords>
      <Categories>
        <Category>?</Category>
      </Categories>
      <Sort>
        <By>?</By>
      </Sort>
      <OnlyAvailable>True/False</OnlyAvailable>
      <FromCache>True/False</FromCache>
      <ItemsPerPage>?</ItemsPerPage>
      <PageNumber>?</PageNumber>
      <hotels_ids>?;?;?</hotels_ids>
      <exclude_hotels_ids>?</exclude_hotels_ids>
      <WithoutNRF>True/False</WithoutNRF>
      <OnlyBestPriceCombination>True/False</OnlyBestPriceCombination>
      <keywords>?</keywords>
      <TariffNotes>True/False</TariffNotes>
      <Nationality>XX</Nationality>
      <SourceMarket>XX</SourceMarket>
       <GeoLocation latitude=”?” longitude=”?” radius=”?”  />
    </Filters>
  </SearchDetails>
</HotelSearchREQ>
RootSub RootDescriptionValues & FormatTag
CredentialMandatory
LoginLoginText
PasswordPasswordText
SearchDetailsBookingDetails
BookingDetails :UserCurrent user idTextMandatory
BookingDetails :LanguageCyberesa’s language ID to be used to return suitable textsTextMandatory
BookingDetails :FromDateSearch start Datedd/mm/yyyyMandatory
BookingDetails :ToDateSearch end datedd/mm/yyyyMandatory
BookingDetails :IdCitySearch IdCityNumericMandatory
BookingDetails:Timeoutmaximum response time in millisecondsNumeric
BookingDetails :Rooms :Room :PaxDescribe configuration of requested pax within the searchMandatory
BookingDetails :Rooms :Room:Pax :AdultNumber Of adults for the current room configurationNumericMandatory
BookingDetails :Rooms :Room:Pax :Child :Number of children for the current room configurationNumericMandatory
BookingDetails :Rooms :Room:Pax :Child @AgeChildren ages separated by “-”
ex: “5” or “5-6”
TextMandatory for child
BookingDetails :Rooms :Room:Pax :Infant:Number of infants for the current room configurationNumericOptional
BookingDetails :Rooms :Room:Pax :Infant@AgeInfants ages separated by “-”
ex: “0” or “0-1”
TextMandatory for Infants
BookingDetails :Rooms :Room:BoardingSearch by specific boarding idNumericOptional
Filters
Budget:@minimumIndicate a minimum budgetNumericOptional
Budget:@maximumIndicate a maximum budgetNumericOptional
keywordsSearch by keywordsTextOptional
categorySearch by categoryNumericOptional
Sort:bySpecify an order by (City or Category or Title or Review or Priority or Nearby), if not indicated, default order by Priority ascendant will be appliedTextOptional
onlyAvailableShow only available hotelsBooleanOptional
FromCacheIf “False” then do not return results from cacheBooleanOptional
ItemsPerPageValue indicating items to be returned per pageNumericMandatory
PageNumberValue indicates the number of the page to be returnedNumericMandatory
hotels_idsReturn only those hotels ids if exists or available
ex: <hotels_ids>706</hotels_ids> or <hotels_ids>706@8</hotels_ids> if external source (source = 8 here)
TextOptional
exclude_hotels_idsExclude those hotels ids from results if exists or availableTextOptional
withoutnrfExcludes any offer that is non refundableBooleanOptional
OnlyBestPriceCombinationIf true, returns only the cheapest available offer per hotel. A hotel with no available offer will not return. If empty or false, all combinations will return.BooleanOptional
keywordsShow only hotels that have a title or a description that contain these keywordsTextOptional
TariffNotesIf true, return TariffNotes in the HotelSearchRESBooleanOptional
Nationality2 letters iso-code, If provided, then filter only offers for the nationality2 letters in uppercaseOptional
SourceMarket2 letters iso-code, If provided, then filter only offers for the SourceMarket2 letters in uppercaseOptional
GeoLocation:@latitudeThe latitude of the reference pointNumericOptional
GeoLocation:@longitudeThe longitude of the reference pointNumericOptional
GeoLocation:@radiusdefining the search area around the point (latitude, longitude).NumericOptional

Response

XML
<HotelSearchRES>
  <ErrorResult id="’?’">
    <message>?</message>
  </ErrorResult>
  <FromDate>?</FromDate>
  <ToDate>?</ToDate>
  <Language>?</Language>
  <Currency>?</Currency>
  <City id="’?’">?</City>
  <Destination id="’?’">?</Destination>
  <PaginationData currentPage="’?’" TotalPages="’?’" />
  <Hotels count="’?’">
    <Hotel id="’0000’">
      <Title>?</Title>
      <PromotionTitle>?</PromotionTitle>
      <TariffNotes>?</TariffNotes>
      <Category id="">?</Category>
      <ThumbImage url="’?’">?</ThumbImage>
      <Review id="’?’">
        <Note>?</Note>
        <Number>?</Number>
      </Review>
      <Localization>
        <Longitude>?</Longitude>
        <Latitude>?</Latitude>
      </Localization>
      <Address>?</Address>
      <Summary>?</Summary>
      <Rooms>
        <Room id="’?’" count="’?’">
          <Adult>?</Adult>
          <Child maxage="’?’" minage="’?’" age="’?’">?</Child>
          <Infant maxage="’?’" minage="’?’" age="’?’">?</Infant>
          <Title>?</Title>
          <AvailableQuantity>?</AvailableQuantity>
          <Boardings>
            <Boarding id="’?’" OfferId=”?”>
              <Title>?</Title>
              <Available code="’?’" status="’?’" value="’?’">?</Available>
              <Rate currency="?">?</Rate>
<NonRefundable>?</NonRefundable>
             <CancellationPolicy>
             <FromDate>?</FromDate>
             <Fee>?</Fee>
             </CancellationPolicy>
<TariffNotes>?</TariffNotes>
            </Boarding>
          </Boardings>
          <Supplements>
          <Supplement>
            <Title>?</Title>
            <Rate currency="?">?</Rate>
          </Supplement>
   </Supplements>
        </Room>
        <GlobalSupplements>
          <GlobalSupplement id="’?’">?</GlobalSupplement>
        </GlobalSupplements>
      </Rooms>
      <GlobalSupplement>?</GlobalSupplement>
    </Hotel>
    <Hotel id="’???’">
      <Source>?</Source>
      <Title>?</Title>
      <PromotionTitle>?</PromotionTitle>
      <Category id="">?</Category>
      <ThumbImage url="’?’">?</ThumbImage>
      <Review id="’?’">
        <Note>?</Note>
        <Number>?</Number>
      </Review>
      <Localization>
        <Longitude>?</Longitude>
        <Latitude>?</Latitude>
      </Localization>
      <Address>?</Address>
<Rooms>
        <Room id="’?’" count="’?’">
          <Adult>?</Adult>
          <Child maxage="’?’" minage="’?’" age="’?’">?</Child>
          <Title>?</Title>
      <AvailableQuantity>?<AvailableQuantity>
          <Boardings>
            <Boarding id="’?’" OfferId=”’?’”>
              <Title>?</Title>
              <Available code="’?’" status="’?’" value="’?’">?</Available>
              <Rate currency="?">?</Rate>
              <NonRefundable>?</NonRefundable>
    <CancellationPolicy>
                <FromDate>?</FromDate>
                <Fee>?</Fee>
              </CancellationPolicy>
  <TariffNotes>?</TariffNotes>
            </Boarding>
          </Boardings>
    <Supplements>
           <Supplement>
             <Title>?</Title>
             <Rate currency="?">?</Rate>
           </Supplement>
   </Supplements>
        </Room>
        <GlobalSupplements>
          <GlobalSupplement id="’?’">?</GlobalSupplement>
        </GlobalSupplements>
      </Rooms>
      <GlobalSupplement>?</GlobalSupplement>
    <SourceGlobalSupplement>?</SourceGlobalSupplement>
    </Hotel>
  </Hotels>
  <c>?</c>
</HotelSearchRES>
RootSub RootDescriptionValeurs & FormatTag
ErrorResult
ErrorResult:@idError idNumeric
ErrorResult:messageAppropriate messageText
FromDateSearch start datedd/mm/yyyy
ToDateSearch end datedd/mm/yyyy
SourceSourceNumeric
LanguageLanguage codeText
CurrencyCurrency codeNumeric
CityCity NameText
City :@IdCity IdNumeric
DestinationDestination NameText
Destination :@IdDestination IDNumeric
PaginationData :@CurrentPageCurrent result pageNumeric
PagiationData :
@TotalPages
Total result pagesNumeric
cResults are coming from cache and not calculated in real-timebit
Hotels
Hotels :@countTotal count of hotelsNumeric
Hotels :Hotel :@IdCurrent hotel id.Text
Hotels :Hotel :TitleHotel NameText
Hotels :Hotel :PromortionTitleHotel Promotion TitleText
Hotels :Hotel :TariffNotesHotel special tariff notesText
Hotels :Hotel :
Category
Hotel categoryText
Hotels :Hotel :
Category :@id
Hotel Category ID(stars number)Numeric
Hotels :Hotel :
ThumbImage :@url
Url of hotel’s thumb imageText
Hotels:Hotel:
ThumbImage
Caption for hotel’s thumb imageText
Hotels:Hotel:
Review:Note
Hotel review noteNumeric
Hotels :Hotel :
Review :Number
Hotel review numberNumeric
Hotels :Hotel :
Localization : Longitude
Hotel longitudeNumeric
Hotels :Hotel :
Localization : Latitude
Hotel LatitudeNumeric
Hotels : Hotel :AddressHotel addressText
Hotels : Hotel : SummaryHotel short descriptionText
Hotels :Hotel :
GlobalSupplement
Global Supplement for the current hotelNumeric
Hotels :Hotel :
SourceGlobalSupplement
Source Global Supplement for the current hotelNumericapplicable only for a hotel with <source> node (3rd party). This is a handling booking fee
Rooms
Room:@IdId of the current available roomNumeric
Room:@countCount of Total returned rooms with the same paxNumeric
Room:AdultAdults count for the current room
Room:ChildChild count for the current room
Room:Child:@minageChild minimaum accepted ageNumeric
Room:Child:@maxageChild maximaum accepted ageNumeric
Room:Child:@ageChildren ages separated by “-”Text
Room:InfantInfant count for the current room
Room:Infant:@minageInfant minimaum accepted ageNumeric
Room:Infant:@maxageInfant maximaum accepted ageNumeric
Room:Infant:@ageages separated by “-”Text
Room:TitleRoom TitleText
Room: AvailableQuantityAvailable quantity of the roomNumeric
Room:Boardings:Boarding:@idBoarding idBoolean
Room:Boardings:Boarding:@OfferIdBoarding OfferId(offer identifier)TextOPTIONAL to be used in Hotel Quote REQ
Room:Boardings:Boarding:TitleBoarding titleNumeric
Room:Boardings:Boarding:AvailableIndicates whether the current boarding is available or notText
Room:Boardings:Boarding:Available:@codeThe Availability codeNumericPossible values :
200 or 0 : hotel available :
210 or 2044 : minimal stay overnight is not respect, 210 by hotel, 2044 by boarding
489 : stop sale period
203 : authorized delay to book an hotel is not respected (retrocession delay)
Other code to indicate hotel on request
Room:Boardings:Boarding:Available:@statusThe Availability statusTextPossible values :
‘ms’ (minimum stay) if @code = 210 or 2044
‘ss’ (stop sale) if @code = 489
‘dr’ (retrocession delay) if @code = 203
Room:Boardings:Boarding:Available:@valueThe Availability valueTextPossible values :
minimalStay : if @code=210 or 2044
authorized FromDate to start booking : if @code=203
Room:Boardings:Boarding:Rate:@currencyCurrency of the current price valueNumeric
Room:Boardings:Boarding
:TariffNotes
Display any comment about the related rate like "You will pay upon arrival a tax charge of XXX for the YY night(s)"
or if NRF: "This booking is non-refundable"..etc.
Text
Room:Boardings:Boarding:Rate:Boarding price for the current roomText
Room: Boardings:Boarding:
NonRefundable
Indicate if offer is non refundableBool
Room:Boardings:Boarding: CancellationPolicy
Room:Boardings:Boarding: CancellationPolicy: FromDateThis fromDate is the deadline for free cancellation delay, beyond this, there is a 100% penalty.Date
Room:Boardings:Boarding: CancellationPolicy: FeeCancellation Policy fee rateDecimal
Room:Supplements:SupplementSupplements details for the current roomTextOptionnal
Room:Supplements:Supplement:TitleSupplement titleText
Room:SupplementsSupplement:Rate:@currencyCurrency of the supplement price valueNumeric
Room:Supplement:Rate:Supplement RateText
Room:GlobalSupplements:GlobalSupplement:@idId of the global supplementNumeric
Room:GlobalSupplements:GlobalSupplementValue of the global supplementNumeric
CYBERESA SARL au capital de 560 000 TND (R.C : B2437152011 – M.F : 1189611/V) Siège social : Immeuble 3S, Lotissement Ennassim, 1073 Montplaisir - Tunis - TUNISIE · Tél : +216 71 947 401 - Fax : +216 70 201 010 - Site web : www.cyberesa.net - Email : info@cyberesa.net
© Cyberesa · Hotel API V2027.0.x · updated 09/10/2026