# GetAllProducts

The `GetAllProducts` API retrieves **room-level product details** for a specific hotel property. It provides detailed rate plans, pricing, amenities, cancellation policies, and room selection keys required for booking.

This API is used **after selecting a property** from the `GetBestProperty` API to view all available rooms and pricing options.

***

#### **Endpoint**

```
POST [SD-Domain]/api/SmartDistribution/getproducts
```

***

#### **Headers**

| Header Name  | Value / Example  | Required | Description                           |
| ------------ | ---------------- | -------- | ------------------------------------- |
| Content-Type | application/json | Yes      | Indicates the request body is JSON    |
| apiKey       | RGKEY            | Yes      | API key provided by SmartDistribution |
| apiSecret    | SECRETL          | Yes      | API secret for authentication         |

***

#### &#x20;Request Payload (JSON)

```json
{
  "propertyID": "ChIJeXrzAF12NIQRzC1Cl0_AFsM",
  "checkin": "2025-07-24",
  "checkout": "2025-07-25",
  "Rooms": [
    {
      "numberOfRoom": 1,
      "adults": 2,
      "children": 1,
      "paxes": [
        {
          "type": "Child",
          "age": 8
        }
      ]
    }
  ],
  "echoToken": "mylC5mlCpx6Jn2jM"
}
```

***

### &#x20;Request Field Details

| Field        | Type          | Required | Description                                                                |
| ------------ | ------------- | -------- | -------------------------------------------------------------------------- |
| `propertyID` | string        | Yes      | Unique identifier for the property (e.g., get in getBestProperty response) |
| `checkin`    | string (date) | Yes      | Desired check-in date in YYYY-MM-DD format                                 |
| `checkout`   | string (date) | Yes      | Desired check-out date in YYYY-MM-DD format                                |
| `Rooms`      | array         | Yes      | List of room occupancy configurations                                      |

#### └─ Rooms Object

| Field          | Type    | Required | Description                                     |
| -------------- | ------- | -------- | ----------------------------------------------- |
| `numberOfRoom` | integer | Yes      | Number of rooms requested in this configuration |
| `adults`       | integer | Yes      | Number of adults in the room                    |
| `children`     | integer | Yes      | Number of children in the room                  |
| `paxes`        | array   | Yes      | Pax details (especially child age for pricing)  |

**└── Paxes Object**

| Field  | Type    | Required | Description                       |
| ------ | ------- | -------- | --------------------------------- |
| `type` | string  | Yes      | Guest type (Adult or Child)       |
| `age`  | integer | Yes      | Guest age (required for children) |

***

| Field       | Type   | Required | Description                                   |
| ----------- | ------ | -------- | --------------------------------------------- |
| `echoToken` | string | Optional | Optional request tracking token or session ID |

✅ **Successful Response Format**

```json
{
  "body": {
    "PropertyId": "HT123",
    "PropertyName": "Grand Hotel",
    "Description": "A luxury hotel near the beach",
    "Images": [
      "https://example.com/img1.jpg",
      "https://example.com/img2.jpg"
    ],
    "Currency": "USD",
    "HotelCode": "GH567",
    "Price": 199.99,
    "NumberOfRoom": 2,
    "Code": "P123",
    "CountryCode": "US",
    "CountryName": "United States",
    "StateCode": "CA",
    "StateName": "California",
    "DestinationCode": "LAX",
    "DestinationName": "Los Angeles",
    "ZoneCode": "Z001",
    "ZoneName": "Beach Zone",
    "Longitude": -118.2437,
    "Latitude": 34.0522,
    "CategoryCode": "CAT1",
    "CategoryName": "Luxury",
    "CategoryGroupCode": "GRP1",
    "CategoryGroupDesc": "Premium Group",
    "ChainCode": "CH123",
    "ChainName": "HotelChain",
    "AccomodationType": "Hotel",
    "AccMultiDesc": "Multi Description",
    "AccTypeDesc": "Hotel Type",
    "Address": "123 Beach Ave",
    "Street": "Beach Ave",
    "City": "Los Angeles",
    "PostalCode": "90001",
    "S2C": "Y",
    "Ranking": 5,
    "HotelSegments": [
      {
        "Code": "SEG1",
        "Name": "Family"
      }
    ],
    "HotelBoard": [
      {
        "Code": "BB",
        "Name": "Bed &amp; Breakfast"
      }
    ],
    "HotelFacility": [
      {
        "FacilityGroupName": "General",
        "FacilityInfo": [
          {
            "FacilityName": "WiFi",
            "FacilityDescription": "Free high-speed internet"
          }
        ]
      }
    ],
    "HotelAmenities": [
      "Pool",
      "Gym"
    ],
    "Products": [
      {
        "RoomCode": "RM001",
        "Name": "Deluxe Room",
        "NativeCurrency": "USD",
        "Rate": [
          {
            "rateKey": "RK123",
            "RateCode": "RC456",
            "rateType": "REF",
            "TotalPrice": "200.00",
            "allotment": 5,
            "rateCommentsId": "RCID789",
            "rateComments": "Non-refundable",
            "paymentType": "AT_WEB",
            "packaging": false,
            "boardCode": "BB",
            "boardName": "Bed &amp; Breakfast",
            "cancellationPolicies": [
              {
                "amount": "100.00",
                "from": "2025-07-20T00:00:00"
              }
            ],
            "taxes": {
              "taxes": [
                {
                  "included": true,
                  "amount": "20.00",
                  "currency": "USD"
                }
              ],
              "allIncluded": true
            },
            "rooms": 1,
            "adults": 2,
            "children": 1,
            "offers": [
              {
                "code": "OFF1",
                "name": "Early Bird",
                "amount": "10.00"
              }
            ]
          }
        ]
      }
    ]
  },
  "status": true,
  "description": null,
  "statusCode": 200
}
```

***

### &#x20;Body Object Details

| Field             | Type      | Description                      |
| ----------------- | --------- | -------------------------------- |
| PropertyId        | string    | Unique property identifier       |
| PropertyName      | string    | Hotel name                       |
| Description       | string    | Description of the hotel         |
| Images            | string\[] | List of image URLs               |
| HotelCode         | string    | Internal hotel code              |
| CountryCode       | string    | Country ISO code                 |
| CountryName       | string    | Full country name                |
| StateCode         | string    | State/province code              |
| StateName         | string    | Full state/province name         |
| DestinationnCode  | string    | Destination code (airport/city)  |
| DestinationName   | string    | Destination name                 |
| ZoneCode          | string    | Zone identifier                  |
| ZoneName          | string    | Zone name                        |
| Longitude         | number    | Longitude coordinates            |
| Latitude          | number    | Latitude coordinates             |
| CategoryCode      | string    | Category code (e.g., luxury)     |
| CategoryName      | string    | Category name                    |
| CategoryGroupCode | string    | Grouping for hotel categories    |
| CategoryGroupDesc | string    | Group description                |
| ChainCode         | string    | Hotel chain code                 |
| ChainName         | string    | Hotel chain name                 |
| AccomodationType  | string    | Hotel type (e.g., Hotel, Resort) |
| AccMultiDesc      | string    | Multilingual description         |
| AccTypeDesc       | string    | Type description (display)       |
| Address           | string    | Full address                     |
| Street            | string    | Street address                   |
| City              | string    | City name                        |
| PostalCode        | string    | ZIP/postal code                  |
| S2C               | string    | Search-to-contract flag          |
| Ranking           | integer   | Star or rank rating              |
| HotelSegments     | array     | List of hotel segment objects    |
| HotelBoard        | array     | List of board options            |
| HotelFacility     | array     | Grouped list of facilities       |
| HotelAmenities    | string\[] | Simple amenities list            |
| Products          | array     | Available rooms with rates       |

***

### 🛏️ Products \[] Object Fields

| Field          | Type          | Description                          |
| -------------- | ------------- | ------------------------------------ |
| roomCode       | string        | Unique room code (e.g., TWN.DX)      |
| name           | string        | Room name (e.g., TWIN DELUXE)        |
| nativeCurrency | string        | Currency for rate prices (e.g., EUR) |
| rate           | array of Rate | List of available rate plans         |

***

### 💰 Rate \[] Object Fields

| Field                | Type                        | Description                                                 |
| -------------------- | --------------------------- | ----------------------------------------------------------- |
| rateKey              | string                      | Unique identifier for rate selection                        |
| RateCode             | string                      | Rate plan code (e.g., NOR)                                  |
| rateType             | string                      | Type of rate (e.g., RECHECK)                                |
| TotalPrice           | string                      | Total price for the stay (string format, in nativeCurrency) |
| allotment            | integer                     | Number of rooms available under this rate                   |
| rateCommentsId       | string/null                 | Reference to external rate comment                          |
| rateComments         | string/null                 | Full text of rate comment                                   |
| paymentType          | string                      | Payment method (e.g., AT\_WEB)                              |
| packaging            | boolean                     | If the rate includes a package (true/false)                 |
| boardCode            | string                      | Board type code (e.g., RO = Room Only)                      |
| boardName            | string                      | Description of the board (e.g., ROOM ONLY)                  |
| cancellationPolicies | array of CancellationPolicy | Applicable cancellation conditions                          |
| taxes                | Object                      | Tax info                                                    |
| rooms                | integer                     | Number of rooms                                             |
| adults               | integer                     | Number of adults                                            |
| children             | integer                     | Number of children                                          |
| offers               | object/null                 | Special offer details                                       |

***

### ❌ cancelPolicy Object

| Field  | Type                  | Description                                        |
| ------ | --------------------- | -------------------------------------------------- |
| amount | string                | Amount charged for cancellation                    |
| from   | string (ISO DateTime) | When the cancellation fee applies (timezone-aware) |

***

### 🧾 taxes Object

| Field       | Type    | Description                |
| ----------- | ------- | -------------------------- |
| taxes       | array   | List of tax breakdowns     |
| allIncluded | boolean | Whether all taxes included |

***

### 🧮 taxes Array

| Field          | Type    | Description               |
| -------------- | ------- | ------------------------- |
| included       | boolean | Included in total price   |
| amount         | string  | Tax amount                |
| currency       | string  | Currency code (e.g., USD) |
| clientAmount   | string  | Client-view tax amount    |
| clientCurrency | string  | Client currency code      |

***

### 🏨 Additional Hotel Fields from body

| Field          | Type           | Description                      |
| -------------- | -------------- | -------------------------------- |
| HotelSegments  | Array\[object] | Same as GetBestProperty Response |
| HotelBoard     | Array\[object] | Same as GetBestProperty Response |
| HotelFacility  | Array\[object] | Same as GetBestProperty Response |
| HotelAmenities | Array\[string] | Same as GetBestProperty Response |

***

### 📝 Notes

* Some fields like categoryCode, address, ranking, zoneName, etc. may return null if unavailable.
* Use roomSelectionKey when proceeding to CreateReservation.
* roomTypes\[] may have one or many room configurations with different prices or board types.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.rategain.com/our-products/smart-distribution/developer-guide/getallproducts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
