Skip to main content

JSON component reference

Add these objects to the arrays described in Insert a component. Replace example accounts and images with your club's own values.

Every object requires type and version. Read the limits below each example as well as the field tables. Unknown fields are rejected. null means no value; [] is an empty list. Arrays keep their order. Examples pass structural validation; saving also checks your images, records and access.

cio-iframe​

Embed content from one approved HTTPS provider.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
urlstringRequired
titleWebsiteLocalizedTextRequired
aspectRatioWebsiteProviderAspectRatioRequired
type"cio-iframe"Required
{
"url": "https://www.youtube.com/embed/videoseries?list=PL_example_123",
"title": "Example video playlist",
"aspectRatio": "wide",
"type": "cio-iframe",
"version": 1
}

The URL must match an approved provider and cannot contain credentials, a port, or a fragment. YouTube video and playlist URLs are explicit, never inferred from a channel setting. Timely accepts a non-root HTTPS path on time.ly or a subdomain, for example https://events.time.ly/example/calendar?categories=training&tags=beginner; retain its query filters.

title: up to 200 characters. url: up to 2048 bytes. aspectRatio: wide (16:9), standard (4:3), square (1:1). Approved providers include Google Calendar, Docs, Drive and Maps, YouTube, Facebook, OneDrive, Environment Canada and Timely. Use their supported embed URL; an ordinary page URL may be rejected.

cio-tabs​

Organize authored content into keyboard-accessible tabs.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
labelWebsiteLocalizedTextRequired
sectionsArray of WebsiteTabSectionRequired
type"cio-tabs"Required
{
"label": "Club information",
"sections": [
{
"id": "welcome",
"label": "Welcome",
"content": "Example club information."
}
],
"type": "cio-tabs",
"version": 1
}

Keep labels and section content concise; Curling owns keyboard and accessibility behavior.

Use 1 to 32 sections. Each section needs a unique ID, 1 to 64 ASCII letters, digits, underscores or hyphens. Labels: up to 200 characters; content: up to 20,000. Omit contentFormat or use plain_text. markdown is reserved and rejected. Content displays as plain text.

Show organization-owned images as an accessible carousel.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
slidesArray of WebsiteCarouselSlideRequired
autoAdvanceMsinteger or null; minimum: 0null
type"cio-carousel"Required
{
"slides": [
{
"id": "club",
"media": {
"assetId": "example-website-image",
"alt": {
"en": "Curling sheets"
}
},
"caption": "Example image, replace before publishing.",
"link": null
}
],
"autoAdvanceMs": null,
"type": "cio-carousel",
"version": 1
}

Use only Website media owned by this organization. Use asset IDs returned by request_context(media), which are ready or attached organization-owned Website media; private assistant reference images are not publishable assets. Alternative text must be nonblank and at most 300 characters. Use a shared string or language-keyed text with the Organization primary language; missing secondary text falls back to the primary value.

Use 1 to 50 slides with unique nonblank IDs. caption and link may be omitted or null. Links require HTTPS. autoAdvanceMs may be omitted or null for manual controls, or 2000 to 60000 milliseconds for automatic advancement.

cio-accordion​

Organize authored content into expandable sections.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
labelWebsiteLocalizedTextRequired
itemsArray of WebsiteAccordionItemRequired
type"cio-accordion"Required
{
"label": "Common questions",
"items": [
{
"id": "equipment",
"heading": "What should I bring?",
"body": "Wear clean shoes and warm layers.",
"initiallyOpen": false
}
],
"type": "cio-accordion",
"version": 1
}

Keep labels and section content concise; Curling owns keyboard and accessibility behavior.

Use 1 to 50 items. Each item needs a unique ID, 1 to 64 ASCII letters, digits, underscores or hyphens. Labels and headings: up to 200 characters; body: up to 20,000. initiallyOpen is required. Body displays as plain text.

cio-instagram-post​

Show one public Instagram post or reel after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
permalinkstringRequired
type"cio-instagram-post"Required
{
"permalink": "https://www.instagram.com/p/EXAMPLE_123/",
"type": "cio-instagram-post",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

Use an exact public post or Reel URL: https://www.instagram.com/p/EXAMPLE_123/ or https://www.instagram.com/reel/EXAMPLE_123/.

cio-facebook-page-timeline​

Show one public Facebook Page timeline after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
pageUrlstringRequired
type"cio-facebook-page-timeline"Required
{
"pageUrl": "https://www.facebook.com/example.club",
"type": "cio-facebook-page-timeline",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

Use an exact https://www.facebook.com/ Page URL, without query parameters or a fragment.

cio-x-profile-timeline​

Show one public X profile timeline after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
usernamestringRequired
type"cio-x-profile-timeline"Required
{
"username": "example_club",
"type": "cio-x-profile-timeline",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

username: 1 to 15 ASCII letters, digits or underscores, without @.

cio-mailchimp-signup​

Offer newsletter signup through an approved Mailchimp audience.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
accountstringRequired
userIdstringRequired
audienceIdstringRequired
emailFieldNamestringRequired
nameFieldsArray of WebsiteSignupNameField[]
formIdstring or nullnull
type"cio-mailchimp-signup"Required
{
"account": "example.us1",
"userId": "0123456789abcdef0123456789abcdef",
"audienceId": "0123456789",
"emailFieldName": "EMAIL",
"nameFields": [
{
"name": "FNAME",
"label": "First name",
"required": true
},
{
"name": "LNAME",
"label": "Last name",
"required": false
}
],
"formId": "abcdef0123",
"type": "cio-mailchimp-signup",
"version": 1
}

Use the Mailchimp account subdomain, userId and audienceId from the audience form, not scripts or a pasted action URL. emailFieldName is EMAIL. Optional nameFields may collect FNAME and LNAME; each field declares its label and required flag. formId is the optional ten-character hexadecimal form identifier, for example abcdef0123, not an HTML element ID. Replace all synthetic example identifiers with the club's own values.

account: name.us followed by digits. userId: 25 to 32 hexadecimal characters; audienceId: 10 hexadecimal characters. emailFieldName: EMAIL, MERGE0, or MERGE1 through MERGE999 (no leading zeros). nameFields: at most two entries, each with name FNAME or LNAME (once each), a nonblank label of at most 100 characters, and required true or false. formId: optional 10 hexadecimal characters.

cio-email-octopus-signup​

Offer newsletter signup through an approved EmailOctopus form.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
formIdstringRequired
type"cio-email-octopus-signup"Required
{
"formId": "12345678-1234-1234-1234-123456789abc",
"type": "cio-email-octopus-signup",
"version": 1
}

Enter provider identifiers only. Pasted scripts, HTML, and arbitrary destination URLs are rejected.

formId must be a provider-issued UUID.

cio-giftup-checkout​

Offer a Gift Up gift-card checkout after visitor activation.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
accountIdstringRequired
productIdstring or nullnull
type"cio-giftup-checkout"Required
{
"accountId": "12345678-1234-1234-1234-123456789abc",
"productId": null,
"type": "cio-giftup-checkout",
"version": 1
}

Enter provider identifiers only. Pasted scripts, HTML, and arbitrary destination URLs are rejected.

accountId and optional productId must be provider-issued UUIDs. Omit productId or use null to show the account's checkout.

cio-contact​

Show the organization's current public contact information.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
type"cio-contact"Required
{
"type": "cio-contact",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

Use at most one instance of this kind in landing.json. Curling loads current eligible club records; there are no copied data fields or filters.

cio-public-notices​

Show public notices that apply to the visitor's current route.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
type"cio-public-notices"Required
{
"type": "cio-public-notices",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

Use at most one instance of this kind in landing.json. Curling loads current eligible club records; there are no copied data fields or filters.

cio-sponsors​

Show the organization's current public sponsors.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
type"cio-sponsors"Required
{
"type": "cio-sponsors",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

Use at most one instance of this kind in landing.json. Curling loads current eligible club records; there are no copied data fields or filters.

cio-banner​

Show an organization-owned ultra-wide image in a page presentation slot.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
mediaWebsiteMediaReferenceRequired
type"cio-banner"Required
{
"media": {
"assetId": "example-website-image",
"alt": {
"en": "Curling sheets",
"fr": "Pistes de curling"
}
},
"type": "cio-banner",
"version": 1
}

Use organization-owned Website media. A 1200 by 250 image best matches the banner's responsive 24:5 presentation. Use asset IDs returned by request_context(media), which are ready or attached organization-owned Website media; private assistant reference images are not publishable assets. Alternative text must be nonblank and at most 300 characters. Use a shared string or language-keyed text with the Organization primary language; missing secondary text falls back to the primary value.

Media alternative text must be nonblank and no longer than 300 characters.

cio-hero​

Introduce the site with a heading, short copy, optional image, and calls to action.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
bodyWebsiteLocalizedTextRequired
mediaWebsiteMediaReference or nullnull
actionsArray of WebsiteActionRequired
type"cio-hero"Required
{
"heading": {
"en": "Welcome",
"fr": "Bienvenue"
},
"body": {
"en": "Try curling with us.",
"fr": "Essayez le curling avec nous."
},
"media": null,
"actions": [],
"type": "cio-hero",
"version": 1
}

Use only Website media owned by this organization. Use asset IDs returned by request_context(media), which are ready or attached organization-owned Website media; private assistant reference images are not publishable assets. Alternative text must be nonblank and at most 300 characters. Use a shared string or language-keyed text with the Organization primary language; missing secondary text falls back to the primary value.

Use up to 4 actions. Omitted media means no image.

cio-at-a-glance​

Summarize a few important facts in a scannable list.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
itemsArray of WebsiteLocalizedTextRequired
type"cio-at-a-glance"Required
{
"heading": {
"en": "Our club"
},
"items": [
{
"en": "Programs for all experience levels"
}
],
"type": "cio-at-a-glance",
"version": 1
}

Use shared strings or language-keyed text with a usable Organization primary-language value. Missing secondary translations fall back to the primary value.

Use 1 to 4 items.

cio-text​

Add a heading and a focused block of organization-written copy.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
bodyWebsiteLocalizedTextRequired
type"cio-text"Required
{
"heading": {
"en": "Visit us"
},
"body": {
"en": "Find a program that suits you."
},
"type": "cio-text",
"version": 1
}

Use shared strings or language-keyed text with a usable Organization primary-language value. Missing secondary translations fall back to the primary value.

Authored text must be nonblank and no longer than 20,000 characters.

cio-call-to-action​

Pair short explanatory copy with one prominent link.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
bodyWebsiteLocalizedTextRequired
actionWebsiteActionRequired
type"cio-call-to-action"Required
{
"heading": {
"en": "Try curling"
},
"body": {
"en": "Find your next event."
},
"action": {
"label": {
"en": "View calendar"
},
"href": "/calendar"
},
"type": "cio-call-to-action",
"version": 1
}

Use shared strings or language-keyed text with a usable Organization primary-language value. Missing secondary translations fall back to the primary value. Links must pass Website validation.

Authored text must be nonblank and no longer than 20,000 characters. The action accepts a root-relative path or HTTPS domain URL, up to 2048 bytes. HTTPS actions reject credentials, IP hosts and non-default ports. Button appearance accepts filled, secondary or outline; size accepts small, normal or large. Omit appearance and size to use the component's normal presentation.

Present a small set of useful links with a shared heading.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; product/note.json: top, bottom; product/registrations.json: top, bottom; product/teams.json: top, bottom; product/spares.json: top, bottom; results.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
linksArray of WebsiteActionRequired
type"cio-quick-links"Required
{
"heading": {
"en": "Explore"
},
"links": [
{
"label": {
"en": "Contact us"
},
"href": "/contact"
}
],
"type": "cio-quick-links",
"version": 1
}

Use shared strings or language-keyed text with a usable Organization primary-language value. Missing secondary translations fall back to the primary value. Links must pass Website validation.

Use 1 to 8 links.

cio-testimonials​

Show attributed quotations selected by the organization.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
itemsArray of WebsiteTestimonialRequired
type"cio-testimonials"Required
{
"heading": {
"en": "From our members"
},
"items": [
{
"quote": {
"en": "Example quotation, replace before publishing."
},
"attribution": {
"en": "Example member"
}
}
],
"type": "cio-testimonials",
"version": 1
}

Use shared strings or language-keyed text with a usable Organization primary-language value. Missing secondary translations fall back to the primary value.

Use 1 to 3 quotations. Replace the sample quotation and attribution with real, approved text.

cio-product-types​

Show the organization's enabled Product Types.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
headingWebsiteLocalizedTextRequired
type"cio-product-types"Required
{
"heading": {
"en": "Find a program"
},
"type": "cio-product-types",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

Authored text must be nonblank and no longer than 20,000 characters.

cio-recent-events​

Show the organization's current upcoming events.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
type"cio-recent-events"Required
{
"type": "cio-recent-events",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

There are no configurable text, media or action fields.

cio-latest-articles​

Show the organization's latest public articles.

Documents and positions: landing.json: components.

FieldValueWhen omitted
version1Required
type"cio-latest-articles"Required
{
"type": "cio-latest-articles",
"version": 1
}

Curling loads live eligible organization data; the component does not store copied records.

There are no configurable text, media or action fields.

cio-rentals​

Show bookable rental availability, optionally filtered to selected Products or Resources.

Documents and positions: landing.json: components.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
productIdsArray of integerRequired
resourceIdsArray of integerRequired
type"cio-rentals"Required
{
"productIds": [],
"resourceIds": [],
"type": "cio-rentals",
"version": 1
}

Filters may reference only public Rental Products and Resources owned by this organization; empty filters include all eligible rentals.

productIds and resourceIds are required arrays. Each accepts at most 50 positive, sorted, unique IDs. Empty arrays include all eligible rentals.

cio-current-games​

Show the organization's active, pending, and recently completed Games.

Documents and positions: landing.json: components.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
type"cio-current-games"Required
{
"type": "cio-current-games",
"version": 1
}

Curling selects the Organization and published Games; the component has no managed author attributes.

There are no configurable text, media or action fields.

cio-sponsor​

Show one enabled Sponsor, optionally selecting an exact Sponsor.

Documents and positions: landing.json: components.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
sponsorIdinteger or nullnull
type"cio-sponsor"Required
{
"sponsorId": null,
"type": "cio-sponsor",
"version": 1
}

A selected Sponsor must be enabled and owned by this organization; omitting it lets Curling select one enabled Sponsor.

Omit sponsorId or use null for a random eligible sponsor; otherwise use a positive sponsor ID.

cio-instagram-profile​

Show a public Instagram profile feed after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
profileUrlstringRequired
type"cio-instagram-profile"Required
{
"profileUrl": "https://www.instagram.com/example.club/",
"type": "cio-instagram-profile",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

Use an exact public Instagram profile URL, such as https://www.instagram.com/example.club/.

cio-tiktok-profile​

Show a public TikTok creator profile after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
usernamestringRequired
type"cio-tiktok-profile"Required
{
"username": "@example.club",
"type": "cio-tiktok-profile",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

Use the TikTok account handle, such as @example.club, with optional @, ASCII letters, digits, underscores or periods. It cannot end with a period.

cio-tiktok-video​

Show one TikTok video after visitor consent.

Documents and positions: landing.json: components; contact.json: top, bottom; page.json: top, bottom; articles.json: top, bottom; article.json: top, bottom; products.json: top, bottom; product.json: top, bottom; rentals.json: top, bottom.

Also available in Page and Article Markdown bodies through paired tags. The JSON below belongs in Studio.

FieldValueWhen omitted
version1Required
permalinkstringRequired
type"cio-tiktok-video"Required
{
"permalink": "https://www.tiktok.com/@example.club/video/1234567890",
"type": "cio-tiktok-video",
"version": 1
}

Visitors must activate the provider before remote content loads; a direct fallback link remains available. Profile accounts may be copied from club settings when creating a component, then are stored as concrete editable values; later settings changes never update them. Post and video URLs must always be supplied explicitly.

Use an exact https://www.tiktok.com/@handle/video/1234567890 permalink, without query parameters or a fragment.

Shared objects​

The names below describe field values. They are not extra fields to add. Text accepts a shared string or an en/fr object. Supply your club's primary language; missing secondary text falls back to the primary value.

WebsiteMediaReference​

object

FieldValueWhen omitted
assetIdstringRequired
altWebsiteLocalizedAltRequired

WebsiteLocalizedAlt​

string; minLength: 1; maxLength: 300

object

FieldValueWhen omitted
enstring; maxLength: 300Omitted
frstring or null; minLength: 1; maxLength: 300null

WebsiteLocalizedText​

string; minLength: 1; maxLength: 20000

object

FieldValueWhen omitted
enstringOmitted
frstring or nullnull

WebsiteAction​

object

FieldValueWhen omitted
labelWebsiteLocalizedTextRequired
hrefstringRequired
appearanceWebsiteButtonAppearance or nullnull
sizeWebsiteButtonSize or nullnull

WebsiteButtonAppearance​

"filled", "secondary", "outline"

WebsiteButtonSize​

"small", "normal", "large"

WebsiteTestimonial​

object

FieldValueWhen omitted
quoteWebsiteLocalizedTextRequired
attributionWebsiteLocalizedTextRequired

WebsiteProviderAspectRatio​

"wide", "standard", "square"

WebsiteTabSection​

object

FieldValueWhen omitted
idstringRequired
labelWebsiteLocalizedTextRequired
contentWebsiteLocalizedTextRequired
contentFormatWebsiteTabContentFormat or nullnull

WebsiteTabContentFormat​

"plain_text"

WebsiteCarouselSlide​

object

FieldValueWhen omitted
idstringRequired
mediaWebsiteMediaReferenceRequired
captionWebsiteLocalizedText or nullnull
linkstring or nullnull

WebsiteAccordionItem​

object

FieldValueWhen omitted
idstringRequired
headingWebsiteLocalizedTextRequired
bodyWebsiteLocalizedTextRequired
initiallyOpenbooleanRequired

WebsiteSignupNameField​

object

FieldValueWhen omitted
namestringRequired
labelWebsiteLocalizedTextRequired
requiredbooleanRequired