> For the complete documentation index, see [llms.txt](https://docs.rateparity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rateparity.com/shopper/shop.md).

# 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
            }
        ]
    }
}
```
