Products

Fetch the product for the given id.

get/products/{id}

Request

  • Base URL: http://localhost:8080/api/octo
  • URL: http://localhost:8080/api/octo/products/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

The product id

Headers

Octo-Capabilitiesstring required

A list of the Capabilities (their IDs) initialized with your request.

Accept-Languagestring

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Response

The request has succeeded.

idstring required

The unique identifier for the product, used across the platform to check availability, create bookings, etc. This identifier must be unique within the scope of the supplier’s system to ensure accurate referencing and operations.

internalNamestring required

The internal name used by the supplier to refer to the product. This name is for internal or operational purposes and may differ from the public, customer-facing name. The customer-facing name is defined separately in the title field under the octo/content capability.

referencestring nullable required

An optional internal code used by the supplier to refer to the product. This field is useful for supplier-specific workflows or cross-referencing. It can be null if no reference code exists for the product.

localestring required

The language code specifying the primary language in which the product operates. It must conform to the IETF BCP 47 standard, which defines language tags for localization (e.g., en-US for American English, fr-FR for French (France), es-ES for Spanish (Spain)).

timeZonestring

The IANA Time Zone identifier indicating the product's location (e.g., America/New_York, Europe/London).

allowFreesaleboolean required

Indicates whether an availabilityId is required when creating a booking. If set to false, bookings can be made without specifying a travel date, creating open-dated bookings.

instantConfirmationboolean required

Indicates whether the customer’s tickets or vouchers are delivered immediately after the booking is confirmed. If false, resellers must manage delayed ticket delivery processes.

instantDeliveryboolean required

This indicates whether the Reseller can expect immediate delivery of the customer's tickets. If false then the Reseller MUST be able to delay delivery of the tickets to the customer.

availabilityRequiredboolean required

Indicates whether an availabilityId is required when creating a booking. If set to false, bookings can be made without specifying a travel date, creating open-dated bookings.

availabilityType'START_TIME' | 'OPENING_HOURS' required
deliveryFormatsDeliveryFormat[] required

Lists the formats in which tickets or vouchers for this product are delivered. Each format specifies how the tickets or vouchers will be represented: QRCODE: A code presented as a QR Code, commonly used for scanning at entry points. CODE128: A linear barcode format widely used for retail and ticketing purposes. AZTECCODE: A two-dimensional barcode format similar to QR codes but more compact. It is optimized for small spaces and often used in transportation and event ticketing. PDF_URL: A URL linking to a downloadable PDF containing the complete ticket details for this product. PKPASS_URL: A URL for adding the ticket to Apple Wallet (Passbook) for easy access on iOS devices. This field ensures resellers can understand and integrate the appropriate ticket delivery formats specifically associated with this product.

deliveryMethodsDeliveryMethod[] required

Specifies all supported methods of how tickets or vouchers for this product are delivered in the booking response: TICKET: Delivered individually per unit in the booking, where each person or unit receives a separate ticket. VOUCHER: Delivered as a single voucher for the entire booking, consolidating all units under one document. This field ensures clarity on the format of ticket or voucher delivery to resellers and customers.

redemptionMethod'DIGITAL' | 'PRINT' | 'MANIFEST' required
defaultCurrencystring

Is on the object when Pricing capability is requested. Default currency for this product, if you omit the currency parameter on future endpoints this is the value the reservation system will fallback to.

availableCurrenciesstring[]

Is on the object when Pricing capability is requested. All the possible currencies that we accept for this product.

pricingPer'BOOKING' | 'UNIT'
titlestring

The public, customer-facing name of the product. This name is displayed to end customers and should accurately represent the product for marketing and sales purposes

shortDescriptionstring nullable

A brief, customer-facing description of the product. This field provides a concise overview of the product and can be null if no description is available.

descriptionstring nullable

A detailed description of the product, offering in-depth information about it and relevant details. This field can be null if extended details are not provided.

categoryLabelsCategoryLabel[]

A list of labels representing the categories applicable to the product or experience. These categories help customers quickly understand the nature, format, or features of the product. The predefined category labels are based on Google's Product Categories for Things to Do, ensuring alignment with industry standards. OCTO has also added custom categories to cover additional popular offerings. OCTO welcomes suggestions for additional categories to ensure consistency and better coverage. Please contact the team to propose updates to the specification.

durationMinutesFrominteger

Indicates the duration of the product or experience in minutes. If the duration is flexible, this represents the typical minimum duration.

durationMinutesTointeger nullable

If a number: Represents the maximum in flexible duration of the product or experience in minutes, defining a range. If null: Indicates that the duration is exact and matches the value of durationMinutesFrom.

Example response

{
  "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "internalName": "London Eye General Admission",
  "reference": "LEYE-GA",
  "locale": "en-GB",
  "timeZone": "Europe/London",
  "allowFreesale": true,
  "instantConfirmation": true,
  "instantDelivery": true,
  "availabilityRequired": true,
  "availabilityType": "START_TIME",
  "deliveryFormats": [
    "QRCODE"
  ],
  "deliveryMethods": [
    "TICKET"
  ],
  "redemptionMethod": "DIGITAL",
  "options": [
    {
      "id": "DEFAULT",
      "default": true,
      "internalName": "DEFAULT",
      "reference": null,
      "availabilityLocalStartTimes": [
        "00:00"
      ],
      "cancellationCutoff": "1 hour",
      "cancellationCutoffAmount": 1,
      "cancellationCutoffUnit": "hour",
      "requiredContactFields": [
        "firstName"
      ],
      "restrictions": {
        "minUnits": 0,
        "maxUnits": 9
      },
      "units": [
        {
          "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
          "internalName": "Adult",
          "reference": null,
          "type": "ADULT",
          "restrictions": {
            "minAge": 18,
            "maxAge": 99,
            "idRequired": false,
            "minQuantity": 1,
            "maxQuantity": 10,
            "paxCount": 1,
            "accompaniedBy": []
          },
          "requiredContactFields": [
            "firstName"
          ]
        },
        {
          "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
          "internalName": "Child",
          "reference": null,
          "type": "CHILD",
          "restrictions": {
            "minAge": 3,
            "maxAge": 12,
            "idRequired": false,
            "minQuantity": 1,
            "maxQuantity": 10,
            "paxCount": 1,
            "accompaniedBy": []
          },
          "requiredContactFields": [
            "firstName"
          ]
        },
        {
          "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
          "internalName": "Infant",
          "reference": null,
          "type": "INFANT",
          "restrictions": {
            "minAge": 0,
            "maxAge": 3,
            "idRequired": false,
            "minQuantity": 1,
            "maxQuantity": 10,
            "paxCount": 1,
            "accompaniedBy": [
              "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
            ]
          },
          "requiredContactFields": [
            "firstName"
          ]
        }
      ]
    }
  ]
}

Changes

    • warning

      added the new AZTECCODE enum value to the / response property for the response status