- ENUMs
- Error Codes
Language Codes
Language Codes
Supported language codes for API localization.
| Code | Language |
|---|---|
EN | English |
ES | Spanish |
FR | French |
IT | Italian |
DE | German |
PT | Portuguese |
NL | Dutch |
PL | Polish |
Currency Codes
Currency Codes
City Codes
City Codes
Supported cities are returned dynamically by the City API. This list may change over time, so always handle cities dynamically rather than hardcoding values.See: List Cities · List Collections · List Categories · List Subcategories · List Products
Media Types
Media Types
Supported media types in product details.
See: List Products · Get Product
| Type | Description |
|---|---|
IMAGE | Image media |
VIDEO | Video media |
PDF | PDF document |
Product Types
Product Types
Supported product types within product details.
See: List Products · Get Product
| Type |
|---|
TOUR |
ACTIVITY |
EVENT |
ATTRACTION |
TRANSFER |
AIRPORT_TRANSFER |
ADD_ON |
Listing Price Types
Listing Price Types
Pricing types used in product listings. The price type determines how inventory pricing is structured and how booking requests must be formed.
See: List Products · Get Product
| Type | Description |
|---|---|
PER_PERSON | Price is charged per individual. Inventory returns person types (e.g., ADULT, CHILD, SENIOR) each with their own price point. The booking request must include one guest object per person with a valid personType. |
PER_GROUP | A single price covers a group. Inventory returns pricing tiers by group size (e.g., 1-4 people = 120, 8-10 = $150). The booking request does not require a personType per guest. |
Inventory Types
Inventory Types
Defines how a variant’s start time and duration are structured. This affects how
See: List Inventory
startDateTime and endDateTime in inventory slots should be interpreted, and what kind of date/time picker to show the user.| Type | Description | Example |
|---|---|---|
FIXED_START_FIXED_DURATION | Starts at a precise time and lasts a fixed duration. startDateTime = actual start, endDateTime = actual end. | A Broadway show at 7:00 PM lasting 2.5 hours |
FIXED_START_FLEXIBLE_DURATION | Starts at a fixed time but the customer stays as long as they wish. startDateTime = entry time, endDateTime = venue closing time. | An observation deck visit with a timed entry slot |
FLEXIBLE_START_FIXED_DURATION | Customer can arrive any time during operating hours but the experience lasts a fixed duration once started. startDateTime = opening time, endDateTime = latest allowed entry. | A hot-air balloon ride (1 hour) during a morning window |
FLEXIBLE_START_FLEXIBLE_DURATION | Open entry and open-ended duration — customer arrives and leaves whenever they want within the day. startDateTime = opening time, endDateTime = closing time. | A theme park day pass |
For
FLEXIBLE_START_* types, startDateTime represents the opening time of the venue, not a specific entry time for the customer.Inventory Availability
Inventory Availability
Availability status within inventory slots. Determines whether and how many bookings can still be made for a given slot.
See: List Inventory
| Status | Description |
|---|---|
LIMITED | Limited spots remaining — check the remaining field for the exact count before booking. |
UNLIMITED | No cap on bookings — the slot can be booked any number of times. |
CLOSED | The slot is unavailable and cannot be booked. |
Inventory Selection Types
Inventory Selection Types
Inventory selection types for booking interfaces.
See: List Inventory
| Type | Description |
|---|---|
NORMAL | Standard selection interface |
SEATMAP | Seat map selection interface |
Person Types
Person Types
Person types valid for booking variants.
See: List Inventory · Create Booking · Get Booking — see Pax Types
| Type |
|---|
ADULT |
CHILD |
INFANT |
SENIOR |
GENERAL |
STUDENT |
YOUTH |
Additional types such as
RESIDENT, NON_EUR_CHILD, etc. may appear dynamically.Input Field Types
Input Field Types
Input field types for variant-specific customer information.
See: Get Product · List Inventory — see Input Fields
| Field | Description |
|---|---|
NAME | Customer name |
EMAIL | Email address |
PHONE | Phone number |
ADDRESS | Address information |
AGE_ | Age-related fields |
COUNTRY_ | Country information |
DATE_OF_BIRTH_ | Date of birth |
DROP_OFF_LOCATION_ | Drop-off location |
FULL_NAME_ | Full name fields |
GENDER_ | Gender information |
IDENTITY_DOCUMENT_DETAILS_ | ID document details |
LANGUAGE_ | Language preference |
NATIONALITY_ | Nationality |
PASSPORT_DETAILS_ | Passport information |
PHYSICAL_INFORMATION_-_HEIGHT_ | Physical characteristics |
PICK_UP_DETAILS_ | Pickup information |
PICKUP_LOCATION | Pickup location |
CUSTOM_* | Custom dynamic fields provided by supply partners |
Many more values may appear dynamically from supply partners. Always handle unknown values gracefully.
Input Field Data Types
Input Field Data Types
Data types an input field can have. Use this to drive form validation and rendering on your end.
The type of items in
See: Get Product · List Inventory
| Data Type | Description | Validation |
|---|---|---|
STRING | Free-form text (e.g., John Doe) | Apply regex, minLength, maxLength from the validation object if present |
ENUM | One of a predefined set of string literals (e.g., MALE, FEMALE, OTHER) | Value must be one of the entries in validation.values (always string[] for this type) |
BOOL | Boolean flag — submit as the string "true" or "false" | — |
INT | Whole-number value (e.g., 25) | Apply minValue, maxValue from validation if present |
FLOAT | Decimal number (e.g., 25.50) | Apply minValue, maxValue from validation if present |
LOCATION | Pickup or drop-off location. When validation.values is non-empty, items are predefined location objects (not strings) — the customer must select one. When validation.values is null, accept a free-form address string. | See predefined location object shape below |
validation.values — Polymorphic Field
The type of items in validation.values depends on the field’s dataType:-
ENUM—validation.valuesisstring[]. The submitted value must be an exact match. -
LOCATIONwith predefined options —validation.valuesis an array of location objects. Render these as a dropdown and submit the selected object’sidas the field value. -
All other types —
validation.valuesisnull.
Predefined Location Object Fields
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier for this location. Submit this as the field value when creating a booking. |
latitude | number | Latitude of the pickup/drop-off point in decimal degrees. |
longitude | number | Longitude of the pickup/drop-off point in decimal degrees. |
address | string | Full street address of the location. |
displayName | string | Short human-readable label for display in a dropdown (e.g., "Bellagio"). |
timingConfig.startTime | string | null | Earliest pickup time for this location (HH:mm format). Null if no restriction. |
timingConfig.endTime | string | null | Latest pickup time for this location (HH:mm format). Null if no restriction. |
timingConfig.minPeriod | integer | null | Minimum notice required for this pickup in minutes. Null if no restriction. |
timingConfig.maxPeriod | integer | null | Maximum advance booking window in minutes. Null if no restriction. |
note | object | null | Additional instruction for this pickup location. Null if no note. Contains content (string) and language (language code). |
Cashback Types
Cashback Types
Cashback value types for promotional offers. The
See: List Products · Get Product
value field on the cashback object should be interpreted according to this type.| Type | Description | Example |
|---|---|---|
ABSOLUTE | Fixed cashback amount in the product’s native currency | value: 10 → customer receives $10 cashback |
PERCENTAGE | Cashback as a percentage of the total variant price | value: 10 → customer receives 10% of the booking total as cashback |
Booking Status
Booking Status
Booking lifecycle statuses. Statuses are fluid — a booking can move between states and completed bookings can still be cancelled (e.g., venue closures).
See: Create Booking · List Bookings · Get Booking · Update Booking · Create Webhook
| Status | Description |
|---|---|
UNCAPTURED | Booking entry has been created but is in a dormant, unprocessed state. Payment has not been captured. Does not lock inventory or price. Automatically moves to CAPTURE_TIMEDOUT if not captured within 1 hour. |
PENDING | Payment captured. Booking is confirmed with the supplier and is being fulfilled. Treat this as confirmed — show it to the customer as a confirmed booking. |
COMPLETED | Booking fulfilled successfully. Tickets are generated and available in the tickets array. |
CANCELLED | Booking was cancelled — either by the partner, customer, or Headout (e.g., in case of venue closures). |
FAILED | Booking failed due to a payment or system error. Surface an appropriate error to the customer. |
CAPTURE_TIMEDOUT | The booking was not captured within the 1-hour window from creation and can no longer be captured. Create a new booking if the customer still wants to proceed. |
Ticket Types
Ticket Types
Ticket delivery formats returned in the
See: Get Booking
tickets array of a booking.| Type | Description |
|---|---|
PDF_URL | URL to a downloadable PDF ticket |
HTML_URL | URL to an HTML ticket page |
QRCODE | QR code data for scanning at the venue |
BARCODE | Barcode data for scanning at the venue |
TEXT | Plain text ticket information |
APPLE_WALLET_URL | URL to add ticket to Apple Wallet |
GOOGLE_WALLET_URL | URL to add ticket to Google Wallet |
Input Field Level
Input Field Level
Defines who a given input field should be collected for. Use this to drive form rendering — only show and collect fields appropriate for each level.
See: Get Product · List Inventory
| Level | Description | Typical Fields |
|---|---|---|
PRIMARY_CUSTOMER | Collected once, from the lead guest only. There is always exactly one primary customer per booking. | Name, email, phone, address |
ALL_CUSTOMERS | Collected from every guest in the booking, including the primary customer. | Weight, height, meal preference, date of birth |
BOOKING | Applies to the booking as a whole — not tied to any individual guest. Collected once regardless of pax count. | Pickup location, special requests, language preference |
Cancellation Reasons
Cancellation Reasons
Permitted cancellation reasons for partner cancellation requests.
See: Cancel Booking
| Value | Description |
|---|---|
TICKETS_NOT_RECEIVED | Tickets or voucher not received by the customer |
CHANGE_OF_TRAVEL_PLANS | Customer changed travel plans |
MODIFY_EXISTING_RESERVATION | Customer wants to modify an existing reservation |
FOUND_CHEAPER_OPTION_ELSEWHERE | Customer found a cheaper alternative |
OTHER | Other reason not listed above |