Skip to main content
The OTA_HotelDescriptiveInfoRQ (Non‑Bookable Content / static data request) lets you retrieve hotel descriptive data such as addresses, geocodes, amenities, images metadata, category codes, and other facts used for mapping and content enrichment. It is typically used for portfolio synchronization, templated inventory/amenities exports, delta updates, or geo‑area lookups.
Already know OTA messages? Jump straight into testing.

OTA_HotelDescriptiveInfoRQ API call

Skip & Hit the Playground.

Purpose

Use this request to:
  • Download hotel lists tied to one or more client feeds (BrandCode).
  • Pull details for a single hotel (HotelCode).
  • Retrieve facts & amenities (STOCK template) or a hotel’s room/board/occupancy mapping set (SUMMARY template).
  • Perform geo‑area search (lat/lon + radius) and limit results via MaxResponses.
  • Request delta updates since a point in time using LastUpdateDate.

Structure – Root Element

<OTA_HotelDescriptiveInfoRQ>
Key Attributes:
  • xmlns (required): http://www.opentravel.org/OTA/2003/05.
  • Version (required): specification version (e.g., 2008.1).
  • PrimaryLangID (optional): primary language (ISO 639). Use * to return all available languages.
  • AltLangID (optional): fallback language (recommend EN).
  • MaxResponses (optional): caps the number of hotels returned (applies to geo‑area search).
  • LastUpdateDate (optional): filter to hotels modified after this timestamp (delta retrieval).

Structure – Core Elements

POS (Point of Sale)

Identifies the requesting party and carries credentials.
<POS>
  <Source>
    <RequestorID Type="22" ID="TST1" ID_Context="AxisData"/>
  </Source>
  <Source>
    <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
  </Source>
</POS>

HotelDescriptiveInfo

Wrapper for one or more requests. Use BrandCode to scope to one or multiple client feeds, or HotelCode to target a single property.
  <HotelDescriptiveInfos>
    <HotelDescriptiveInfo BrandCode="TST1">
      <ContactInfo SendData="false"/>
      <MultimediaObjects SendData="false"/>
      <HotelInfo SendData="false"/>
      <AreaInfo SendRefPoints="false"/>
      <AffiliationInfo SendAwards="false"/>
    </HotelDescriptiveInfo>
  </HotelDescriptiveInfos>

Enrichment Switches

Include the child nodes below under HotelDescriptiveInfo to control which blocks are returned. If the switch node exists and is not set to false, data is included.
  • ContactInfo with SendData="false" → omit address/contact data.
  • MultimediaObjects with SendData="false" → omit image metadata.
  • HotelInfo with SendData="false" → omit descriptions/services blocks.
  • AreaInfo with SendRefPoints="false" → omit geo/location reference points.
  • AffiliationInfo with SendAwards="false" → omit star rating/awards.

ContentInfos

    <HotelDescriptiveInfo BrandCode="TST1">
      <ContentInfos>
        <ContentInfo Code="Template" Name="STOCK"/>
      </ContentInfos>
    </HotelDescriptiveInfo>
Use ContentInfos/ContentInfo pairs to:
  • Request a template: Code="Template" Name="STOCK" (facts & amenities) or Name="Summary" (room+board+occupancy inventory for a hotel). Only one template can be requested at a time; templates are not compatible with other enrichment switches.
  • Perform geo search: provide Code="GeoLatitude", Code="GeoLongitude", and Code="GeoRadius" (meters). If radius not set, default is 200 m. Pair with MaxResponses at the root to cap the number of results.

Additional Features

Language Handling

  • Set AltLangID="EN" to ensure untranslated concepts fall back to English.
  • To request all languages, set PrimaryLangID="*" (may repeat HotelDescriptiveContent per language in the response).
  • To request a specific set, pass a backslash‑separated list in PrimaryLangID (e.g., EN\DE\FR\IT).
Check Languages

Multi‑Client Requests

  • Pass multiple Client IDs in BrandCode separated by pipes (e.g., CLIENTA|CLIENTB). Any hotel assigned to at least one of the requested Client IDs is returned.
<HotelDescriptiveInfo BrandCode="CLIENTA|CLIENTB|CLIENTC">

Delta Updates

  • Use LastUpdateDate to retrieve hotels modified after the provided timestamp.
  • Recommendation: subtract ~3 hours from your last known update to avoid timezone/skew issues.
<OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2008.1" LastUpdateDate="2019-08-08T18:00:00">

Complete Examples

<OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2008.1" PrimaryLangID="EN" AltLangID="EN">
  <POS>
    <Source>
      <RequestorID Type="22" ID="TST1" ID_Context="AxisData"/>
    </Source>
    <Source>
      <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
    </Source>
  </POS>
  <HotelDescriptiveInfos>
    <HotelDescriptiveInfo HotelCode="AMTSES08UI" BrandCode="TST1">
    </HotelDescriptiveInfo>
  </HotelDescriptiveInfos>
</OTA_HotelDescriptiveInfoRQ>

Best Practices

  1. Keep AltLangID="EN" so untranslated concepts fall back consistently.
  2. For hotel list downloads, set all switches to false to allow full-result batching and optimized processing.
  3. Do not combine templates with other switches; request either STOCK or Summary per call.
  4. For geo search, set MaxResponses to your desired cap (default is 10) and use a sensible radius (default 200 m) to control payload size.
  5. When running delta, subtract ~3 hours from your last checkpoint in LastUpdateDate to avoid timezone drift.

Playground

OTA_HotelDescriptiveInfoRQ API call

Try our API playground in real time.
Use any of the requests above in the playground and receive responses from the test environment.