Skip to main content

Marker on a scale, Swiss grid 1.0.0

TemplateMarker on a scale, tpl_5ed61ad6adda
VariantSwiss grid
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length18 seconds

Example video​

The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.

What it accepts​

One value placed on a scale against what it is measured by: up to four references and three bands, a dot sliding along the scale to the value with its figure counting as it goes, the band it lands in lit, and up to four more readings after it, one at a time. metaData is the post's title, descriptions and hashtags and is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn: a kicker, the title, the value with what it is, its prefix and unit, the scale with its ends, up to four references and three bands, a line of context, up to four more readings each on a page of its own, the source and the look.
clipData.kickertextup to 20 charactersKicker: A word above the title, such as JUST IN or AIR QUALITY.
clipData.titletextyesup to 80 charactersTitle: What the value is and what it is held against, read first so the scale lands with its meaning.
clipData.valueLabeltextup to 24 charactersWhat the value is: Written over the figure that rides with the dot, such as Actual, Priced at or Today.
clipData.valuenumberyes4 decimalsThe value: Where the dot lands; its figure counts to exactly this.
clipData.prefixtextup to 3 charactersPrefix: Written before every value, such as a currency sign.
clipData.unittextup to 12 charactersUnit: Written after the value: a percent sign, points, cm, a share. Up to three characters are also written after the references' and bands' values.
clipData.scalegroupScale: Where the scale starts and ends, and a word at either end where it helps, such as Poor and Excellent or Shrinking and Growing. An end left out is worked out from the values, with some room.
clipData.scale.fromnumber4 decimalsFrom: The value at the start of the scale.
clipData.scale.tonumber4 decimalsTo: The value at the end of the scale.
clipData.scale.fromLabeltextup to 16 charactersWord at the start: Written beside the start of the scale, such as Poor.
clipData.scale.toLabeltextup to 16 charactersWord at the end: Written beside the end of the scale, such as Excellent.
clipData.referenceslistat least 0, up to 4References: Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four.
clipData.references[]groupReference
clipData.references[].labeltextyesup to 26 charactersLabel: Such as Forecast, Last month or Flood warning.
clipData.references[].valuenumberyes4 decimalsValue
clipData.bandslistat least 0, up to 3Bands: Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives.
clipData.bands[]groupBand
clipData.bands[].fromnumberyes4 decimalsFrom
clipData.bands[].tonumberyes4 decimalsTo
clipData.bands[].labeltextup to 26 charactersLabel: Such as Economists' range, Normal range or Overbought.
clipData.notetextup to 140 charactersContext: One or two lines under the scale.
clipData.morelistat least 0, up to 4More readings: Further readings shown after the first, one at a time, each with its title, value, references, bands and a line of context. A prefix or unit left out is the first reading's, and a scale left out is the first's where the reading fits on it. Each adds five seconds; four make about 28 seconds.
clipData.more[]groupReading
clipData.more[].titletextyesup to 80 charactersTitle: What the value is and what it is held against.
clipData.more[].valueLabeltextup to 24 charactersWhat the value is: Written over the figure that rides with the dot, such as Actual.
clipData.more[].valuenumberyes4 decimalsThe value
clipData.more[].prefixtextup to 3 charactersPrefix: Written before every value. Left out, the first reading's.
clipData.more[].unittextup to 12 charactersUnit: Written after every value. Left out, the first reading's; send it empty for none.
clipData.more[].scalegroupScale: Where this reading's scale starts and ends, and its words. Left out, the first reading's scale is used where everything this reading sends lies on it; otherwise it is worked out from this reading's values.
clipData.more[].scale.fromnumber4 decimalsFrom: The value at the start of the scale.
clipData.more[].scale.tonumber4 decimalsTo: The value at the end of the scale.
clipData.more[].scale.fromLabeltextup to 16 charactersWord at the start: Written beside the start of the scale, such as Poor.
clipData.more[].scale.toLabeltextup to 16 charactersWord at the end: Written beside the end of the scale, such as Excellent.
clipData.more[].referenceslistat least 0, up to 4References: Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four.
clipData.more[].references[]groupReference
clipData.more[].references[].labeltextyesup to 26 charactersLabel: Such as Forecast, Last month or Flood warning.
clipData.more[].references[].valuenumberyes4 decimalsValue
clipData.more[].bandslistat least 0, up to 3Bands: Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives. Left out, the first reading's bands, where this reading is drawn on its scale; send an empty list for none.
clipData.more[].bands[]groupBand
clipData.more[].bands[].fromnumberyes4 decimalsFrom
clipData.more[].bands[].tonumberyes4 decimalsTo
clipData.more[].bands[].labeltextup to 26 charactersLabel: Such as Economists' range, Normal range or Overbought.
clipData.more[].notetextup to 140 charactersContext: One or two lines under the scale.
clipData.sourcetextup to 60 charactersSource
clipData.lookgroupLook: How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides.
clipData.look.themeenumauto, brand, light, dark, boldTheme: The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.
clipData.look.paceenumauto, calm, standard, punchyPace: How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.
clipData.look.cornersenumauto, square, soft, roundCorners: The shape of cards, panels and marks.
clipData.look.alignenumauto, start, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.
metaDatagroupMeta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data.
metaData.titletextup to 100 charactersTitle: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes.
metaData.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.

A picture is always a file from your media library: media:// followed by its id or its name. Anything the table does not list is refused, and so is anything over its limit, with a 422 that names the field.

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"kicker": {
"type": "string",
"maxLength": 20,
"title": "Kicker",
"description": "A word above the title, such as JUST IN or AIR QUALITY."
},
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the value is and what it is held against, read first so the scale lands with its meaning."
},
"valueLabel": {
"type": "string",
"maxLength": 24,
"title": "What the value is",
"description": "Written over the figure that rides with the dot, such as Actual, Priced at or Today."
},
"value": {
"type": "number",
"title": "The value",
"description": "Where the dot lands; its figure counts to exactly this."
},
"prefix": {
"type": "string",
"maxLength": 3,
"title": "Prefix",
"description": "Written before every value, such as a currency sign."
},
"unit": {
"type": "string",
"maxLength": 12,
"title": "Unit",
"description": "Written after the value: a percent sign, points, cm, a share. Up to three characters are also written after the references' and bands' values."
},
"scale": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From",
"description": "The value at the start of the scale."
},
"to": {
"type": "number",
"title": "To",
"description": "The value at the end of the scale."
},
"fromLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the start",
"description": "Written beside the start of the scale, such as Poor."
},
"toLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the end",
"description": "Written beside the end of the scale, such as Excellent."
}
},
"additionalProperties": false,
"title": "Scale",
"description": "Where the scale starts and ends, and a word at either end where it helps, such as Poor and Excellent or Shrinking and Growing. An end left out is worked out from the values, with some room."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Forecast, Last month or Flood warning."
},
"value": {
"type": "number",
"title": "Value"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false,
"title": "Reference"
},
"minItems": 0,
"maxItems": 4,
"title": "References",
"description": "Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four."
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From"
},
"to": {
"type": "number",
"title": "To"
},
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Economists' range, Normal range or Overbought."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"title": "Band"
},
"minItems": 0,
"maxItems": 3,
"title": "Bands",
"description": "Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "Context",
"description": "One or two lines under the scale."
},
"more": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the value is and what it is held against."
},
"valueLabel": {
"type": "string",
"maxLength": 24,
"title": "What the value is",
"description": "Written over the figure that rides with the dot, such as Actual."
},
"value": {
"type": "number",
"title": "The value"
},
"prefix": {
"type": "string",
"maxLength": 3,
"title": "Prefix",
"description": "Written before every value. Left out, the first reading's."
},
"unit": {
"type": "string",
"maxLength": 12,
"title": "Unit",
"description": "Written after every value. Left out, the first reading's; send it empty for none."
},
"scale": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From",
"description": "The value at the start of the scale."
},
"to": {
"type": "number",
"title": "To",
"description": "The value at the end of the scale."
},
"fromLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the start",
"description": "Written beside the start of the scale, such as Poor."
},
"toLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the end",
"description": "Written beside the end of the scale, such as Excellent."
}
},
"additionalProperties": false,
"title": "Scale",
"description": "Where this reading's scale starts and ends, and its words. Left out, the first reading's scale is used where everything this reading sends lies on it; otherwise it is worked out from this reading's values."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Forecast, Last month or Flood warning."
},
"value": {
"type": "number",
"title": "Value"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false,
"title": "Reference"
},
"minItems": 0,
"maxItems": 4,
"title": "References",
"description": "Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four."
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From"
},
"to": {
"type": "number",
"title": "To"
},
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Economists' range, Normal range or Overbought."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"title": "Band"
},
"minItems": 0,
"maxItems": 3,
"title": "Bands",
"description": "Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives. Left out, the first reading's bands, where this reading is drawn on its scale; send an empty list for none."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "Context",
"description": "One or two lines under the scale."
}
},
"required": [
"title",
"value"
],
"additionalProperties": false,
"title": "Reading"
},
"minItems": 0,
"maxItems": 4,
"title": "More readings",
"description": "Further readings shown after the first, one at a time, each with its title, value, references, bands and a line of context. A prefix or unit left out is the first reading's, and a scale left out is the first's where the reading fits on it. Each adds five seconds; four make about 28 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source"
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"required": [
"title",
"value"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the title, the value with what it is, its prefix and unit, the scale with its ends, up to four references and three bands, a line of context, up to four more readings each on a page of its own, the source and the look."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"kicker": {
"type": "string",
"maxLength": 20,
"title": "Kicker",
"description": "A word above the title, such as JUST IN or AIR QUALITY."
},
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the value is and what it is held against, read first so the scale lands with its meaning."
},
"valueLabel": {
"type": "string",
"maxLength": 24,
"title": "What the value is",
"description": "Written over the figure that rides with the dot, such as Actual, Priced at or Today."
},
"value": {
"type": "number",
"title": "The value",
"description": "Where the dot lands; its figure counts to exactly this."
},
"prefix": {
"type": "string",
"maxLength": 3,
"title": "Prefix",
"description": "Written before every value, such as a currency sign."
},
"unit": {
"type": "string",
"maxLength": 12,
"title": "Unit",
"description": "Written after the value: a percent sign, points, cm, a share. Up to three characters are also written after the references' and bands' values."
},
"scale": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From",
"description": "The value at the start of the scale."
},
"to": {
"type": "number",
"title": "To",
"description": "The value at the end of the scale."
},
"fromLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the start",
"description": "Written beside the start of the scale, such as Poor."
},
"toLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the end",
"description": "Written beside the end of the scale, such as Excellent."
}
},
"additionalProperties": false,
"title": "Scale",
"description": "Where the scale starts and ends, and a word at either end where it helps, such as Poor and Excellent or Shrinking and Growing. An end left out is worked out from the values, with some room."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Forecast, Last month or Flood warning."
},
"value": {
"type": "number",
"title": "Value"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false,
"title": "Reference"
},
"minItems": 0,
"maxItems": 4,
"title": "References",
"description": "Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four."
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From"
},
"to": {
"type": "number",
"title": "To"
},
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Economists' range, Normal range or Overbought."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"title": "Band"
},
"minItems": 0,
"maxItems": 3,
"title": "Bands",
"description": "Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "Context",
"description": "One or two lines under the scale."
},
"more": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the value is and what it is held against."
},
"valueLabel": {
"type": "string",
"maxLength": 24,
"title": "What the value is",
"description": "Written over the figure that rides with the dot, such as Actual."
},
"value": {
"type": "number",
"title": "The value"
},
"prefix": {
"type": "string",
"maxLength": 3,
"title": "Prefix",
"description": "Written before every value. Left out, the first reading's."
},
"unit": {
"type": "string",
"maxLength": 12,
"title": "Unit",
"description": "Written after every value. Left out, the first reading's; send it empty for none."
},
"scale": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From",
"description": "The value at the start of the scale."
},
"to": {
"type": "number",
"title": "To",
"description": "The value at the end of the scale."
},
"fromLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the start",
"description": "Written beside the start of the scale, such as Poor."
},
"toLabel": {
"type": "string",
"maxLength": 16,
"title": "Word at the end",
"description": "Written beside the end of the scale, such as Excellent."
}
},
"additionalProperties": false,
"title": "Scale",
"description": "Where this reading's scale starts and ends, and its words. Left out, the first reading's scale is used where everything this reading sends lies on it; otherwise it is worked out from this reading's values."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Forecast, Last month or Flood warning."
},
"value": {
"type": "number",
"title": "Value"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false,
"title": "Reference"
},
"minItems": 0,
"maxItems": 4,
"title": "References",
"description": "Marks on the scale the value is read against, each with its label and value: what was expected, the last reading, a limit, a target, a record. Up to four."
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "number",
"title": "From"
},
"to": {
"type": "number",
"title": "To"
},
"label": {
"type": "string",
"maxLength": 26,
"title": "Label",
"description": "Such as Economists' range, Normal range or Overbought."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"title": "Band"
},
"minItems": 0,
"maxItems": 3,
"title": "Bands",
"description": "Stretches of the scale drawn as bands: a forecast range, the normal range, overbought and oversold, a fair price. Up to three. The band the value lands in is lit when the dot arrives. Left out, the first reading's bands, where this reading is drawn on its scale; send an empty list for none."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "Context",
"description": "One or two lines under the scale."
}
},
"required": [
"title",
"value"
],
"additionalProperties": false,
"title": "Reading"
},
"minItems": 0,
"maxItems": 4,
"title": "More readings",
"description": "Further readings shown after the first, one at a time, each with its title, value, references, bands and a line of context. A prefix or unit left out is the first reading's, and a scale left out is the first's where the reading fits on it. Each adds five seconds; four make about 28 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source"
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the title, the value with what it is, its prefix and unit, the scale with its ends, up to four references and three bands, a line of context, up to four more readings each on a page of its own, the source and the look."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
}
},
"additionalProperties": false
},
"propertyNames": {
"enum": [
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu",
"zh-CN",
"zh-TW",
"pt-BR"
]
}
}
},
"required": [
"clipData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}

Ask Reelwire for the same document yourself, without signing in:

curl "http://localhost:4000/v1/formats/template/tpl_5ed61ad6adda?variant=Swiss%20grid&version=1.0.0"

Delivery JSON​

Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to that stream draws it with its template. data is the document described above; a stream with an empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate, which answers the same without publishing anything. Streams and feeds explains the rest, including how to map a document of your own shape instead.

{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"kicker": "Jobs report",
"title": "Unemployment fell to 4.2 percent in September, below the 4.3 percent expected",
"valueLabel": "Actual",
"value": 4.2,
"prefix": "",
"unit": "%",
"scale": {
"to": 5,
"from": 3.5
},
"references": [
{
"label": "Forecast",
"value": 4.3
},
{
"label": "August",
"value": 4.4
},
{
"label": "A year ago",
"value": 4.6
}
],
"bands": [
{
"to": 4.5,
"from": 4.1,
"label": "Economists' range"
}
],
"note": "The lowest rate in eighteen months. Average pay rose 0.3 percent on the month, as forecast.",
"more": [
{
"note": "Rents and energy did most of the rising; food prices were flat on the month.",
"bands": [
{
"to": 2.5,
"from": 2.2,
"label": "Economists' range"
}
],
"scale": {
"to": 3.5,
"from": 1.5
},
"title": "Prices rose 2.6 percent in the year to September, above the economists' range",
"value": 2.6,
"references": [
{
"label": "Forecast",
"value": 2.4
},
{
"label": "August",
"value": 2.5
},
{
"label": "Central bank target",
"value": 2
}
],
"valueLabel": "Actual"
},
{
"note": "New orders rose for the first time since June, while output fell again.",
"unit": "",
"scale": {
"to": 60,
"from": 40,
"toLabel": "Growing",
"fromLabel": "Shrinking"
},
"title": "Factory activity shrank for a third month, with the index still under 50",
"value": 48.7,
"references": [
{
"label": "No change",
"value": 50
},
{
"label": "August",
"value": 47.9
}
],
"valueLabel": "Index"
}
],
"source": "National statistics office, survey of 24 economists",
"look": {
"theme": "auto",
"pace": "auto",
"corners": "auto",
"align": "auto",
"logo": "auto"
}
},
"metaData": {
"title": "September in three numbers: jobs, prices and factories against what was expected",
"captionTiny": "Unemployment fell to 4.2% in September, below the 4.3% forecast. Prices rose 2.6% in a year, above every forecast. The factory index stayed under 50 for a third month, at 48.7.",
"captionShort": "September's figures, each against what was expected. Unemployment fell to 4.2 percent, below the 4.3 percent forecast and inside the economists' range of 4.1 to 4.5. Prices rose 2.6 percent in the year to September, above the forecast of 2.4 and above the top of the range. The factory index rose to 48.7 from 47.9, but stayed under 50, the line between shrinking and growing, for a third month.",
"captionMedium": "September's figures are in, and they did not all point the same way.\n\nUnemployment fell to 4.2 percent, from 4.4 percent in August. Economists had expected 4.3 percent, and the 24 who were surveyed had a range of 4.1 to 4.5 percent, so the figure came in near the low end. It is the lowest rate in eighteen months. Average pay rose 0.3 percent on the month, as forecast.\n\nPrices rose 2.6 percent in the year to September, up from 2.5 percent in August. That is above the forecast of 2.4 percent and above the top of the economists' range, and further from the central bank's 2 percent target. Rents and energy did most of the rising; food prices were flat on the month.\n\nThe index of factory activity rose to 48.7 from 47.9, but a reading under 50 still means activity shrank, now for a third month in a row. New orders rose for the first time since June, while output fell again.\n\nThe figures come from the national statistics office; the forecasts from a survey of 24 economists.",
"captionLong": "September's figures are in, and they did not all point the same way. Here is each one against what was expected.\n\nJobs. Unemployment fell to 4.2 percent, from 4.4 percent in August and 4.6 percent a year ago. Economists had expected 4.3 percent, and the 24 who were surveyed had a range of 4.1 to 4.5 percent, so the figure came in near the low end of what anybody expected. It is the lowest rate in eighteen months. Average pay rose 0.3 percent on the month, as forecast, which suggests employers are still competing for staff without pay running away.\n\nPrices. Consumer prices rose 2.6 percent in the year to September, up from 2.5 percent in August. That is above the forecast of 2.4 percent and above the top of the economists' range of 2.2 to 2.5 percent, and it moves further from the central bank's 2 percent target. Rents and energy did most of the rising. Food prices, which drove the rise last winter, were flat on the month.\n\nFactories. The index of factory activity, built from a monthly survey of purchasing managers, rose to 48.7 from 47.9. A reading under 50 means activity shrank compared with the month before, so this is a third month of shrinking in a row, if a slower one. New orders rose for the first time since June, which is often the first sign of a turn, while output fell again.\n\nWhat it adds up to: a labour market that is still firm, prices that are rising a little faster than hoped, and industry that is shrinking more slowly. The central bank meets again at the end of October, and the prices figure is the one it will look at most closely.\n\nThe figures come from the national statistics office and the monthly purchasing managers' survey; the forecasts and the ranges from a survey of 24 economists in the week before each release. Nothing in this clip is investment advice.",
"hashtags": [
"economy",
"jobs",
"unemployment",
"inflation",
"prices",
"manufacturing",
"economicdata",
"economics",
"statistics",
"markets"
]
}
}
}

The delivery names no version: which build draws it is the channel's choice, the newest of its variant or the one it is pinned to. eventId is a ULID you make once per event: sending the same one again changes nothing. occurredAt is when the thing happened, not when you sent it. locale is the language of the text in data, and data.locales carries other languages beside it.