Title
Create new category
Edit page index title
Edit category
Edit link
Content (v1.3)
v1.3
The Content object provides structured, localized, customer-facing data that can be attached to Suppliers, Products, Rates, and individual price tiers. It is designed for display in your UI and separates rich marketing content from the core transactional fields.
v1.2 partners: Content is a v1.3-only capability. Your existing integration is unaffected. You can adopt it at any time by switching to the
/v1.3/base path.
Requesting Content
Content is not returned by default. To include it, add content=true to any singular GET endpoint:
xxxxxxxxxxGET /v1.3/suppliers/{id}content=trueGET /v1.3/suppliers/{id}/products/{id}content=trueGET /v1.3/suppliers/{id}/products/{id}/rates/{id}content=trueContent is not available on list endpoints (e.g., GET /suppliers or GET /suppliers/{id}/products). Always use the singular endpoint when you need content data.
Filtering by Language
Add the locale= parameter to return only text in specific languages. Accepts a comma-separated list of BCP 47 language tags:
xxxxxxxxxxGET /v1.3/suppliers/{id}/products/{id}content=true&locale=en-US,es-ES,de-DEIf locale= is omitted, all available language variants are returned.
Priority Rule
When content is present in a response, its values must take priority over the equivalent standard entity fields for display purposes.
The name / internalName, title, and description fields on the main entities - Supplier, Product, Rate, and Rate Prices - are treated as standard fields, not content fields.
Suppliers who do not implement content capability may continue using these fields.
If a Supplier does use content, then they can use the content.name, content.title, and content.description fields to provide additional languages, alternative formats, or to override the values on the main entities.
Fall back to the standard fields only when a specific content field is absent or empty. Never display both side by side - content is the authoritative source for customer-facing text when present.
LocalizedTextSet
Content fields use the LocalizedTextSet pattern to support multi-lingual and multi-format content.
LocalizedText
Represents a single text entry in a specific language and format. If a supplier provides this object, all its internal fields (text, format, and locale) are mandatory.
LocalizedTextSet
A collection of LocalizedText objects. While a set can contain multiple entries to accommodate various locales and formats, each locale + format combination must be unique within a single LocalizedTextSet. The system will reject duplicate combinations from the Supplier side.
xxxxxxxxxx"description": [ { "text": "Join us for a 3-hour kayaking tour around the Barcelona coastline.", "locale": "en", "format": "plain" }, { "text": "Únete a nosotros para un recorrido en kayak de 3 horas por la costa de Barcelona.", "locale": "es", "format": "plain" }]Content Object Field
| Field | Type | Description | Notes |
|---|---|---|---|
id | string | Unique identifier for this content object. Used to reference and manage content independently of the parent entity. | Required to be populated by the Supplier if content is provided. |
name | LocalizedTextSet | Name the Supplier uses for internal identification | Optional for the Supplier to populate. |
title | LocalizedTextSet | Customer-facing name, intended for display in UIs or marketing. | Optional for the Supplier to populate. |
subtitle | LocalizedTextSet | Brief tagline or descriptive phrase that complements the title and highlights key details. | Optional for the Supplier to populate. |
description | LocalizedTextSet | Full long-form description. This content is intended for display in full detail pages and should help users understand what makes the Supplier/Product/Rate unique. | Optional for the Supplier to populate. |
shortDescription | LocalizedTextSet | Brief teaser text. Intended for quick display in listings, search results, or previews to attract user interest. | Optional for the Supplier to populate. |
categories | LocalizedTextSet | List of tags or labels that classify the content by type or theme. Useful for search, filtering, and categorization in UI and APIs. | Optional for the Supplier to populate. |
duration | Duration | Defines how long the product or experience takes. Useful for setting customer expectations and supporting filters. | Optional for the Supplier to populate. |
features[] | Features[] | Captures structured highlights, inclusions, exclusions, and policy-related aspects of the experience. Each item is categorized using a predefined type enum for clarity and filtering, defining how that information should be interpreted and displayed. | Optional for the Supplier to populate. |
faqs[] | Faqs[] | Represents a frequently asked question and its answer, intended to inform customers about common concerns or clarifications. | Optional for the Supplier to populate. |
media[] | Media[] | Images, videos, and external media links. Intended to enhance the customer experience by showcasing visual or multimedia content relevant to the activity or location. Public accessibility is required from the Supplier. | Optional for the Supplier to populate. |
ratings[] | Ratings[] | A list of rating sets from various sources. Useful for showing aggregated scores from review platforms. | Optional for the Supplier to populate. |
reviews[] | Reviews[] | User-generated reviews, feedback, and testimonials. | Optional for the Supplier to populate. |
metadata | Metadata | Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields. | Optional for the Supplier to populate. |
Categories
Help classify and organize content into easily searchable and filterable themes. They provide semantic tags that describe the type of experience, audience, or context - making it easier for resellers and end users to discover relevant content.
The current beta-categories extension key is a supplemental extension for grouping related products (e.g., MUSICAL, PLAY, COMEDY, SPORTS). New content categories will not be mapped into beta-categories. Suppliers can continue using them for now, but they will be deprecated in the future, and categories must then be provided through the categories array of objects in the content.
xxxxxxxxxx"categories": [ { "category": { "en-US": "Adventure", "es-ES": "Aventura", "fr-FR": "Aventure", "de-DE": "Abenteuer" } }, { "category": { "en-US": "Food Tour", "es-ES": "Tour gastronómico", "fr-FR": "Visite gastronomique" } }]Duration
Defines how long the product or experience takes. Combines a numeric length, a time unit, and an optional localized description for display. Useful for setting customer expectations and supporting filters like "half-day", "multi-day", etc.
| Field | Type | Description | Notes |
|---|---|---|---|
length | number | Numeric duration value expressed in the specified unit. Can include decimal values (e.g., "1.5 for 1 hour 30 minutes") | Required to be populated by the Supplier if duration is provided. |
flexible | boolean | If true, the duration is an estimate (e.g., "approx 3 hours"). If false, the duration is fixed (e.g., a _"45-minute show_"). | Optional for the Supplier to populate. |
unit | string (enum)
[ minutes, hours, days, weeks ] | Unit of time used to interpret the duration length.
Note: The API does not validate the combination of length + unit. Any value submitted will be accepted and displayed as-is, even if it results in unusual or non-standard durations (e.g., "_0.37"_ days or `"````1.87 minutes"```). | Required to be populated by the Supplier if duration is provided. |
description | LocalizedTextSet | Customer-facing, localized explanation of the duration, such as _"Approximately 2.5 hours including breaks"_. | Optional for the Supplier to populate. |
xxxxxxxxxx"duration": { "length": 2, "unit": "hours", "description": { "en-US": "Estimated 2 hours of self-paced exploration.", "es-ES": "Aproximadamente 2 horas de exploración a tu ritmo.", "fr-FR": "Environ 2 heures d’exploration autonome." } },FAQs
Stores Frequently Asked Questions and Answers relevant to the Supplier, Product, Option/Rate, or Unit/Rate Price. This helps anticipate common customer concerns and reduces friction during booking or usage.
If an FAQ is provided, the Supplier must populate both question and answer. Additionally, for a given locale, the Supplier must ensure the question and its corresponding answer use the same locale and format values.
| Field | Type | Description | Notes |
|---|---|---|---|
question | LocalizedTextSet | The customer-facing question. | Required to be populated by the Supplier if faqs is provided. |
answer | LocalizedTextSet | The clear and concise answer to the corresponding question. | Required to be populated by the Supplier if faqs is provided. |
xxxxxxxxxx{ "faqs": [...]}Features
Captures structured highlights, inclusions, exclusions, and policy-related aspects of the experience. Each item is categorized using a predefined type enum for clarity and filtering, defining how that information should be interpreted and displayed.
We currently allow duplicate feature types within the features array. This means you may include multiple entries with the same type (e.g., more than one HIGHLIGHT).
| Field | Type | Description | Notes |
|---|---|---|---|
type | string (enum) | Classification of the feature. | Required to be populated by the Supplier if feature is provided. |
description | LocalizedTextSet | A localized explanation or label for the feature, to be displayed to end users in their preferred language. | Required to be populated by the Supplier if feature is provided. |
Feature Types
| Type | Description | Example |
|---|---|---|
INCLUSION | What is included in the experience, entitlements, services, or perks. | "Mobile app access for all participants" |
EXCLUSION | What is not included, or costs that may apply additionally. | "Food and drinks not included in the ticket price" |
HIGHLIGHT | A key selling point, unique aspect, or experience standout. Usually shown as a badge or bullet in UI. | "Explore famous landmarks in a gamified scavenger hunt" |
PREBOOKING_INFORMATION | Information users should know before booking. Includes eligibility, requirements, limitations. | "Players must have a smartphone with internet access" |
PREARRIVAL_INFORMATION | What users need to know or prepare before arriving at the location. | "Arrive 10 minutes early to check in and download the app" |
REDEMPTION_INSTRUCTION | Steps required to begin or redeem the experience. Useful for self-guided, ticketed, or app-based activities. | "Start your quest by launching the app at the designated starting point" |
ACCESSIBILITY_INFORMATION | Notes about accessibility features or limitations. e.g., mobility, hearing, or visual support. | Thi__s tour is wheelchair accessible and includes step-free routes" |
ADDITIONAL_INFORMATION | Other useful details not covered by another category. Typically supplementary or nice-to-know content. | "We recommend wearing comfortable walking shoes" |
BOOKING_TERMS_AND_CONDITIONS | Rules or terms related to ticket validity, age restrictions, or group limits. | "Ticket valid for 7 days from purchase" |
CANCELLATION_TERMS_AND_CONDITIONS | Policy about refunds or cancellations, including cut-off times. | "Full refund available up to 24 hours before start time" |
TERMS_AND_CONDITIONS | General or overarching legal agreements, user obligations, and liability waivers governing the entire experience. | "By purchasing a ticket, participants agree to our standard liability waiver" |
RESTRICTION_REQUIREMENT | Strict physical, health, or legal mandates that participants must meet to join the experience. | "Participants must be at least 12 years old and over 120cm tall" |
SAFETY_INFORMATION | Guidelines, hazards, or health advisories to ensure participant well-being during the activity. | "Not recommended for pregnant travelers or those with serious medical conditions" |
PRIVATE | Indicates whether the option or experience is private or shared with other public participants. | "This is a private tour, meaning your group will have a dedicated guide" |
COMMENTARY | Describes narrative elements, guides, or storytelling that may be part of the experience. | "Includes audio narration at key landmarks, voiced by a local historian" |
OTHER | Catch-all for any uncategorized or partner-specific feature content. | "Includes souvenir digital photo upon completion" |
xxxxxxxxxx"features": [ { "type": "INCLUSION", "description": { "en-US": "Mobile app access for all participants", "es-ES": "Acceso a la aplicación móvil para todos los participantes", "fr-FR": "Accès à l'application mobile pour tous les participants" } }, { "type": "HIGHLIGHT", "description": { "en-US": "Explore iconic city landmarks in a fun, gamified way", "es-ES": "Explora lugares emblemáticos de la ciudad de forma divertida y gamificada", "fr-FR": "Découvrez les monuments emblématiques de la ville de manière ludique" } }, { "type": "PREBOOKING_INFORMATION", "description": { "en-US": "Players must have a smartphone with internet access", "es-ES": "Los jugadores deben tener un teléfono inteligente con acceso a internet", "fr-FR": "Les joueurs doivent avoir un smartphone avec accès à Internet" } }, { "type": "REDEMPTION_INSTRUCTION", "description": { "en-US": "Start your adventure by launching the app at the designated starting point", "es-ES": "Inicia tu aventura abriendo la aplicación en el punto de partida designado", "fr-FR": "Commencez votre aventure en lançant l'application au point de départ indiqué" } }, { "type": "CANCELLATION_TERM", "description": { "en-US": "Full refund available up to 24 hours before start time", "es-ES": "Reembolso completo disponible hasta 24 horas antes del inicio", "fr-FR": "Remboursement complet jusqu'à 24 heures avant le début" } }]Media
Provides images, videos, logos, or other rich media assets that represent the Supplier, Product, Option/Rate, or Unit/Rate Price. Media helps enhance visual storytelling and improve user engagement. Public accessibility is required from the Supplier.
| Field | Type | Description | Notes |
|---|---|---|---|
url | string | Direct link to the media asset (image, video, etc.). | Required to be populated by the Supplier if Public accessibility is required from the Supplier. The
|
type | string (enum) | The media file type. | Required to be populated by the Supplier if media is provided. |
relationship | string (enum) | 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. | Required to be populated by the Supplier if media is provided. |
title | LocalizedTextSet | Localized title for the media asset, useful for accessibility or alt text. | Optional for the Supplier to populate. |
caption | LocalizedTextSet | Localized caption displayed alongside the media (e.g., "View from the summit at sunrise"). | Optional for the Supplier to populate. |
copyright | LocalizedTextSet | Localized copyright information (e.g., "© 2025 Adventure Co."). | Optional for the Supplier to populate. |
credits | LocalizedTextSet | Localized attribution for creators or sources (e.g., "Photo by John Smith"). | Optional for the Supplier to populate. |
metadata | LocalizedTextSet | Optional localized metadata, tags, or notes about the media. Useful for additional display context or search indexing. | Optional for the Supplier to populate. |
Media Types
| Type | Description |
|---|---|
image/jpeg | JPEG image |
image/png | PNG image |
image/webp | WebP image |
image/svg+xml | SVG vector image |
video/mp4 | MP4 hosted video |
video/avi | AVI hosted video |
external/youtube | YouTube embedded URL video |
external/vimeo | Vimeo embedded video |
external/other | Other hosted or embedded video |
application/pdf | PDF document |
Media Relationships
| Relationships | Description |
|---|---|
LOGO | Brand mark for the Supplier - typically used in headers and search results |
COVER | Hero or banner image - used as the primary visual for detail pages |
GALLERY | Supplementary images - intended for display in a secondary position, often as part of a browsable image carousel or collection, to offer more context than the COVER image alone. |
OTHER | Uncategorized media - a general-purpose type for miscellaneous attachments like instructional diagrams, technical charts, or other supporting documents. |
Ratings
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.
Rating Aggregate
| Field | Type | Description | Notes |
|---|---|---|---|
source | LocalizedTextSet | Localized name of the review platform or source (e.g., _"TripAdvisor"_, _"Google Reviews"_). | Required to be populated by the Supplier if ratings is provided. |
average | Rating | The average rating value (e.g., 1-5). | Required to be populated by the Supplier if ratings is provided. |
count | integer | Total number of ratings that contributed to the average. Must be non-negative values (integer ≥ 0). | Required to be populated by the Supplier if ratings is provided. |
lastUpdated | string($date-time) | Timestamp of the last time the rating data was refreshed. Format: ISO 8601 (e.g., "2025-06-25T10:00:00Z"). | Optional for the Supplier to populate. |
Rating
| Field | Type | Description | Notes |
|---|---|---|---|
value | number | Rating value. | Required to be populated by the Supplier if rating is provided. |
min | integer | Minimum possible rating. | Required to be populated by the Supplier if rating is provided. |
| max | integer | Maximum possible rating. | Required to be populated by the Supplier if rating is provided. |
Reviews
Captures written customer testimonials or feedback. These reviews reflect real user sentiment and provide qualitative insights for potential buyers.
| Field | Type | Description | Notes |
|---|---|---|---|
reviewerName | LocalizedTextSet | Localized display name or alias of the reviewer (e.g., _"Alice T."_, _"Traveler from Berlin"_). Used for presentation only; not required for anonymous reviews. | Optional for the Supplier to populate. |
title | LocalizedTextSet | Localized title or headline of the review (e.g., _"Amazing experience!"_). Useful for summarizing experience sentiment. | Optional for the Supplier to populate. |
| content | LocalizedTextSet | Localized full review content describing the customer’s experience. | Required to be populated by the Supplier if review is provided. |
| source | LocalizedTextSet | Localized name of the review platform or source (e.g., _"TripAdvisor"_, _"Google Reviews"_). | Optional for the Supplier to populate. |
| rating | Rating | Aggregates review scores | Optional for the Supplier to populate. |
| createdAt | string($date-time) | Timestamp of when the review was created. Useful for sorting and freshness. Format: ISO 8601 (e.g., "2025-06-25T14:20:00Z"). | Optional for the Supplier to populate. |
| verified | boolean | Indicates whether the review is from a verified booking or customer. Helps establish credibility and trust. | Optional for the Supplier to populate. |
Metadata
Additional system-level metadata related to this content, such as timestamps or internal bookkeeping fields.
Use lastUpdated to determine whether a cached Content object needs to be refreshed.
| Field | Type | Description | Notes |
|---|---|---|---|
lastUpdated | string($date-time) | Timestamp indicating when the record was last updated. | Optional for the Supplier to populate. |
Content by Entity
Not all fields are populated at every level. Content is enrichment data, not guaranteed data. Always check for the presence of each field before rendering it.
The sections below are just examples of what each entity can typically carry.
Supplier
Typical content fields: name, title, description, media (logo and gallery), ratings, reviews, faqs .
Example response (abbreviated):
Product
Typical content fields: All fields - name, title, subtitle, description, shortDescription, categories, duration, features, faqs, media, ratings, reviews
Rate
Typical content fields:
RatePrice / TravelerType
Typical content fields: name, description
Questions? We'd love to hear them. Contact Travel Curious Support.