> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axisdata.net/llms.txt
> Use this file to discover all available pages before exploring further.

# OTA_HotelDescriptiveInfoRQ

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.

<Tip>Already know OTA messages? Jump straight into testing.</Tip>

<Card title="OTA_HotelDescriptiveInfoRQ API call" icon="image" href="/api-reference/endpoint/hotel/nbc" arrow="true" horizontal>
  Skip & Hit the Playground.
</Card>

## 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

```xml theme={null}
<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.

```xml theme={null}
<POS>
  <Source>
    <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
  </Source>
  <Source>
    <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
  </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.

```xml theme={null}
  <HotelDescriptiveInfos>
    <HotelDescriptiveInfo BrandCode="TEST">
      <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

```xml theme={null}
    <HotelDescriptiveInfo BrandCode="TEST">
      <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](../general/messaging#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.

```xml theme={null}
<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.

```xml theme={null}
<OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" LastUpdateDate="2019-08-08T18:00:00">
```

## Complete Examples

<CodeGroup>
  ```xml Single Hotel expandable theme={null}
  <OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" PrimaryLangID="EN" AltLangID="EN">
    <POS>
      <Source>
        <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelDescriptiveInfos>
      <HotelDescriptiveInfo HotelCode="AESPMI5L46" BrandCode="TEST">
      </HotelDescriptiveInfo>
    </HotelDescriptiveInfos>
  </OTA_HotelDescriptiveInfoRQ>
  ```

  ```xml Hotel List expandable theme={null}
  <OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" PrimaryLangID="EN" AltLangID="EN">
    <POS>
      <Source>
        <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelDescriptiveInfos>
      <HotelDescriptiveInfo BrandCode="TEST">
        <ContactInfo SendData="false"/>
        <MultimediaObjects SendData="false"/>
        <HotelInfo SendData="false"/>
        <AreaInfo SendRefPoints="false"/>
        <AffiliationInfo SendAwards="false"/>
      </HotelDescriptiveInfo>
    </HotelDescriptiveInfos>
  </OTA_HotelDescriptiveInfoRQ>
  ```

  ```xml Amenities expandable theme={null}
  <OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" PrimaryLangID="EN" AltLangID="EN">
    <POS>
      <Source>
        <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelDescriptiveInfos>
      <HotelDescriptiveInfo BrandCode="TEST">
        <ContentInfos>
          <ContentInfo Code="Template" Name="STOCK"/>
        </ContentInfos>
      </HotelDescriptiveInfo>
    </HotelDescriptiveInfos>
  </OTA_HotelDescriptiveInfoRQ>
  ```

  ```xml Inventory expandable theme={null}
  <OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" PrimaryLangID="EN" AltLangID="EN">
    <POS>
      <Source>
        <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelDescriptiveInfos>
      <HotelDescriptiveInfo HotelCode="AESPMI5L46">
        <ContentInfos>
          <ContentInfo Code="Template" Name="Summary"/>
        </ContentInfos>
      </HotelDescriptiveInfo>
    </HotelDescriptiveInfos>
  </OTA_HotelDescriptiveInfoRQ>
  ```

  ```xml Geo‑Area  expandable theme={null}
  <OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="2009.1" PrimaryLangID="EN" AltLangID="EN" MaxResponses="20">
    <POS>
      <Source>
        <RequestorID Type="22" ID="TEST" ID_Context="AxisData"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelDescriptiveInfos>
      <HotelDescriptiveInfo BrandCode="TEST">
        <HotelInfo SendData="false"/>
        <AreaInfo SendRefPoints="false"/>
        <ContactInfo SendData="false"/>
        <MultimediaObjects SendData="false"/>
        <ContentInfos>
          <ContentInfo Code="GeoLatitude" Name="40.4157"/>
          <ContentInfo Code="GeoLongitude" Name="-3.7002"/>
          <ContentInfo Code="GeoRadius" Name="200"/>
        </ContentInfos>
      </HotelDescriptiveInfo>
    </HotelDescriptiveInfos>
  </OTA_HotelDescriptiveInfoRQ>
  ```
</CodeGroup>

## 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

<Card title="OTA_HotelDescriptiveInfoRQ API call" icon="image" href="/api-reference/endpoint/hotel/nbc" arrow="true" horizontal>
  Try our API playground in real time.
</Card>

<Tip>Use any of the requests above in the playground and receive responses from the test environment.   </Tip>
