The Travel Curious Reseller API provides a flexible, high-performance solution for Resellers and Online Travel Agencies (OTAs) to seamlessly integrate with our global travel experience marketplace.
This API enables partners to:
- Discover Inventory: Access a comprehensive catalog of Suppliers and Products with rich, localized content.
- Real-time Availability: Query live capacity and pricing schedules to ensure accurate booking data.
- Lifecycle Management: Manage the full booking flow, including temporary holds, secure confirmations, and cancellations.
🆕 What's New in v1.3
This version unlocks conversion-boosting features not available in legacy versions, including:
- Rich Content Capabilities: A structured Content object is now available on Suppliers, Products, Rates, and Traveler Types. It provides localized, customer-facing descriptive data — multilingual text in multiple formats, media assets, feature highlights, FAQs, ratings, and reviews - kept separate from the core transactional fields.
- Booking Questions: Some products require the Reseller to collect specific information from the guest as part of checkout. v1.3 introduces a formal BookingQuestions capability: a structured set of typed questions with localized text, dependency rules, PII flags, and defined submission phases.
- Enhanced Location Data: Location data has been significantly improved in v1.3. The Location object now supports named types (such as
MEETING_POINT,START,END,REDEMPTION, andPOINT_OF_INTEREST) and carries areferences[]array that links each location to records on external mapping platforms. - Expanded Data Structures: Enhancements across core entities introduce standardized transactional fields, giving Resellers the power to share additional data received from the Suppliers without breaking baseline schemas.
Production server
Sandbox server
Suppliers
Retrieve a list of Suppliers
The Suppliers endpoints return information about the Operators connected to your account.
A Supplier represents the Operator providing the travel experience - a tour company, museum, attraction, or event venue. The Supplier object carries the operator's identity, contacts, accepted traveler types, business hours, and location data.
💡 Note on Retrieving Content: To optimize list performance and payload sizes, rich marketing content is not returned in this endpoint. To retrieve localized content at the Supplier level, you must request the specific operator via the singular endpoint (GET /suppliers/{supplier_id}) using the content=true query parameter.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| partner | string | Return suppliers with a matching | |
| code | string | Return suppliers with a matching |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data partner_id={partner_id} \ --data code={code}Retrieve a list of Suppliers
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| suppliers | array[object] | ||
| id | uuid | ID of the Supplier. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Common name for the supplier that may be displayed to the customer. | |
| title | string | Customer-facing name of the Supplier, intended for display in UIs. | |
| description | string | A detailed overview of the Supplier or operator, highlighting their offerings, background, and value proposition. This content is intended for display in full detail pages and should help users understand what makes the Supplier unique. | |
| code | string | Code of the Supplier. Every Supplier must have a unique Code. | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema Extensions may be used to exchange required operational or commercial information. | |
| businessType | array[string] | DEPRECATED. Key word or words that identify the type of business pattern: | |
| contacts | array[object] | Supplier contact information. | |
| string | Contact email address for correspondence and notifications. | ||
| name | string | Full name of the contact person. | |
| phone | string | Contact phone number pattern: | |
| title | string | The professional role or relationship of the contact. | |
| mainLocation | object | Defines a physical place associated with the experience, such as a meeting point, a stop on an itinerary, or a redemption desk. | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| otherLocations | array[object] | Other locations of the Supplier | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| hours | array[object] | Hours of the Supplier | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| travelerTypes | array[object] | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. |
Unauthorized
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx{ "meta": {...}, "suppliers": [...]}Retrieve a single Supplier
Retrieve information for a specific Operator connected to your account using the unique supplier_id.
A Supplier represents the Operator providing the travel experience - a tour company, museum, attraction, or event venue. The Supplier object carries the operator's identity, contacts, accepted traveler types, business hours, and location data.
🚀 NEW — Content Capability: Content is not returned by default. To include it, add content=true to any singular GET endpoint.
Use the locale query parameter to pass a comma-separated list of BCP 47 language tags (e.g., locale=en-US,es-ES). When specified, the API will only return content fields matching those exact language tags.
Use the optional format query parameter to specify your required text format (plain, html, markdown). You can request multiple formats simultaneously by comma-separating them (e.g., format=html,markdown). If this parameter is not specified, all available formats are returned by default.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| supplier | string | The unique |
| content | boolean | If set to true, the response will include a 'content' field with detailed metadata. Default: false | |
| locale | string | Comma-separated list of BCP 47 language tags. If specified, only content matching one of these language tags will be returned. | |
| format | string | Comma-separated list of formats. If specified, only content matching one of these formats will be returned. Enum: |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers/45bcf276-8dc1-4b19-9752-05ffdc24068f' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data content={content} \ --data locale={locale} \ --data format={format}Retrieve a single Supplier
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| supplier | object | ||
| id | uuid | ID of the Supplier. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Common name for the supplier that may be displayed to the customer. | |
| title | string | Customer-facing name of the Supplier, intended for display in UIs. | |
| description | string | A detailed overview of the Supplier or operator, highlighting their offerings, background, and value proposition. This content is intended for display in full detail pages and should help users understand what makes the Supplier unique. | |
| code | string | Code of the Supplier. Every Supplier must have a unique Code. | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema Extensions may be used to exchange required operational or commercial information. | |
| businessType | array[string] | DEPRECATED. Key word or words that identify the type of business pattern: | |
| contacts | array[object] | Supplier contact information. | |
| string | Contact email address for correspondence and notifications. | ||
| name | string | Full name of the contact person. | |
| phone | string | Contact phone number pattern: | |
| title | string | The professional role or relationship of the contact. | |
| mainLocation | object | Defines a physical place associated with the experience, such as a meeting point, a stop on an itinerary, or a redemption desk. | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| otherLocations | array[object] | Other locations of the Supplier | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| hours | array[object] | Hours of the Supplier | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| travelerTypes | array[object] | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| content | object | Provides localized, structured, and customer-facing content that can be attached to multiple entities. This object is the primary source for descriptive marketing data across all levels of the catalog. This Content object can be attached to:
The Content object supports multilingual text, rich media, features, FAQs, ratings, and reviews intended for display in Reseller and customer-facing experiences. When present, consumers SHOULD prioritize values from the Content object for display and fall back to the corresponding standard entity fields when content data is not available. | |
| id | string | Unique identifier for this content object. Used to reference and manage content independently of the parent entity. | |
| name | array[object] | A LocalizedTextSet describing the content's name. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A LocalizedTextSet describing the content's title. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| subtitle | array[object] | A LocalizedTextSet describing the content's subtitle. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| description | array[object] | A LocalizedTextSet describing the content's description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| shortDescription | array[object] | A LocalizedTextSet describing the content's short description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| categories | array[object] | A LocalizedTextSet describing the content's categories. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| duration | object | Indicates the typical or expected duration of the experience. May include a numeric length, unit, and optional localized description. | |
| length | number | Numeric duration value expressed in the specified unit. | |
| flexible | boolean | If | |
| unit | string | Unit of time used to interpret the duration length. Enum: | |
| description | array[object] | A short description of this duration. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| faqs | array[object] | ||
| question | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| answer | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| features | array[object] | ||
| type | string | Classification of the feature. Enum: | |
| description | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| media | array[object] | ||
| url | string | Direct link to the media asset (image, video, etc.). Must be publicly accessible. | |
| type | string | The media file type. Enum: | |
| relationship | string | Describes how the media relates to the object. Examples: "logo" (Supplier branding), "cover" (hero image for Product), "gallery" (set of supplementary visuals). Helps clients render or prioritize media appropriately. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| caption | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| copyright | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| credits | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| metadata | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| ratings | array[object] | ||
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| average | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| count | integer | Total number of ratings that contributed to the average. Must be non-negative values (integer ≥ 0). | |
| lastUpdated | date-time | Timestamp of the last time the rating data was refreshed. Format: ISO 8601 (e.g., "2025-06-25T10:00:00Z"). Always use a valid lastUpdated timestamp | |
| reviews | array[object] | ||
| reviewerName | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| content | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| rating | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| createdAt | date-time | Timestamp of when the review was created. Useful for sorting and freshness. Format: ISO 8601 (e.g., "2025-06-25T14:20:00Z"). | |
| verified | boolean | Indicates whether the review is from a verified booking or customer. Helps establish credibility and trust. | |
| metadata | object | Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields. | |
| lastUpdated | date-time | Timestamp indicating when the record was last updated. |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
{ "meta": { "reqId": "5fd78809-4700-46d7-8386-3b8738117f4d" }, "supplier": { "id": "08e4f505-3374-447e-b3b0-32698603b155", "code": "skyline_city_tours_lon", "version": 3, "name": "Skyline City Tours London", "title": "Skyline - Premium London Sightseeing", "description": "Discover the secrets of London with our award-winning walking and bus tours.", "businessType": [ "tour_operator" ], "contacts": [ { "name": "London Support", "email": "uk-support@skyline-tours.example.com", "phone": "+44 20 7946 0000", "title": "Branch Lead" } ], "hours": [ { "timezone": "Europe/London", "daysOfWeek": [ 1, 2, 3, 4, 5 ], "times": [ { "open": "09:00", "close": "18:00" } ], "valid": { "from": "2026-01-01T00:00:00Z" } } ], "mainLocation": { "name": "Westminster Meeting Point", "type": "PRIMARY", "address": { "streetAddress": "Victoria Embankment", "locality": "London", "countryCode": "GBR" }, "longLat": { "latitude": 51.5074, "longitude": -0.1278 } }, "content": { "id": "content_sct_lon_002", "media": [ { "url": "https://cdn.example.com/sct/london-bridge.jpg", "type": "image/jpeg", "relationship": "COVER" } ] }, "extensions": { "x-ticketingSystem": "NativeCloud" }, "partnerId": "partner-ext-1122" }}Retrieve a list of Products
Returns a list of Products connected to your account. You can filter the list to retrieve all products belonging to a specific parent Supplier.
A Product is a bookable experience offered by a Supplier - a walking tour, museum entry, river cruise, or live show. Each Product belongs to one Supplier and may have multiple Rates.
💡 Note on Retrieving Content: To optimize list performance and payload sizes, rich marketing content is not returned in this endpoint. To retrieve localized content at the Product level, you must request the specific experience via the singular endpoint (GET /suppliers/{supplier_id}/products/{product_id}) using the content=true query parameter.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| supplier | string | The unique |
| limit | integer | Limit Product list | |
| offset | integer | Offset Product list | |
| partner | string | Partner defined ID | |
| code | string | Product code |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers/45bcf276-8dc1-4b19-9752-05ffdc24068f/products' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data limit={limit} \ --data offset={offset} \ --data partner_id={partner_id} \ --data code={code}Retrieve a list of Products
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| page | object | Returns the limit and offset used in the request. | |
| limit | int32 | ||
| offset | int32 | ||
| products | array[object] | ||
| id | uuid | ID of the Product. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name the Supplier uses to identify the Product | |
| title | string | Customer-facing Product name, suitable for marketing or UI display. | |
| description | string | Long-form Product narrative describing the activity, experience or event. This content is intended for display on Product detail pages and should help users understand what is being offered. | |
| code | string | Code of the Product | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: securityPolicy: Large bags and strollers must be checked at the storage lockers. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| deliveryFormats | string | Specifies the technical format of the barcode or identifier that will be issued upon booking confirmation. This field informs the Reseller how to correctly parse, render, or encode the ticket value for the end guest. While the list contains standard industry types like Enum: | |
| deliveryMethods | string | Defines how fulfillment identifiers are distributed within a booking. A value of Enum: | |
| instantConfirmation | boolean | Indicates whether the booking is confirmed immediately. If | |
| instantDelivery | boolean | Indicates whether fulfillment identifiers (tickets/vouchers) are available immediately upon confirmation. If | |
| redemptionInstructions | string | Provides clear, human-readable directions explaining how the guest should redeem their ticket or voucher at the venue. | |
| redemptionMethod | string | This indicates the redemption requirements for the customer. A value of MANIFEST indicates that the customer MUST provide a form of identification to redeem and as such a printed or digital copy of the ticket is OPTIONAL. A value of DIGITAL indicates that the customer MUST provide a copy of the ticket but MAY be digital or printed. A value of PRINT indicates that the customer MUST provide a printed copy of the ticket (this is typically only used when the Supplier must retain the printed copy for their records). Enum: | |
| locale | string | Language and region identifier. Must be a valid BCP 47 RFC 5646 RFC 4647 language tag. | |
| productType | array[string] | Classifies the operational nature of the Product to determine the booking behavior.
Enum: | |
| contacts | array[object] | Product contact information. | |
| string | Contact email address for correspondence and notifications. | ||
| name | string | Full name of the contact person. | |
| phone | string | Contact phone number pattern: | |
| title | string | The professional role or relationship of the contact. | |
| hours | array[object] | Hours of the Product | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| location | object | Defines a physical place associated with the experience, such as a meeting point, a stop on an itinerary, or a redemption desk. | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| otherLocations | array[object] | Additional locations for the Product | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
{ "meta": { "reqId": "5fd78809-4700-46d7-8386-3b8738117f4d" }, "products": [ { "id": "f42d88a1-8892-4c2a-b772-992a8e310022", "supplierId": "08e4f505-3374-447e-b3b0-32698603b155", "OrganizationID": "org-global-water-001", "code": "OA-BCN-PARA-SUNSET", "version": 1, "name": "Sunset Parasailing Adventure", "title": "Sky High: Barcelona Sunset Parasailing", "description": "Soar 150 meters above the Mediterranean during the golden hour.", "productType": [ "ATTRACTION" ], "deliveryFormats": [ "QR_CODE", "URL" ], "deliveryMethods": [ "VOUCHER" ], "instantConfirmation": true, "instantDelivery": true, "locale": "en-US", "redemptionInstructions": "Redeem your voucher at the Beachside Kiosk near the W Hotel.", "contacts": [ { "name": "Beach Operations", "email": "beach@example.com", "phone": "+34 931 00 00 10", "title": "Beach Coordinator" } ], "hours": [ { "timezone": "Europe/Madrid", "daysOfWeek": [ 1, 2, 3, 4, 5, 6, 7 ], "times": [ { "open": "17:00", "close": "21:00" } ], "valid": { "from": "2026-05-01T00:00:00Z", "until": "2026-09-30T23:59:59Z" } } ], "location": { "name": "Beachside Kiosk", "title": "Oceanic Sunset Base", "description": "Directly on the sand.", "type": "MEETING_POINT", "address": { "streetAddress": "Platja de la Barceloneta", "locality": "Barcelona", "region": "Catalunya", "postalCode": "08003", "countryCode": "ESP" }, "longLat": { "latitude": 41.3688, "longitude": 2.1901 } }, "otherLocations": [ { "name": "Deep Water Take-off Zone", "title": "Parasail Boat Launch", "type": "START", "address": { "locality": "Barcelona Offshore", "countryCode": "ESP" } } ], "extensions": { "x-max-height": "150m" }, "partnerId": "partner-id-6677" } ]}Retrieve a single Product
Retrieve information for a specific Product belonging to a specific parent Supplier connected to your account using the unique supplier_id and product_id.
A Product is a bookable experience offered by a Supplier - a walking tour, museum entry, river cruise, or live show. Each Product belongs to one Supplier and may have multiple Rates.
🚀 NEW — Content Capability: To retrieve Content, you must request the specific Product via its singular endpoint (GET /suppliers/{supplier_id}/products/{product_id) using the content=true query parameter.
Use the locale query parameter to pass a comma-separated list of BCP 47 language tags (e.g., locale=en-US,es-ES). When specified, the API will only return content fields matching those exact language tags.
Use the optional format query parameter to specify your required text format (plain, html, markdown). You can request multiple formats simultaneously by comma-separating them (e.g., format=html,markdown). If this parameter is not specified, all available formats are returned by default.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| product | string | ||
| supplier | string |
| content | boolean | If set to true, the response will include a 'content' field with detailed metadata. Default: false | |
| locale | string | Comma-separated list of BCP 47 language tags. If specified, only content matching one of these language tags will be returned. | |
| format | string | Comma-separated list of formats. If specified, only content matching one of these formats will be returned. Enum: |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers/08e4f505-3374-447e-b3b0-32698603b155/products/f42d88a1-8892-4c2a-b772-992a8e310022' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data content={content} \ --data locale={locale} \ --data format={format}Successfully retrieved a single Product.
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| product | object | ||
| id | uuid | ID of the Product. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name the Supplier uses to identify the Product | |
| title | string | Customer-facing Product name, suitable for marketing or UI display. | |
| description | string | Long-form Product narrative describing the activity, experience or event. This content is intended for display on Product detail pages and should help users understand what is being offered. | |
| code | string | Code of the Product | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: securityPolicy: Large bags and strollers must be checked at the storage lockers. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| deliveryFormats | string | Specifies the technical format of the barcode or identifier that will be issued upon booking confirmation. This field informs the Reseller how to correctly parse, render, or encode the ticket value for the end guest. While the list contains standard industry types like Enum: | |
| deliveryMethods | string | Defines how fulfillment identifiers are distributed within a booking. A value of Enum: | |
| instantConfirmation | boolean | Indicates whether the booking is confirmed immediately. If | |
| instantDelivery | boolean | Indicates whether fulfillment identifiers (tickets/vouchers) are available immediately upon confirmation. If | |
| redemptionInstructions | string | Provides clear, human-readable directions explaining how the guest should redeem their ticket or voucher at the venue. | |
| redemptionMethod | string | This indicates the redemption requirements for the customer. A value of MANIFEST indicates that the customer MUST provide a form of identification to redeem and as such a printed or digital copy of the ticket is OPTIONAL. A value of DIGITAL indicates that the customer MUST provide a copy of the ticket but MAY be digital or printed. A value of PRINT indicates that the customer MUST provide a printed copy of the ticket (this is typically only used when the Supplier must retain the printed copy for their records). Enum: | |
| locale | string | Language and region identifier. Must be a valid BCP 47 RFC 5646 RFC 4647 language tag. | |
| productType | array[string] | Classifies the operational nature of the Product to determine the booking behavior.
Enum: | |
| contacts | array[object] | Product contact information. | |
| string | Contact email address for correspondence and notifications. | ||
| name | string | Full name of the contact person. | |
| phone | string | Contact phone number pattern: | |
| title | string | The professional role or relationship of the contact. | |
| hours | array[object] | Hours of the Product | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| location | object | Defines a physical place associated with the experience, such as a meeting point, a stop on an itinerary, or a redemption desk. | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| otherLocations | array[object] | Additional locations for the Product | |
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| content | object | Provides localized, structured, and customer-facing content that can be attached to multiple entities. This object is the primary source for descriptive marketing data across all levels of the catalog. This Content object can be attached to:
The Content object supports multilingual text, rich media, features, FAQs, ratings, and reviews intended for display in Reseller and customer-facing experiences. When present, consumers SHOULD prioritize values from the Content object for display and fall back to the corresponding standard entity fields when content data is not available. | |
| id | string | Unique identifier for this content object. Used to reference and manage content independently of the parent entity. | |
| name | array[object] | A LocalizedTextSet describing the content's name. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A LocalizedTextSet describing the content's title. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| subtitle | array[object] | A LocalizedTextSet describing the content's subtitle. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| description | array[object] | A LocalizedTextSet describing the content's description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| shortDescription | array[object] | A LocalizedTextSet describing the content's short description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| categories | array[object] | A LocalizedTextSet describing the content's categories. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| duration | object | Indicates the typical or expected duration of the experience. May include a numeric length, unit, and optional localized description. | |
| length | number | Numeric duration value expressed in the specified unit. | |
| flexible | boolean | If | |
| unit | string | Unit of time used to interpret the duration length. Enum: | |
| description | array[object] | A short description of this duration. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| faqs | array[object] | ||
| question | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| answer | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| features | array[object] | ||
| type | string | Classification of the feature. Enum: | |
| description | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| media | array[object] | ||
| url | string | Direct link to the media asset (image, video, etc.). Must be publicly accessible. | |
| type | string | The media file type. Enum: | |
| relationship | string | Describes how the media relates to the object. Examples: "logo" (Supplier branding), "cover" (hero image for Product), "gallery" (set of supplementary visuals). Helps clients render or prioritize media appropriately. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| caption | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| copyright | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| credits | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| metadata | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| ratings | array[object] | ||
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| average | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| count | integer | Total number of ratings that contributed to the average. Must be non-negative values (integer ≥ 0). | |
| lastUpdated | date-time | Timestamp of the last time the rating data was refreshed. Format: ISO 8601 (e.g., "2025-06-25T10:00:00Z"). Always use a valid lastUpdated timestamp | |
| reviews | array[object] | ||
| reviewerName | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| content | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| rating | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| createdAt | date-time | Timestamp of when the review was created. Useful for sorting and freshness. Format: ISO 8601 (e.g., "2025-06-25T14:20:00Z"). | |
| verified | boolean | Indicates whether the review is from a verified booking or customer. Helps establish credibility and trust. | |
| metadata | object | Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields. | |
| lastUpdated | date-time | Timestamp indicating when the record was last updated. |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx{ "meta": {...}, "product": {...}}Retrieve a list of Rates
Returns a list of Rates connected to your account. You can filter the list to retrieve all rates belonging to a specific parent product_idand supplier_id.
A Rate defines a specific bookable option within a Product. A single Product can have multiple Rates, for example, separate morning and afternoon sessions with independent capacity, or a standard and premium tier. Each Rate has its own pricing, hours, cancellation policy, and hold configuration.
🚀 NEW — Booking Questions
To retrieve Booking Questions, you must use the bookingQuestions=true query parameter.
Use the locale query parameter to pass a comma-separated list of BCP 47 language tags (e.g., locale=en-US,es-ES). When specified, the API will only return content fields matching those exact language tags.
Use the optional format query parameter to specify your required text format (plain, html, markdown). You can request multiple formats simultaneously by comma-separating them (e.g., format=html,markdown). If this parameter is not specified, all available formats are returned by default.
💡 Note on Retrieving Content: To optimize list performance and payload sizes, rich marketing content is not returned in this endpoint. To retrieve localized content at the Rate level, you must request the specific option via the singular endpoint (GET /suppliers/{supplier_id}/products/{product_id}/rates/{rate_id}) using the content=true query parameter.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| product | string | The unique | |
| supplier | string |
| valid | string | Filters valid Rates within end time | |
| valid | string | Filters valid Rates within start time. | |
| valid | string | End time to query. | |
| valid | string | Start time to query. | |
| limit | integer | Limit to query. | |
| offset | integer | Offset to query. | |
| option | string | Option ID to query, identifies Rates as being grouped together | |
| partner | string | Partner defined ID | |
| code | string | Rate code to query. | |
| bookingQuestions | boolean | Includes booking questions field in the response, if available. Default: false |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers/30c752e0-8057-4c7b-8ccb-9cd0c6996605/products/539aa96d-3f2b-41b7-8341-d847c0262c6b/rates' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data valid_during_end={valid_during_end} \ --data valid_during_start={valid_during_start} \ --data valid_from={valid_from} \ --data valid_until={valid_until} \ --data limit={limit} \ --data offset={offset} \ --data option_id={option_id} \ --data partner_id={partner_id} \ --data code={code} \ --data bookingQuestions={bookingQuestions}Retrieve a list of Rates
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| rates | array[object] | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string |
Bad Request
Unauthorized
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
{ "meta": { "reqId": "5fd78809-4700-46d7-8386-3b8738117f4d" }, "rates": [ { "cancelable": true, "code": "MORNING-STD", "cutoff": 60, "description": "Perfect for early birds who want to explore the city before the crowds.", "ext": { "cancelPolicyDescription": "Full refund available up to 24 hours before start time." }, "holdable": true, "holdablePeriod": 600, "hours": [ { "daysOfWeek": [ 1, 2, 3, 4, 5 ], "times": [ { "close": "12:00", "open": "09:00" } ], "timezone": "America/New_York", "valid": { "from": "2023-01-01T00:00:00-05:00", "until": "2023-12-31T23:59:59-05:00" } } ], "id": "5fd78809-4700-46d7-8386-3b8738117f4d", "maxTravelers": 10, "minTravelers": 1, "name": "Morning", "optionId": "5fd78809-4700-46d7-8386-3b8738117f4d", "partnerId": "9856a211-092e-4ee9-b93c-5e71d1d6f2e7", "prices": [ { "id": "5fd78809-4700-46d7-8386-3b8738117f4d", "name": "Adult", "net": { "amount": 3500, "currency": "USD" }, "retail": { "amount": 4000, "currency": "USD" }, "status": "ACTIVE", "travelerType": { "ageBand": "ADULT", "maxAge": 99, "minAge": 18, "name": "Adult", "title": "Adult (18-64)", "description": "Price for a single adult traveler." }, "unitId": "SY2AB3" } ], "productId": "5fd78809-4700-46d7-8386-3b8738117f4d", "refundable": true, "title": "Midtown Quest - Morning Explorer", "type": "RESERVED", "valid": { "from": "2023-01-01T00:00:00-05:00", "until": "2023-12-31T23:59:59-05:00" }, "version": 1 } ]}Retrieve a single Rate
Returns a Rate. Retrieve information for a specific Rate belonging to a specific parent Product connected to your account using the unique supplier_id, product_id, and rate_id.
A Rate defines a specific bookable option within a Product. A single Product can have multiple Rates, for example, separate morning and afternoon sessions with independent capacity, or a standard and premium tier. Each Rate has its own pricing, hours, cancellation policy, and hold configuration.
🚀 NEW — Booking Questions & Content Capabilities
To retrieve Booking Questions, you must use the bookingQuestions=true query parameter.
To retrieve Content, you must request the specific Rate via its singular endpoint (GET /rates/{id}) using the content=true query parameter.
Use the locale query parameter to pass a comma-separated list of BCP 47 language tags (e.g., locale=en-US,es-ES). When specified, the API will only return content fields matching those exact language tags.
Use the optional format query parameter to specify your required text format (plain, html, markdown). You can request multiple formats simultaneously by comma-separating them (e.g., format=html,markdown). If this parameter is not specified, all available formats are returned by default.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| product | string | ||
| rate | string | ||
| supplier | string |
| content | boolean | If set to true, the response will include a 'content' field with detailed metadata. Default: false | |
| locale | string | Comma-separated list of BCP 47 language tags. If specified, only content matching one of these language tags will be returned. | |
| format | string | Comma-separated list of formats. If specified, only content matching one of these formats will be returned. Enum: | |
| bookingQuestions | boolean | Includes booking questions field in the response, if available. Default: false |
curl --get \ --url 'https://booking.redeam.io/v1.3/suppliers/3434b6e3-eab5-4240-9e6e-cb019eb9b16a/products/cc1d9b14-f6b4-4dba-ad2c-17b35eb71fe2/rates/cf2ce31f-a614-41db-b704-e8c44eff20b7' \ --header 'X-Request-ID: a9a03f82-8080-4772-ada3-dc678b28dfd9' \ --header 'X-API-Key: {X-API-Key}' \ --header 'X-API-Secret: {X-API-Secret}' \ --data content={content} \ --data locale={locale} \ --data format={format} \ --data bookingQuestions={bookingQuestions}Retrieve a single Rate
| object | object | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string | ||
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| content | object | Provides localized, structured, and customer-facing content that can be attached to multiple entities. This object is the primary source for descriptive marketing data across all levels of the catalog. This Content object can be attached to:
The Content object supports multilingual text, rich media, features, FAQs, ratings, and reviews intended for display in Reseller and customer-facing experiences. When present, consumers SHOULD prioritize values from the Content object for display and fall back to the corresponding standard entity fields when content data is not available. | |
| id | string | Unique identifier for this content object. Used to reference and manage content independently of the parent entity. | |
| name | array[object] | A LocalizedTextSet describing the content's name. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A LocalizedTextSet describing the content's title. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| subtitle | array[object] | A LocalizedTextSet describing the content's subtitle. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| description | array[object] | A LocalizedTextSet describing the content's description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| shortDescription | array[object] | A LocalizedTextSet describing the content's short description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| categories | array[object] | A LocalizedTextSet describing the content's categories. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| duration | object | Indicates the typical or expected duration of the experience. May include a numeric length, unit, and optional localized description. | |
| length | number | Numeric duration value expressed in the specified unit. | |
| flexible | boolean | If | |
| unit | string | Unit of time used to interpret the duration length. Enum: | |
| description | array[object] | A short description of this duration. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| faqs | array[object] | ||
| question | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| answer | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| features | array[object] | ||
| type | string | Classification of the feature. Enum: | |
| description | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| media | array[object] | ||
| url | string | Direct link to the media asset (image, video, etc.). Must be publicly accessible. | |
| type | string | The media file type. Enum: | |
| relationship | string | Describes how the media relates to the object. Examples: "logo" (Supplier branding), "cover" (hero image for Product), "gallery" (set of supplementary visuals). Helps clients render or prioritize media appropriately. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| caption | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| copyright | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| credits | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| metadata | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| ratings | array[object] | ||
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| average | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| count | integer | Total number of ratings that contributed to the average. Must be non-negative values (integer ≥ 0). | |
| lastUpdated | date-time | Timestamp of the last time the rating data was refreshed. Format: ISO 8601 (e.g., "2025-06-25T10:00:00Z"). Always use a valid lastUpdated timestamp | |
| reviews | array[object] | ||
| reviewerName | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| content | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| rating | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| createdAt | date-time | Timestamp of when the review was created. Useful for sorting and freshness. Format: ISO 8601 (e.g., "2025-06-25T14:20:00Z"). | |
| verified | boolean | Indicates whether the review is from a verified booking or customer. Helps establish credibility and trust. | |
| metadata | object | Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields. | |
| lastUpdated | date-time | Timestamp indicating when the record was last updated. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| content | object | Provides localized, structured, and customer-facing content that can be attached to multiple entities. This object is the primary source for descriptive marketing data across all levels of the catalog. This Content object can be attached to:
The Content object supports multilingual text, rich media, features, FAQs, ratings, and reviews intended for display in Reseller and customer-facing experiences. When present, consumers SHOULD prioritize values from the Content object for display and fall back to the corresponding standard entity fields when content data is not available. | |
| id | string | Unique identifier for this content object. Used to reference and manage content independently of the parent entity. | |
| name | array[object] | A LocalizedTextSet describing the content's name. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A LocalizedTextSet describing the content's title. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| subtitle | array[object] | A LocalizedTextSet describing the content's subtitle. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| description | array[object] | A LocalizedTextSet describing the content's description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| shortDescription | array[object] | A LocalizedTextSet describing the content's short description. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| categories | array[object] | A LocalizedTextSet describing the content's categories. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| duration | object | Indicates the typical or expected duration of the experience. May include a numeric length, unit, and optional localized description. | |
| length | number | Numeric duration value expressed in the specified unit. | |
| flexible | boolean | If | |
| unit | string | Unit of time used to interpret the duration length. Enum: | |
| description | array[object] | A short description of this duration. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| faqs | array[object] | ||
| question | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| answer | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| features | array[object] | ||
| type | string | Classification of the feature. Enum: | |
| description | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| media | array[object] | ||
| url | string | Direct link to the media asset (image, video, etc.). Must be publicly accessible. | |
| type | string | The media file type. Enum: | |
| relationship | string | Describes how the media relates to the object. Examples: "logo" (Supplier branding), "cover" (hero image for Product), "gallery" (set of supplementary visuals). Helps clients render or prioritize media appropriately. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| caption | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| copyright | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| credits | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| metadata | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| ratings | array[object] | ||
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| average | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| count | integer | Total number of ratings that contributed to the average. Must be non-negative values (integer ≥ 0). | |
| lastUpdated | date-time | Timestamp of the last time the rating data was refreshed. Format: ISO 8601 (e.g., "2025-06-25T10:00:00Z"). Always use a valid lastUpdated timestamp | |
| reviews | array[object] | ||
| reviewerName | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| title | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| content | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| source | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| rating | object | Aggregates review scores from sources like Google, TripAdvisor, Yelp, etc. This provides social proof, helping users quickly evaluate the quality and reliability of the experience. | |
| value | number | Rating value. | |
| min | integer | Minimum possible rating. | |
| max | integer | Maximum possible rating. | |
| createdAt | date-time | Timestamp of when the review was created. Useful for sorting and freshness. Format: ISO 8601 (e.g., "2025-06-25T14:20:00Z"). | |
| verified | boolean | Indicates whether the review is from a verified booking or customer. Helps establish credibility and trust. | |
| metadata | object | Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields. | |
| lastUpdated | date-time | Timestamp indicating when the record was last updated. |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx{ "meta": {...}, "rate": {...}}Retrieve a list of availabilities
Returns a list of availabilities. Availabilities will be returned which have a start value in response body greater than or equal to parameter start AND less than or equal to parameter end, if both of these are provided in query string parameters
NOTE: For Rates of type FREESALE, availabilities will only be returned when the rate_id parameter is specified.
The Reseller API accepts a query parameter called granularity, which allows you to define how availability data is grouped. It accepts two values: travelerType or rate. If this value is passed, the availability data is broken down specifically at the ageBand level. This is useful if a Supplier has distinct capacity limits for different guest types.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| product | string | ||
| supplier | string |
| end | string | End of the availability request range, as an RFC3339 date-time. | |
| start | string | Start of the availability request range, as an RFC3339 date-time. | |
| rate | string | ||
| granularity | string | Defines the granularity level for fetching availabilities. Enum: |
Retrieve a list of availabilities
| object | object | ||
| availabilities | object | ||
| byRate | object | A list of all available windows for the Rate. Availability records by Rate ID. | |
| * | object | ||
| availability | array[object] | ||
| id | string | A unique identifier for the specific availability slot. This value is passed directly from the supplier. Partners should not attempt to validate it against a UUID regex pattern. | |
| capacity | int32 | The number of spots remaining. For open-dated Products, this represents the remaining daily allotment. | |
| maxCapacity | int32 | The total capacity for this period. If the maximum capacity has not been set by the operator, then its value will be -1. | |
| start | date-time | The start of the bookable window. | |
| end | date-time | The end of the bookable window. | |
| extensions | object | Extended data of the availability. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: opponentName: vs. New York Yankees | |
| unit | string | The availability's Unit ID. Only available when | |
| description | string | Description of the availability object. | |
| expires | date-time | The time at which this availability data is no longer guaranteed to be accurate. | |
| productId | uuid | The ID of the product used in the availability request. | |
| retrieved | date-time | The exact time this availability snapshot was fetched. | |
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Bad Request
Unauthorized
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Retrieve a single availability
Validate availability status and remaining capacity for a specific time and quantity. Highly recommended as a final pre-check immediately before placing a Hold.
Supports the granularity parameter to break down capacity rules at the traveler type/age band level.
NOTE: For Rates of type FREESALE, an availability will only be returned when the rate_id parameter is specified.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| product | string | ||
| supplier | string |
| at | string | Date Time of availability | |
| qty | integer | Quantity of availability | |
| rate | string | ||
| granularity | string | To define granularity level for fetching availabilities. Enum: |
Retrieve a single availability
| object | object | ||
| availability | object | Represents a bookable window of time. This can refer to a specific timed slot (e.g., 10:00 AM) or a broader validity period for open-dated Products (e.g., a Full Day Pass). | |
| id | string | A unique identifier for the specific availability slot. This value is passed directly from the supplier. Partners should not attempt to validate it against a UUID regex pattern. | |
| capacity | int32 | The number of spots remaining. For open-dated Products, this represents the remaining daily allotment. | |
| maxCapacity | int32 | The total capacity for this period. If the maximum capacity has not been set by the operator, then its value will be -1. | |
| start | date-time | The start of the bookable window. | |
| end | date-time | The end of the bookable window. | |
| extensions | object | Extended data of the availability. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: opponentName: vs. New York Yankees | |
| unit | string | The availability's Unit ID. Only available when | |
| description | string | Description of the availability object. | |
| bookable | boolean | Value is true when a bookable availability is found. | |
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Bad Request
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Price Schedule
Fetches a price schedule.
Returns a price schedule for the requested Product, if one exists. The expected successful response is a multi-level map; this map has three levels:
- A map of Rate IDs (string, UUID) to maps (level 2).
- A map of date strings (YYYY-MM-DD) to arrays (level 3).
- An array of prices, available under the parent date & belonging to the parent
rate_id. A price schedule price MUST be used for any holds made against the price's parent date. If a price has one or morestartTimes, that price MUST be used when placing a hold with the sameattime.
| supplier | string | Unique ID of the Supplier | |
| product | string | Unique ID of the Product |
| start | string | Starting date (RFC3339 full-date) of the range to fetch prices for, inclusive. | |
| end | string | End date (RFC3339 full-date) of the range to fetch prices for, inclusive. Defaults to 30 days after the | |
| rate | string | Filter returned prices to those under the specified |
A breakdown of prices by Rate and date.
| object | object | A map of Rate IDs to dates & prices. | |
| * | object | A map of dates to prices. | |
| * | array[object] | A list of available prices on this Rate and date | |
| id | uuid | The unique identifier for this scheduled price. This ID must be used in booking requests for the matching date/time. | |
| name | string | Human-readable name for the pricing tier. | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| includedTaxes | object | ||
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| startTimes | array[string] | A list of RFC3339 date-times representing the specific start times when this price can be used. The date component of each timestamp in the | |
| status | string | Determines if bound channels can list this price. Enum: |
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Holds
Acquire a hold
A Hold temporarily reserves inventory while a guest completes checkout. Implementing the Hold is mandatory, but not always mandatory to send a Hold before a booking is created. The Hold request requires the supplierId, productId, rateId, priceId, availabilityId, and travelerType from your earlier responses.
If the Hold succeeds, the response includes a holdId and an expires timestamp.
The Hold remains active until it expires, or until you explicitly release it with a DELETE /holds/{hold_id}.
🚀 NEW — Booking Questions Capability
If the Rate includes bookingQuestions[] with phase hold, those answers must be submitted as part of the Hold request body. Required questions (required true) will cause the Hold request to fail if they are omitted. Include an answers array at the Hold level for questions with scope booking, or within each traveler context for questions with scope guest. For questions with scope guest and phase hold, submit the answer inside the relevant items[] or traveler block.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| object | object | ||
| hold | object | ||
| id | uuid | Unique identifier for the Hold. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| extensions | object | Extended data for the hold. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: "PCKUP-2023-8238" beta-ticketLocations: '[{"section":"113","row":"9","seatNumbers":[1,2],"seats":["1","2"]}]' | |
| expires | date-time | The Datetime when the hold expires. Resellers must convert this hold into a Booking before this time; otherwise, the inventory reservation is canceled and released back to the Supplier. A valid RFC3339 expiration date-time MAY be provided in the request, but the value of the expires field in the response MUST take precedence. | |
| items | array[object] | Items in the hold. The list of individual Rate and Price selections currently reserved within this hold. | |
| at | date-time | The intended travel / start date for the hold item, which should match the | |
| availabilityId | string | Availability selection for the Hold item | |
| id | uuid | A unique identifier for this hold item, distinct from the ID of the hold itself. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Hold item. This ID matches the | |
| quantity | int32 | Quantity of the hold item. The number of units reserved for this specific line item. Must be within the | |
| rateId | uuid | Rate ID for the hold item Rate. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| travelerType | string | Traveler type for the Hold item. Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. Enum: | |
| ext | object | Extended data for the Hold item. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Successfully acquired a hold.
| object | object | ||
| hold | object | ||
| id | uuid | Unique identifier for the Hold. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| extensions | object | Extended data for the hold. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: "PCKUP-2023-8238" beta-ticketLocations: '[{"section":"113","row":"9","seatNumbers":[1,2],"seats":["1","2"]}]' | |
| expires | date-time | The Datetime when the hold expires. Resellers must convert this hold into a Booking before this time; otherwise, the inventory reservation is canceled and released back to the Supplier. A valid RFC3339 expiration date-time MAY be provided in the request, but the value of the expires field in the response MUST take precedence. | |
| items | array[object] | Items in the hold. The list of individual Rate and Price selections currently reserved within this hold. | |
| at | date-time | The intended travel / start date for the hold item, which should match the | |
| availabilityId | string | Availability selection for the Hold item | |
| id | uuid | A unique identifier for this hold item, distinct from the ID of the hold itself. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Hold item. This ID matches the | |
| quantity | int32 | Quantity of the hold item. The number of units reserved for this specific line item. Must be within the | |
| rateId | uuid | Rate ID for the hold item Rate. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| travelerType | string | Traveler type for the Hold item. Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. Enum: | |
| ext | object | Extended data for the Hold item. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| retrieved | date-time | Datetime of retrieval | |
| status | string | Status of the hold Enum: | |
| timeline | array[object] | Timeline of actions taken on the Hold. | |
| timestamp | date-time | ||
| typeOf | string | Enum: | |
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Bad Request
Unauthorized
Conflict
Entity Too Large
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Retrieve a hold
Retrieve an active Hold by its ID. Returns the same structure as the POST /holds response.
🚀 NEW — Booking Questions Capability
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| hold | string | ID of the hold to retrieve. |
Successfully retrieved a hold.
| object | object | ||
| hold | object | ||
| id | uuid | Unique identifier for the Hold. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| extensions | object | Extended data for the hold. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: "PCKUP-2023-8238" beta-ticketLocations: '[{"section":"113","row":"9","seatNumbers":[1,2],"seats":["1","2"]}]' | |
| expires | date-time | The Datetime when the hold expires. Resellers must convert this hold into a Booking before this time; otherwise, the inventory reservation is canceled and released back to the Supplier. A valid RFC3339 expiration date-time MAY be provided in the request, but the value of the expires field in the response MUST take precedence. | |
| items | array[object] | Items in the hold. The list of individual Rate and Price selections currently reserved within this hold. | |
| at | date-time | The intended travel / start date for the hold item, which should match the | |
| availabilityId | string | Availability selection for the Hold item | |
| id | uuid | A unique identifier for this hold item, distinct from the ID of the hold itself. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Hold item. This ID matches the | |
| quantity | int32 | Quantity of the hold item. The number of units reserved for this specific line item. Must be within the | |
| rateId | uuid | Rate ID for the hold item Rate. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| travelerType | string | Traveler type for the Hold item. Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. Enum: | |
| ext | object | Extended data for the Hold item. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| retrieved | date-time | Datetime of retrieval | |
| status | string | Status of the hold Enum: | |
| timeline | array[object] | Timeline of actions taken on the Hold. | |
| timestamp | date-time | ||
| typeOf | string | Enum: | |
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Release a hold
Release a Hold when a guest abandons their cart or closes the browser. This immediately frees the reserved capacity for other customers rather than waiting for automatic expiry.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| hold | string | ID of the hold to release. |
Successfully released a hold.
| No response body |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Bookings
Creates a new booking.
A Booking converts a Hold into a confirmed reservation. The Booking request must include the holdId from the preceding Hold response, along with the customer's details and a traveler object for each item (recommended but not mandatory). Travel Curious validates that the Booking request matches the Hold exactly - the supplierId, rateId, priceId, and traveler count must be identical. Any discrepancy causes the Booking to fail.
🚀 NEW — Booking Questions Capability
If the Rate includes bookingQuestions[] with phase booking, those answers must be submitted as part of the Booking request body. Required questions (required true) will cause the Booking request to fail if they are omitted. Include an answers array at the Booking level for questions with scope booking, or within each traveler context for questions with scope guest. For questions with scope guest and phase booing, submit the answer inside the relevant items[] or traveler block.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| object | object | ||
| booking | object | The primary container for a transaction. It links a customer to one or more booking items and manages the overall lifecycle, fulfillment, and cancellation eligibility. | |
| barcode | object | Contains the digital fulfillment data for a ticket. This information is used to generate the visual or textual voucher presented at the venue. | |
| format | string | The technical format or symbology of the barcode. This dictates how the Reseller should render the barcode image or text on the guest's ticket. Enum: | |
| value | string | The actual data string encoded in the barcode. This is the unique identifier that the venue's scanner will read. | |
| id | uuid | Unique identifier for the booking. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| holdId | uuid | The ID of a temporary hold. Provide this to convert a reserved inventory slot into a confirmed booking. | |
| cancelable | boolean | Indicates if the booking can currently be canceled. This is calculated based on the 'cancelable' property of the underlying Rates and the applicable cutoff windows. | |
| customer | object | Information about the lead customer responsible for the booking. This data is used for fulfillment, communication, and manifest records. | |
| string | The primary contact email. Used for voucher delivery and operational updates. | ||
| firstName | string | The first name of the lead traveler. | |
| lastName | string | The last name of the lead traveler. | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). | |
| extensions | object | Supplemental customer data, such as secondary contact info. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| * | string | ||
| extensions | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: PCKUP-2023-8238 | |
| items | array[object] | Single or list of individual items within this booking. | |
| id | uuid | Booking Item ID. The unique identifier for this line item. | |
| availabilityId | string | The identifier for the specific availability slot selected. This ensures the booking is tied to a valid, high-integrity inventory record. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the 'id' field of the parent Product entity and is used to maintain the relational link between the specific Rate option and its high-level Product definition. | |
| quantity | int32 | Quantity of the booking item. The number of units reserved for this specific line item. Must be within the | |
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| rateId | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| startTime | date-time | The scheduled start date and time for the experience. Must align with a valid availability slot for the selected Rate. | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| ext | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| traveler | object | Individual participant details for the booking. These details are used for manifests, eligibility verification, and on-site identification. | |
| firstName | string | First name of the individual traveler. | |
| lastName | string | Last name of the individual traveler. | |
| string | Individual email address, if different from the lead customer. | ||
| age | int32 | Actual age of the traveler in years. | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). pattern: | |
| gender | string | Gender of the traveler. Enum: | |
| isLead | boolean | Indicates if this is the primary traveler for the item. Each Booking Item must have exactly one lead traveler. | |
| lang | string | Spoken language as an ISO 639-3 code (e.g., ENG, FRA, DEU). code' pattern: | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers pattern: | |
| extensions | object | Supplemental data such as dietary requirements or accessibility needs. Extensions may be used to exchange required operational or commercial information. example: specialRequest: Wheelchair accessibility | |
| * | string | ||
| type | string | Matches the 'ageBand' from the RatePrice (e.g., ADULT, CHILD). Used for price validation. | |
| answers | array[object] | ||
| question | string | ||
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| resellerBookingRef | string | Reseller reference ID for the booking, used by the Reseller API client to provide their own reference for the booking. | |
| answers | array[object] | ||
| question | string | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Successfully creates a new booking.
| object | object | ||
| booking | object | The primary container for a transaction. It links a customer to one or more booking items and manages the overall lifecycle, fulfillment, and cancellation eligibility. | |
| barcode | object | Contains the digital fulfillment data for a ticket. This information is used to generate the visual or textual voucher presented at the venue. | |
| format | string | The technical format or symbology of the barcode. This dictates how the Reseller should render the barcode image or text on the guest's ticket. Enum: | |
| value | string | The actual data string encoded in the barcode. This is the unique identifier that the venue's scanner will read. | |
| id | uuid | Unique identifier for the booking. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| holdId | uuid | The ID of a temporary hold. Provide this to convert a reserved inventory slot into a confirmed booking. | |
| cancelable | boolean | Indicates if the booking can currently be canceled. This is calculated based on the 'cancelable' property of the underlying Rates and the applicable cutoff windows. | |
| customer | object | Information about the lead customer responsible for the booking. This data is used for fulfillment, communication, and manifest records. | |
| string | The primary contact email. Used for voucher delivery and operational updates. | ||
| firstName | string | The first name of the lead traveler. | |
| lastName | string | The last name of the lead traveler. | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). | |
| extensions | object | Supplemental customer data, such as secondary contact info. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| * | string | ||
| extensions | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: PCKUP-2023-8238 | |
| items | array[object] | Single or list of individual items within this booking. | |
| id | uuid | Booking Item ID. The unique identifier for this line item. | |
| availabilityId | string | The identifier for the specific availability slot selected. This ensures the booking is tied to a valid, high-integrity inventory record. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the 'id' field of the parent Product entity and is used to maintain the relational link between the specific Rate option and its high-level Product definition. | |
| quantity | int32 | Quantity of the booking item. The number of units reserved for this specific line item. Must be within the | |
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| rateId | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| startTime | date-time | The scheduled start date and time for the experience. Must align with a valid availability slot for the selected Rate. | |
| status | string | The current lifecycle state of the booking item.
Enum: | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| ext | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| traveler | object | Individual participant details for the booking. These details are used for manifests, eligibility verification, and on-site identification. | |
| firstName | string | First name of the individual traveler. | |
| lastName | string | Last name of the individual traveler. | |
| string | Individual email address, if different from the lead customer. | ||
| age | int32 | Actual age of the traveler in years. | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). pattern: | |
| gender | string | Gender of the traveler. Enum: | |
| isLead | boolean | Indicates if this is the primary traveler for the item. Each Booking Item must have exactly one lead traveler. | |
| lang | string | Spoken language as an ISO 639-3 code (e.g., ENG, FRA, DEU). code' pattern: | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers pattern: | |
| extensions | object | Supplemental data such as dietary requirements or accessibility needs. Extensions may be used to exchange required operational or commercial information. example: specialRequest: Wheelchair accessibility | |
| * | string | ||
| type | string | Matches the 'ageBand' from the RatePrice (e.g., ADULT, CHILD). Used for price validation. | |
| answers | array[object] | ||
| question | string | ||
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| resellerBookingRef | string | Reseller reference ID for the booking, used by the Reseller API client to provide their own reference for the booking. | |
| status | string | The overall status of the booking.
Enum: | |
| tickets | array[object] | Tickets for the booking. The reservation system is ultimately responsible for the number of tickets being returned, and the value each ticket is redeemable for. Tickets usually represent a single item or group of items, but this varies from system to system. Please contact the reservation system you are connecting to for additional details on how their response tickets are structured. | |
| barcode | object | Contains the digital fulfillment data for a ticket. This information is used to generate the visual or textual voucher presented at the venue. | |
| format | string | The technical format or symbology of the barcode. This dictates how the Reseller should render the barcode image or text on the guest's ticket. Enum: | |
| value | string | The actual data string encoded in the barcode. This is the unique identifier that the venue's scanner will read. | |
| bookingItemIds | array[string] | One or more references to Booking Item IDs. | |
| guests | array[object] | The number of guests for this ticket. | |
| count | integer | Number of guests. | |
| typeCode | string | This should contain the Enum: | |
| typeModifier | string | This should contain the Enum: | |
| typeName | string | This should contain the | |
| leadTraveler | object | Individual participant details for the booking. These details are used for manifests, eligibility verification, and on-site identification. | |
| firstName | string | First name of the individual traveler. | |
| lastName | string | Last name of the individual traveler. | |
| string | Individual email address, if different from the lead customer. | ||
| age | int32 | Actual age of the traveler in years. | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). pattern: | |
| gender | string | Gender of the traveler. Enum: | |
| isLead | boolean | Indicates if this is the primary traveler for the item. Each Booking Item must have exactly one lead traveler. | |
| lang | string | Spoken language as an ISO 639-3 code (e.g., ENG, FRA, DEU). code' pattern: | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers pattern: | |
| extensions | object | Supplemental data such as dietary requirements or accessibility needs. Extensions may be used to exchange required operational or commercial information. example: specialRequest: Wheelchair accessibility | |
| * | string | ||
| type | string | Matches the 'ageBand' from the RatePrice (e.g., ADULT, CHILD). Used for price validation. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: additionalTicketInfo: Carry Prints | |
| status | string | Ticket status Enum: | |
| timeline | array[object] | Timeline of actions taken on the Booking. | |
| timestamp | date-time | ||
| typeOf | string | Enum: | |
| version | int32 | Internal version number | |
| answers | array[object] | ||
| question | string | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Bad Request
Unauthorized
Conflict
Entity Too Large
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Cancel an existing booking.
Cancel an existing booking.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| booking | string | ID of the booking to cancel. |
| object | object | ||
| reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
| reasonDetails | string | This field provides additional details about the reason for the cancellation request. It may include information from the customer, Supplier, or support agent about the reason for the cancellation (especially in the case of requesting a cancellation outside of the normal policy which may require manual approval from the Supplier). |
Cancel a booking
| No response body |
Bad Request
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Retrieve a single booking.
Retrieve a single booking.
| X | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. |
| booking | string | ID of the booking to retrieve. |
Retrieve a single booking
| object | object | ||
| booking | object | The primary container for a transaction. It links a customer to one or more booking items and manages the overall lifecycle, fulfillment, and cancellation eligibility. | |
| barcode | object | Contains the digital fulfillment data for a ticket. This information is used to generate the visual or textual voucher presented at the venue. | |
| format | string | The technical format or symbology of the barcode. This dictates how the Reseller should render the barcode image or text on the guest's ticket. Enum: | |
| value | string | The actual data string encoded in the barcode. This is the unique identifier that the venue's scanner will read. | |
| id | uuid | Unique identifier for the booking. If a valid UUID is provided during creation, it will be used as the ID. Otherwise, a system-generated ID is assigned. | |
| holdId | uuid | The ID of a temporary hold. Provide this to convert a reserved inventory slot into a confirmed booking. | |
| cancelable | boolean | Indicates if the booking can currently be canceled. This is calculated based on the 'cancelable' property of the underlying Rates and the applicable cutoff windows. | |
| customer | object | Information about the lead customer responsible for the booking. This data is used for fulfillment, communication, and manifest records. | |
| string | The primary contact email. Used for voucher delivery and operational updates. | ||
| firstName | string | The first name of the lead traveler. | |
| lastName | string | The last name of the lead traveler. | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). | |
| extensions | object | Supplemental customer data, such as secondary contact info. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| * | string | ||
| extensions | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: pickupLocationCode: PCKUP-2023-8238 | |
| items | array[object] | Single or list of individual items within this booking. | |
| id | uuid | Booking Item ID. The unique identifier for this line item. | |
| availabilityId | string | The identifier for the specific availability slot selected. This ensures the booking is tied to a valid, high-integrity inventory record. | |
| priceId | string | The identifier for the selected price. Selection Rule: * If a price is available on the 'Price Schedule' for the selected date, Rate, and Traveler Type, that ID MUST be used.
This field is critical for ensuring the guest is charged the correct seasonal or date-specific Rate. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the 'id' field of the parent Product entity and is used to maintain the relational link between the specific Rate option and its high-level Product definition. | |
| quantity | int32 | Quantity of the booking item. The number of units reserved for this specific line item. Must be within the | |
| rate | object | ||
| id | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| name | string | Name used to identify a specific Product Option/Rate or variation | |
| title | string | Customer-facing title for specific Option/Rate. | |
| description | string | A detailed explanation of the specific activity, experience, or event offered in this Option/Rate. This long-form content is meant to appear on Product detail pages, highlighting experience-specific details or restrictions. | |
| code | string | Code of the Rate | |
| version | int32 | Version of this object. Increments every update. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: cancelPolicyDescription: Full refund available up to 24 hours before start time. | |
| productId | uuid | The unique identifier of the parent Product associated with this Rate. This ID matches the | |
| optionId | uuid | Operator's internal identifier for this rate. This field's value is not consumed by this API, and this information is provided for informational purposes only. | |
| type | string | Defines the inventory and booking logic for the Rate.
Enum: | |
| cancelable | boolean | Defines the cancellation policy for this Rate. When | |
| refundable | boolean | Indicates if a booking made with this Rate is eligible for a monetary refund. This defines the financial policy, whereas | |
| cutoff | int64 | The Rate's "cutoff" property is subtracted from the event's start time (the availability start time) when determining the latest possible time a hold can be made against a particular start time. | |
| holdable | boolean | Indicates whether this Rate supports the creation of a temporary booking hold. If | |
| holdablePeriod | int64 | The maximum duration (in seconds) that a hold remains valid. Resellers must confirm the booking within this window; otherwise, the hold will automatically expire and the inventory will be released. | |
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| maxTravelers | int64 | The maximum number of travelers (inclusive) allowed within a single Booking or Hold item. Requests exceeding this limit must be split into separate items or bookings. | |
| minTravelers | int64 | The minimum number of travelers (inclusive) required for a single Booking or Hold item. The request will be rejected if the guest count is below this threshold. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| hours | array[object] | The operational or opening hours for the experience. This defines the physical operating window of the venue and is distinct from real-time booking availability or capacity data. | |
| dates | array[string] | Specific dates to which this rule applies. Use this for holiday-specific hours or scheduled closures. | |
| daysOfWeek | array[integer] | Applicable days of the week. 1 is Monday, 7 is Sunday. If empty, the rule is assumed to apply only to the provided | |
| times | array[object] | The specific open and close time intervals for this rule. | |
| close | string | Close time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| open | string | Open time in UTC, 24-hour time, with 'HH:mm' format pattern: | |
| timezone | string | The IANA timezone string (e.g., 'America/New_York'). If empty, open and close times are interpreted as UTC. | |
| valid | object | The date and time window during which this Rate is active and available for booking. | |
| from | date-time | The valid starting time (ISO 8601) of the validity period. The Rate is not active or bookable before this time. | |
| until | date-time | The valid ending time (ISO 8601) of the validity period. The Rate expires and ceases to be bookable after this time. | |
| prices | array[object] | A list of pricing configurations for this Rate. This defines the cost structure and any applicable Traveler Type distinctions. | |
| id | uuid | Unique identifier for this Rate price | |
| includedTaxes | array[object] | Breakdown of taxes included in the price dedicated to government taxes and fees. | |
| currency | string | The currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the item's price (original, net or retails). (required from Supplier) pattern: | |
| id | string | A unique identifier for the tax or fee. Strongly recommended for internal reference and integration purposes. (not required to be a UUID). | |
| name | string | Human-readable title of the included taxes entry. A short, descriptive name for the tax being applied (e.g., "VAT", "City Tax"). The name should be unique. If no tax id is provided, the system will use the combination of name and currency to identify uniqueness. (required from Supplier) | |
| original | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the original price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| net | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the net price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| retail | int64 | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency. This field represents the amount of tax or fee applied to the retail price. At least one of original, net, or retail price fields must be present (conditionally required from Supplier). | |
| labels | array[string] | A list of filterable tags assigned to this price. Used in ChannelBindings (priceTags) to filter prices available by channel. | |
| name | string | Human-readable name for the pricing. | |
| net | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| original | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| retail | object | The value represents the smallest denomination of the currency and must be provided as a whole number. The relationship between the major unit and the minor unit varies by currency. Amounts must always be interpreted according to the ISO 4217 minor unit of the provided currency.
| |
| amount | int64 | The value in the minor unit of the currency (e.g., cents). For example, $1.00 is represented as 100. | |
| currency | string | The three-letter ISO 4217 currency code (e.g., USD, EUR, GBP). pattern: | |
| status | string | Determines if bound channels can list this price. Only 'ACTIVE' prices should be sold. Enum: | |
| travelerType | object | Defines the eligibility requirements and classification for a traveler. Includes age ranges, modifiers, and display information. | |
| ageBand | string | The primary age-based category for the traveler. Enum: | |
| extensions | object | Extended data of the travelerType. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: maxWeight: 85kg | |
| maxAge | int32 | The maximum age (inclusive) allowed for this traveler type. | |
| minAge | int32 | The minimum age (inclusive) required for this traveler type. | |
| modifier | string | Additional qualification required for this price. Defaults to 'NONE' unless specific residency or status (e.g., MILITARY) is required. Enum: | |
| name | string | Name of the traveler type, e.g. Diver, Observer, Adult, Military | |
| title | string | Customer-facing title for specific unit/traveler. | |
| description | string | Structured description of the age, membership or role of the traveler this price is intended for. | |
| constraints | array[object] | ||
| type | string | The category of the restriction. Enum: | |
| min | number | The minimum value of this constraint. | |
| max | number | The maximum value of this constraint. | |
| unitId | string | Unique identifier for RatePrice which is Supplier specific e.g. Supplier's SKU code | |
| extensions | object | Extended data for the rate price. Container for partner-specific data that is not otherwise represented in the core schema. Extensions may be used to exchange required operational or commercial information. | |
| locations | array[object] | ||
| name | string | Technical or internal name of the location. | |
| title | string | Customer-facing name of the location. | |
| description | string | Informational description of the site. | |
| address | object | A structured physical address for a venue, pickup point, or Supplier headquarters. | |
| countryCode | string | ISO 3366-1 alpha-3 format pattern: | |
| googlePlaceId | string | DEPRECATED. Use the | |
| locality | string | Locality is usually the city or town name. | |
| postalCode | string | The postal or ZIP code. | |
| region | string | Region is usually the state, province, or territory. | |
| streetAddress | string | Primary address line (street name and number). | |
| longLat | object | Geographic coordinates for mapping and proximity searches. | |
| latitude | number | Latitude in decimal degrees. | |
| longitude | number | Longitude in decimal degrees. | |
| website | string | URL for the location's official website or info page. | |
| notes | string | Essential arrival instructions or guide tips. | |
| type | string | The operational role of this location. Enum: | |
| order | integer | The sequence of this location in the itinerary (starts at 1). | |
| references | array[object] | ||
| platform | string | The external mapping or discovery service providing the reference ID. Enum: | |
| id | string | The unique identifier for the location on the specified platform. Example: 'ChIJN1t_tDeuEmsRUsoyG83frY4' for a Google Place ID. | |
| name | string | The name of the location as registered on the external platform. | |
| url | string | The direct URL to the location's page on the platform. | |
| bookingQuestions | array[object] | An array of questions that can be asked during the booking flow. Visible when the | |
| id | string | ||
| type | string | Describes the format of the answer expected by this question. - Enum: | |
| text | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| required | boolean | ||
| pii | boolean | ||
| scope | string | A scope of Enum: | |
| phase | string | Indicates at which phase of the booking flow an answer is collected. Enum: | |
| options | array[object] | Only populated if type is one of | |
| label | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| constraints | array[object] | ||
| type | string | Enum: | |
| min | number | ||
| max | number | ||
| message | array[object] | A collection of localized text entries representing the same content in multiple languages or formats. | |
| text | string | The localized text value. | |
| locale | string | Language and region identifier. MUST be a valid BCP 47 language tag. | |
| format | string | Format of the text content. Enum: | |
| pattern | string | ||
| dependency | object | ||
| questionId | string | ||
| answer | string | ||
| rateId | uuid | ID of the Rate. This field can optionally be provided on create. If a valid UUID is provided on create, it will be saved as the object's ID. Otherwise, the object will receive a generated ID. | |
| startTime | date-time | The scheduled start date and time for the experience. Must align with a valid availability slot for the selected Rate. | |
| status | string | The current lifecycle state of the booking item.
Enum: | |
| supplierId | uuid | The unique identifier of the Supplier that owns and operates this Product. This ID matches the id field of the parent Supplier entity and is used to maintain the relational link between the Supplier's organization and their inventory. | |
| ext | object | Extended data for the booking item. Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: childSeat: 'No' | |
| traveler | object | Individual participant details for the booking. These details are used for manifests, eligibility verification, and on-site identification. | |
| firstName | string | First name of the individual traveler. | |
| lastName | string | Last name of the individual traveler. | |
| string | Individual email address, if different from the lead customer. | ||
| age | int32 | Actual age of the traveler in years. | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). pattern: | |
| gender | string | Gender of the traveler. Enum: | |
| isLead | boolean | Indicates if this is the primary traveler for the item. Each Booking Item must have exactly one lead traveler. | |
| lang | string | Spoken language as an ISO 639-3 code (e.g., ENG, FRA, DEU). code' pattern: | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers pattern: | |
| extensions | object | Supplemental data such as dietary requirements or accessibility needs. Extensions may be used to exchange required operational or commercial information. example: specialRequest: Wheelchair accessibility | |
| * | string | ||
| type | string | Matches the 'ageBand' from the RatePrice (e.g., ADULT, CHILD). Used for price validation. | |
| answers | array[object] | ||
| question | string | ||
| partnerId | string | A Partner ID can be used to store a unique key in a partner's system. | |
| resellerBookingRef | string | Reseller reference ID for the booking, used by the Reseller API client to provide their own reference for the booking. | |
| status | string | The overall status of the booking.
Enum: | |
| tickets | array[object] | Tickets for the booking. The reservation system is ultimately responsible for the number of tickets being returned, and the value each ticket is redeemable for. Tickets usually represent a single item or group of items, but this varies from system to system. Please contact the reservation system you are connecting to for additional details on how their response tickets are structured. | |
| barcode | object | Contains the digital fulfillment data for a ticket. This information is used to generate the visual or textual voucher presented at the venue. | |
| format | string | The technical format or symbology of the barcode. This dictates how the Reseller should render the barcode image or text on the guest's ticket. Enum: | |
| value | string | The actual data string encoded in the barcode. This is the unique identifier that the venue's scanner will read. | |
| bookingItemIds | array[string] | One or more references to Booking Item IDs. | |
| guests | array[object] | The number of guests for this ticket. | |
| count | integer | Number of guests. | |
| typeCode | string | This should contain the Enum: | |
| typeModifier | string | This should contain the Enum: | |
| typeName | string | This should contain the | |
| leadTraveler | object | Individual participant details for the booking. These details are used for manifests, eligibility verification, and on-site identification. | |
| firstName | string | First name of the individual traveler. | |
| lastName | string | Last name of the individual traveler. | |
| string | Individual email address, if different from the lead customer. | ||
| age | int32 | Actual age of the traveler in years. | |
| country | string | This MUST be a valid ISO 3166-1 alpha-2 or alpha-3 country code of the customer (e.g., USA, GBR, CAN). pattern: | |
| gender | string | Gender of the traveler. Enum: | |
| isLead | boolean | Indicates if this is the primary traveler for the item. Each Booking Item must have exactly one lead traveler. | |
| lang | string | Spoken language as an ISO 639-3 code (e.g., ENG, FRA, DEU). code' pattern: | |
| phone | string | Phone number of the lead customer. Please follow this style guide when formatting phone numbers: https://developers.google.com/style/phone-numbers pattern: | |
| extensions | object | Supplemental data such as dietary requirements or accessibility needs. Extensions may be used to exchange required operational or commercial information. example: specialRequest: Wheelchair accessibility | |
| * | string | ||
| type | string | Matches the 'ageBand' from the RatePrice (e.g., ADULT, CHILD). Used for price validation. | |
| extensions | object | Container for partner-specific data that is not otherwise represented in the core schema.Extensions may be used to exchange required operational or commercial information. example: additionalTicketInfo: Carry Prints | |
| status | string | Ticket status Enum: | |
| timeline | array[object] | Timeline of actions taken on the Booking. | |
| timestamp | date-time | ||
| typeOf | string | Enum: | |
| version | int32 | Internal version number | |
| answers | array[object] | ||
| question | string | ||
| meta | object | Request meta data | |
| reqId | string | Request ID for request tracking. An identifier unique to the request, which is passed from the Reseller through Travel Curious to the operator. If the Reseller does not provide a request ID, Travel Curious will generate an ID and return it to the Reseller. | |
| data | object | A map of supplementary metadata. This may include non-breaking warnings, system-specific flags, or additional context regarding the response or error state. | |
| * | string |
Unauthorized
Not Found
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).