# Shop Rates

The Shop Rates endpoint retrieves OTA and CRS rates for a specific hotel, with the option to filter by a specific rate.

`GET` `https://api.rateparity.com/v1/shopper/{code}`

**Path Parameters**

| Name     | Type   | Required | Description       |
| -------- | ------ | -------- | ----------------- |
| **code** | String | Yes      | The property code |

**Query Parameters**

| Name         | Type                                       | Required | Description                                                         |
| ------------ | ------------------------------------------ | -------- | ------------------------------------------------------------------- |
| **checkIn**  | date                                       | Yes      | The check-in date in format yyyy-MM-dd                              |
| **checkOut** | date                                       | Yes      | The check-out date in format yyyy-MM-dd                             |
| **adults**   | integer                                    | No       | The number of adults, default 2                                     |
| **children** | integer                                    | No       | The number of children, default 0                                   |
| **channel**  | [Channel Type](/datatypes.md#channel-type) | No       | If not provided, rates for **all configured channels** are returned |
| **currency** | string                                     | No       | The currency, default value EUR                                     |
| **rateId**   | string                                     | No       | If not provided, the **cheapest rate** is returned.                 |

## Model Description

See [Model Description](/model.md) for the base structure of responses.

### Data Object Fields

| Field      | Type                                    | Description                                                   |
| ---------- | --------------------------------------- | ------------------------------------------------------------- |
| `currency` | String                                  | The currency code (e.g., USD, EUR) for the returned rates.    |
| `channels` | List<[Channel](#channel-object-fields)> | A list of available channels with rate details.               |
| `rates`    | List<[Rate](#rate-object-fields)>       | A list of rates applicable to the hotel and filters provided. |

### Channel Object Fields

| Field        | Type   | JSON Key      | Description                                                  |
| ------------ | ------ | ------------- | ------------------------------------------------------------ |
| `sourceId`   | string | `source_id`   | The unique identifier for the source channel.                |
| `sourceName` | string | `source_name` | The name of the source channel (e.g., Booking.com, Expedia). |
| `price`      | double | `price`       | The price returned for the hotel in the specified channel.   |

### Rate Object Fields

| Field                | Type          | Description                                                           |
| -------------------- | ------------- | --------------------------------------------------------------------- |
| `price`              | double        | The price for the specified rate.                                     |
| `roomId`             | string        | The unique identifier for the room.                                   |
| `rateId`             | string        | The unique identifier for the rate.                                   |
| `beRateId`           | List\<string> | The unique booking engine identifier for the rate.                    |
| `roomName`           | string        | The name of the room.                                                 |
| `cancellationPolicy` | string        | Details about the cancellation policy for the rate.                   |
| `board`              | string        | The board type (e.g., Bed & Breakfast, Half Board, Full Board).       |
| `extras`             | List\<string> | List of additional services or extras included in the rate.           |
| `partnerRate`        | boolean       | Indicates if the rate is a partner-specific rate (`true` or `false`). |
| `lowestRate`         | boolean       | Indicates if this is the lowest available rate (`true` or `false`).   |

## Request Example

```bash
curl --location 'https://api.rateparity.com/v1/shopper/{code}?rateId={rateId}&channel={channel}&checkIn={checkIn}&checkOut={checkOut}&adults={adults}&children={children}&currency={currency}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {JWT_TOKEN}'
```

## Response Example

```
{
    "data": {
        "currency": "EUR",
        "channels": [
            {
                "source_id": "23",
                "source_name": "EXPEDIA",
                "price": 89
            },
            {
                "source_id": "25",
                "source_name": "AGODA",
                "price": 304
            },
            {
                "source_id": "22",
                "source_name": "BOOKING",
                "price": 313
            }
        ]
    }
}
```


---

# 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://docs.rateparity.com/shopper/shop.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.
