# Products

This endpoint returns all products the operator has enabled for your connection.

## List Products

<mark style="color:blue;">`GET`</mark> `https://octo.peek.com/integrations/octo/products`

Returns all products the operator has enabled for the connection

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": "av_123",
    "internalName": "Rent-a-Kayak",
    "reference": "BRC-KAYAK",
    "locale": "en",
    "timeZone": "America/Los_Angeles",
    "allowFreesale": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": ["QRCODE"],
    "deliveryMethods": ["VOUCHER"],
    "redemptionMethod": "DIGITAL",
    "capabilities": [
      {
        "id": "octo/pricing",
        "revision": 1,
        "required": true,
        "dependencies": []
      },
      {
        "id": "octo/webhooks",
        "revision": 1,
        "required": false,
        "dependencies": []
      }
    ],
    "options": [
      {
        "id": "av_123",
        "default": true,
        "internalName": "Rent-a-Kayak",
        "reference": null,
        "restrictions": {},
        "units": [
          {
            "id": "ea5fbd4c-9c2a-42f5-80c5-251a9f04da04",
            "internalName": "1-Seater Kayak",
            "reference": "1seat",
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          },
          {
            "id": "582fd9d7-43fd-4685-a9b2-35b102eaec3a",
            "internalName": "2-Seater Kayak",
            "reference": "2seat",
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 2,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  //...rest of the products
]
```

{% endtab %}
{% endtabs %}

A description of each of the keys is given below:

| Field                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id                                      | The product id, you'll need to save this.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| internalName                            | The name this supplier calls the product                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| reference                               | An optional code this supplier might use to identify the product                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| locale                                  | A language code indicating what language this product content is in                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| timeZone                                | The IANA timeZone name this product is located in.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| allowFreesale                           | Whether a booking can be made for this product without having to query availability first.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| instantConfirmation                     | Whether bookings will be immediately confirmed when a sale is made, otherwise the supplier will later either accept or reject the booking.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `availabilityRequired`                  | Whether an `availabilityId` is required when creating a booking. Without this the booking will be open-dated and not have a specified travel date.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `availabilityType`                      | What type of availability this product has, possible values are: `START_TIME` if there are fixed departure times which you must pick one. Typical for day tours or activities. `OPENING_HOURS` if you just select a date and can visit any time when the venue is open.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `deliveryFormats`                       | <p>An array of formats the API will deliver the tickets as. Possible values are:</p><p><code>QRCODE</code> A code to be presented as a QR CODE barcode</p><p><code>CODE128</code>A code to be presented as a CODE 128 barcode</p><p><code>PDF\_URL</code> A URL to a PDF file which contains all the ticket details</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `deliveryMethods`                       | <p>How the formats described in <code>deliveryFormats</code> will be delivered in the booking response, possible values are:</p><p><code>TICKET</code> Individually per unit in the order (i.e. single ticket for each person)</p><p><code>VOUCHER</code> One ticket for the whole booking</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `redemptionMethod`                      | <p>How must the guest present the ticket or voucher when they arrive at the venue. Possible values are:</p><p><code>MANIFEST</code> The guest name will be written down and they just need to show up</p><p><code>DIGITAL</code> The tickets/voucher must be scanned but can be on mobile</p><p><code>PRINT</code> The tickets/voucher must be printed and presented on arrival</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `capabilities`                          | Capabilities define API extensions that this product supports. Capabilities can be enabled using a special HTTP header that's described in the next section.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `capabilities[].id`                     | The capability id which identifies it                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `capabilities[].revision`               | An integer which will increment each time the specification for this capability is updated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `capabilities[].required`               | Whether this product cannot be sold without this capability being used.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `capabilities[].dependencies`           | An array of other capability ids that this capability depends on.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `capabilities[].docs`                   | A url to the documentation for this capability is.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `capabilities[].default`                | Whether this capability is enabled by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `options`                               | An array of all options for this product. All products must have at least one option.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `options[].id`                          | The id that identifies this option, it is only unique within the product                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `options[].default`                     | If there is only one option this value is `true` to indicate it is the default and therefore doesn't need to be displayed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `options[].internalName`                | Like product internalName except for each option                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `options[].reference`                   | Like product reference except for each option                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `options[].restrictions`                | <p>An object containing a fixed list of restrictions. Keys and values are:</p><p><code>minUnits</code> The minimum number of tickets that can be purchased in a single booking (null = 0)</p><p><code>maxUnits</code> The maximum number of tickets that can be purchased in a single booking (null = unlimited)</p><p><code>options\[].availabilityLocalStartTimes</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `options[].availabilityLocalStartTimes` | This will be an array of all possible start times that can be returned during availability. For example an all day attraction may just have a single value like `["00:00"]` but a tour with multiple departure times may have:`["09:00", "14:00", "17:00"]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `options[].cancellationCutoff`          | This is how long before the tour the booking can be still be cancelled. We also provide `booking.cancellable` (boolean) which we recommend you use instead to know if the booking can be cancelled. e.g. (1 Hour)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `options[].cancellationCutoffAmount`    | The numeric amount for the cutoff (e.g. 1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `options[].cancellationCutoffUnit`      | The cutoff unit (e.g. hour). Possible values are: `hour`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `options[].requiredContactFields[]`     | <p>An array of the contact fields required to confirm a booking. These just apply to the lead traveller on the booking and not for every ticket. Possible values are:<br><code>-fullName</code><br><code>-emailAddress</code><br><code>-phoneNumber</code><br><code>-country</code><br><code>-notes</code><br><code>-locales</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `options[].units`                       | The list of ticket types (units) available for sale                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `options[].units[].id`                  | The id of the unit, this will be unique to the option                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `options[].units[].internalName`        | Like product/option internalName but for units                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `options[].units[].reference`           | Like product/option reference but for units                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `options[].units[].type`                | <p>This is the ticket type of the unit, values are:</p><p><code>ADULT</code> <code>YOUTH</code> <code>CHILD</code> <code>INFANT</code> <code>FAMILY</code> <code>SENIOR</code> <code>STUDENT</code> <code>MILITARY</code> <code>OTHER</code>The "other" type typically is used for an add-on, e.g. Bottle of Champaign, or a rental product like a bicycle.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `options[].units[].restrictions`        | <p>An object containing restrictions about this unit. Possible keys and values are:</p><p><code>minAge</code> An integer indicating the minimum age for the person this unit is for.</p><p><code>maxAge</code> An integer indicating the maximum age for the person this unit is for.</p><p><code>idRequired</code> A boolean value indicating whether the person this unit is for must show ID on arrival.</p><p><code>minQuantity</code> The minimum quantity of this unit required per booking (null = no minimum) <code>maxQuantity</code> The maximum quantity of this unit required per booking (null = no limit)</p><p><code>paxCount</code> The number of people this unit allows. Typically this is 1 but for a family ticket for example, it could be 4 or 5. <code>accompaniedBy</code> An array of unit ids one of which must accompany this unit if it is purchased.</p> |

If your server wants to query specific information about a product at a later stage, either to refresh your inventory or check for updates, you can call the following endpoint:

## Get Product

<mark style="color:blue;">`GET`</mark> `https://octo.peek.com/integrations/octo/products/:id`

#### Path Parameters

| Name                               | Type   | Description    |
| ---------------------------------- | ------ | -------------- |
| <mark style="color:red;">\*</mark> | String | The product id |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "id": "av_123",
  "internalName": "Rent-a-Kayak",
  "reference": "BRC-KAYAK",
  "locale": "en",
  "timeZone": "America/Los_Angeles",
  "allowFreesale": true,
  "availabilityType": "START_TIME",
  "deliveryFormats": ["QRCODE"],
  "deliveryMethods": ["VOUCHER"],
  "redemptionMethod": "DIGITAL",
  "capabilities": [
    {
      "id": "octo/pricing",
      "revision": 1,
      "required": true,
      "dependencies": []
    },
    {
      "id": "octo/webhooks",
      "revision": 1,
      "required": false,
      "dependencies": []
    }
  ],
  "options": [
    {
      "id": "av_123",
      "default": true,
      "internalName": "Rent-a-Kayak",
      "reference": null,
      "restrictions": {},
      "units": [
        {
          "id": "ea5fbd4c-9c2a-42f5-80c5-251a9f04da04",
          "internalName": "1-Seater Kayak",
          "reference": "1seat",
          "type": "ADULT",
          "restrictions": {
            "minAge": 18,
            "maxAge": 99,
            "idRequired": false,
            "minQuantity": 1,
            "maxQuantity": null,
            "paxCount": 1,
            "accompaniedBy": []
          }
        },
        {
          "id": "582fd9d7-43fd-4685-a9b2-35b102eaec3a",
          "internalName": "2-Seater Kayak",
          "reference": "2seat",
          "type": "ADULT",
          "restrictions": {
            "minAge": 18,
            "maxAge": 99,
            "idRequired": false,
            "minQuantity": 2,
            "maxQuantity": null,
            "paxCount": 1,
            "accompaniedBy": []
          }
        }
      ]
    }
  ]
}
```

{% endtab %}
{% endtabs %}


---

# 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://octodocs.peek.com/booking-flow/products.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.
