Skip to main content

Tech and industry (Manufacturing and industry), Trade fair 1.0.0

TemplateTech and industry (Manufacturing and industry), tpl_1c972308e957
VariantTrade fair
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length14 seconds

Example video​

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

What it accepts​

The invitation to a trade fair stand as a drawing: the fair, its dates and place, the stand on a plan of the hall with its number large, and the days left from the post's own date. Then the exhibits, each selected in turn, then how to book a meeting, the button and the presenter. Hall, stand and dates stay in the title block. One to four exhibits, two seconds each. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the section, the line above the headline, the fair and the line under it, the dates, the hours and the venue, the hall and the stand, the days left and the words after them, the exhibits, how to meet, the call to action and the footnote.
clipData.sectiontextup to 24 charactersSection: What the post is, on the type plate at the end of the header, such as Trade fair or Events.
clipData.kickertextup to 40 charactersAbove the headline: Set small above the fair's name, such as Meet us at.
clipData.fairtextyesup to 56 charactersFair: The fair's name and year, as the headline.
clipData.sublinetextup to 120 charactersLine under it: One sentence on what you bring to the fair.
clipData.opensdatetimeyesFirst day: The day the fair opens, with the time the doors open. The days left are counted to it, and it is written the channel's way.
clipData.closesdatetimeLast day: The fair's last day. Left out, or on the same day, the fair is one day.
clipData.datesTexttextup to 48 charactersDays, as written: The days in your own words, shown instead of the ones written from the dates, such as 17 to 20 November. Left out, they are written from the dates.
clipData.hourstextup to 40 charactersOpening hours: When the fair is open, as written, such as 9:00 to 17:00 daily.
clipData.venuetextup to 56 charactersVenue: Where the fair is, such as the exhibition centre and the city.
clipData.standgroupHall and stand: Your hall and stand, exactly as the fair writes them. The stand is drawn large on a plan of the hall and both stand in the title block, with the dates, on every frame.
clipData.stand.halltextup to 12 charactersHall: The hall, such as 4 or 4.0. Left out, for a fair without halls, only the stand is shown.
clipData.stand.standtextyesup to 12 charactersStand: The stand, such as B12.
clipData.standLabelsgroupTitle block captions: The small caption over each field of the title block, in your language, also used on the plan and on the end card. A caption left out is not drawn; the field still is.
clipData.standLabels.halltextup to 12 charactersOver the hall: Such as Hall.
clipData.standLabels.standtextup to 12 charactersOver the stand: Such as Stand or Booth.
clipData.standLabels.datestextup to 12 charactersOver the dates: Such as Dates.
clipData.asOfdatetimeyesPost's date: The day the post goes out: the days left are counted from it to the first day, rounded down, never from the clock, so the clip says what is true when it is posted. On or after the first day no countdown is drawn.
clipData.countdownLabeltextup to 40 charactersAfter the days left: The words after the number of days, such as until the doors open. The word for days is written in the channel's language.
clipData.exhibitslistyesat least 1, up to 4Exhibits: One to four things you show at the fair, in the order they are shown: each a picture from the media library, shown whole in its drawing view with its number on a balloon, a name and a note. Selected one after another.
clipData.exhibits[]groupExhibit
clipData.exhibits[].pictureimageyesmedia:// file from the media library, alt text up to 120 charactersPicture: The exhibit, from the media library: a part, a machine, a demonstration. Shown whole in its own shape; a cut-out on a transparent background stands on the drawing's grid.
clipData.exhibits[].nametextyesup to 40 charactersName: What it is, such as Flange coupling VB-4410.
clipData.exhibits[].notetextup to 90 charactersNote: One sentence about it, such as what is new or what visitors can see.
clipData.meetingtextup to 110 charactersHow to meet: How to book a meeting at the stand, shown with the button at the end.
clipData.ctagroupCall to action: The button at the end and the line under it, such as a web address, a handle or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 48 charactersLine under it: An address, a handle, an app, a phone number.
clipData.footnotetextup to 300 charactersFootnote: Who stands behind the post, such as your legal entity, and anything a visitor should know about the exhibits. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut.
clipData.lookgroupLook: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start.
clipData.look.themeenumbrand, light, dark, boldTheme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.
clipData.look.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on a small plate 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.
clipData.look.logoSizeenumauto, small, largeLogo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.
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 400 schema_validation error that names the field.

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is, on the type plate at the end of the header, such as Trade fair or Events."
},
"kicker": {
"type": "string",
"maxLength": 40,
"title": "Above the headline",
"description": "Set small above the fair's name, such as Meet us at."
},
"fair": {
"type": "string",
"maxLength": 56,
"title": "Fair",
"description": "The fair's name and year, as the headline."
},
"subline": {
"type": "string",
"maxLength": 120,
"title": "Line under it",
"description": "One sentence on what you bring to the fair."
},
"opens": {
"type": "string",
"format": "date-time",
"title": "First day",
"description": "The day the fair opens, with the time the doors open. The days left are counted to it, and it is written the channel's way."
},
"closes": {
"type": "string",
"format": "date-time",
"title": "Last day",
"description": "The fair's last day. Left out, or on the same day, the fair is one day."
},
"datesText": {
"type": "string",
"maxLength": 48,
"title": "Days, as written",
"description": "The days in your own words, shown instead of the ones written from the dates, such as 17 to 20 November. Left out, they are written from the dates."
},
"hours": {
"type": "string",
"maxLength": 40,
"title": "Opening hours",
"description": "When the fair is open, as written, such as 9:00 to 17:00 daily."
},
"venue": {
"type": "string",
"maxLength": 56,
"title": "Venue",
"description": "Where the fair is, such as the exhibition centre and the city."
},
"stand": {
"type": "object",
"properties": {
"hall": {
"type": "string",
"maxLength": 12,
"title": "Hall",
"description": "The hall, such as 4 or 4.0. Left out, for a fair without halls, only the stand is shown."
},
"stand": {
"type": "string",
"maxLength": 12,
"title": "Stand",
"description": "The stand, such as B12."
}
},
"required": [
"stand"
],
"additionalProperties": false,
"title": "Hall and stand",
"description": "Your hall and stand, exactly as the fair writes them. The stand is drawn large on a plan of the hall and both stand in the title block, with the dates, on every frame."
},
"standLabels": {
"type": "object",
"properties": {
"hall": {
"type": "string",
"maxLength": 12,
"title": "Over the hall",
"description": "Such as Hall."
},
"stand": {
"type": "string",
"maxLength": 12,
"title": "Over the stand",
"description": "Such as Stand or Booth."
},
"dates": {
"type": "string",
"maxLength": 12,
"title": "Over the dates",
"description": "Such as Dates."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language, also used on the plan and on the end card. A caption left out is not drawn; the field still is."
},
"asOf": {
"type": "string",
"format": "date-time",
"title": "Post's date",
"description": "The day the post goes out: the days left are counted from it to the first day, rounded down, never from the clock, so the clip says what is true when it is posted. On or after the first day no countdown is drawn."
},
"countdownLabel": {
"type": "string",
"maxLength": 40,
"title": "After the days left",
"description": "The words after the number of days, such as until the doors open. The word for days is written in the channel's language."
},
"exhibits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "The exhibit, from the media library: a part, a machine, a demonstration. Shown whole in its own shape; a cut-out on a transparent background stands on the drawing's grid."
},
"name": {
"type": "string",
"maxLength": 40,
"title": "Name",
"description": "What it is, such as Flange coupling VB-4410."
},
"note": {
"type": "string",
"maxLength": 90,
"title": "Note",
"description": "One sentence about it, such as what is new or what visitors can see."
}
},
"required": [
"picture",
"name"
],
"additionalProperties": false,
"title": "Exhibit"
},
"minItems": 1,
"maxItems": 4,
"title": "Exhibits",
"description": "One to four things you show at the fair, in the order they are shown: each a picture from the media library, shown whole in its drawing view with its number on a balloon, a name and a note. Selected one after another."
},
"meeting": {
"type": "string",
"maxLength": 110,
"title": "How to meet",
"description": "How to book a meeting at the stand, shown with the button at the end."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"footnote": {
"type": "string",
"maxLength": 300,
"title": "Footnote",
"description": "Who stands behind the post, such as your legal entity, and anything a visitor should know about the exhibits. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate 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"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start."
}
},
"required": [
"fair",
"opens",
"asOf",
"exhibits"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the line above the headline, the fair and the line under it, the dates, the hours and the venue, the hall and the stand, the days left and the words after them, the exhibits, how to meet, the call to action and the footnote."
},
"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": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is, on the type plate at the end of the header, such as Trade fair or Events."
},
"kicker": {
"type": "string",
"maxLength": 40,
"title": "Above the headline",
"description": "Set small above the fair's name, such as Meet us at."
},
"fair": {
"type": "string",
"maxLength": 56,
"title": "Fair",
"description": "The fair's name and year, as the headline."
},
"subline": {
"type": "string",
"maxLength": 120,
"title": "Line under it",
"description": "One sentence on what you bring to the fair."
},
"opens": {
"type": "string",
"format": "date-time",
"title": "First day",
"description": "The day the fair opens, with the time the doors open. The days left are counted to it, and it is written the channel's way."
},
"closes": {
"type": "string",
"format": "date-time",
"title": "Last day",
"description": "The fair's last day. Left out, or on the same day, the fair is one day."
},
"datesText": {
"type": "string",
"maxLength": 48,
"title": "Days, as written",
"description": "The days in your own words, shown instead of the ones written from the dates, such as 17 to 20 November. Left out, they are written from the dates."
},
"hours": {
"type": "string",
"maxLength": 40,
"title": "Opening hours",
"description": "When the fair is open, as written, such as 9:00 to 17:00 daily."
},
"venue": {
"type": "string",
"maxLength": 56,
"title": "Venue",
"description": "Where the fair is, such as the exhibition centre and the city."
},
"stand": {
"type": "object",
"properties": {
"hall": {
"type": "string",
"maxLength": 12,
"title": "Hall",
"description": "The hall, such as 4 or 4.0. Left out, for a fair without halls, only the stand is shown."
},
"stand": {
"type": "string",
"maxLength": 12,
"title": "Stand",
"description": "The stand, such as B12."
}
},
"additionalProperties": false,
"title": "Hall and stand",
"description": "Your hall and stand, exactly as the fair writes them. The stand is drawn large on a plan of the hall and both stand in the title block, with the dates, on every frame."
},
"standLabels": {
"type": "object",
"properties": {
"hall": {
"type": "string",
"maxLength": 12,
"title": "Over the hall",
"description": "Such as Hall."
},
"stand": {
"type": "string",
"maxLength": 12,
"title": "Over the stand",
"description": "Such as Stand or Booth."
},
"dates": {
"type": "string",
"maxLength": 12,
"title": "Over the dates",
"description": "Such as Dates."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language, also used on the plan and on the end card. A caption left out is not drawn; the field still is."
},
"asOf": {
"type": "string",
"format": "date-time",
"title": "Post's date",
"description": "The day the post goes out: the days left are counted from it to the first day, rounded down, never from the clock, so the clip says what is true when it is posted. On or after the first day no countdown is drawn."
},
"countdownLabel": {
"type": "string",
"maxLength": 40,
"title": "After the days left",
"description": "The words after the number of days, such as until the doors open. The word for days is written in the channel's language."
},
"exhibits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "The exhibit, from the media library: a part, a machine, a demonstration. Shown whole in its own shape; a cut-out on a transparent background stands on the drawing's grid."
},
"name": {
"type": "string",
"maxLength": 40,
"title": "Name",
"description": "What it is, such as Flange coupling VB-4410."
},
"note": {
"type": "string",
"maxLength": 90,
"title": "Note",
"description": "One sentence about it, such as what is new or what visitors can see."
}
},
"required": [
"picture",
"name"
],
"additionalProperties": false,
"title": "Exhibit"
},
"minItems": 1,
"maxItems": 4,
"title": "Exhibits",
"description": "One to four things you show at the fair, in the order they are shown: each a picture from the media library, shown whole in its drawing view with its number on a balloon, a name and a note. Selected one after another."
},
"meeting": {
"type": "string",
"maxLength": 110,
"title": "How to meet",
"description": "How to book a meeting at the stand, shown with the button at the end."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"footnote": {
"type": "string",
"maxLength": 300,
"title": "Footnote",
"description": "Who stands behind the post, such as your legal entity, and anything a visitor should know about the exhibits. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate 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"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the line above the headline, the fair and the line under it, the dates, the hours and the venue, the hall and the stand, the days left and the words after them, the exhibits, how to meet, the call to action and the footnote."
},
"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_1c972308e957?variant=Trade%20fair&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": {
"section": "Trade fair",
"kicker": "Meet us at",
"fair": "Precision Parts Expo 2026",
"subline": "Our new flange couplings on the stand, and the engineers who make them.",
"opens": "2026-11-17T09:00:00+01:00",
"closes": "2026-11-20T17:00:00+01:00",
"datesText": "",
"hours": "9:00 to 17:00 daily",
"venue": "Stuttgart Trade Fair Centre",
"stand": {
"hall": "4",
"stand": "B12"
},
"standLabels": {
"hall": "Hall",
"dates": "Dates",
"stand": "Stand"
},
"asOf": "2026-10-15T09:00:00+02:00",
"countdownLabel": "until the doors open",
"exhibits": [
{
"name": "Flange coupling VB-4410",
"note": "Forged, machined to ±0.05 mm, rated for 400 bar.",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
}
},
{
"name": "Ground spur gears",
"note": "Module 2 to 8, case-hardened and ground to DIN quality 6.",
"picture": {
"alt": "A landscape under a changing sky",
"url": "media://example-image-with-animation.svg"
}
},
{
"name": "Five-axis machining, live",
"note": "A coupling machined on the stand every hour.",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
}
}
],
"meeting": "Book a 20-minute slot with our application engineers, before the fair or on the day.",
"cta": {
"label": "Book a meeting",
"detail": "vossberg.example/expo"
},
"footnote": "Vossberg Precision GmbH, Ulm. Exhibits are production parts; specifications on request.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Meet us at Precision Parts Expo 2026, Hall 4, Stand B12",
"captionTiny": "Meet us at Precision Parts Expo 2026 in Stuttgart, 17 to 20 November: Hall 4, Stand B12. Book a meeting with our engineers.",
"captionShort": "We are exhibiting at Precision Parts Expo 2026 in Stuttgart, 17 to 20 November. Find us in Hall 4, Stand B12, with our forged flange couplings, our ground spur gears and a five-axis centre machining a coupling live every hour. Book a 20-minute slot with our application engineers before you go.",
"captionMedium": "We are exhibiting at Precision Parts Expo 2026 at the Stuttgart Trade Fair Centre, 17 to 20 November, 9:00 to 17:00 daily. Find us in Hall 4, Stand B12. On the stand: the forged flange coupling VB-4410, machined to ±0.05 mm and rated for 400 bar, our ground spur gears from module 2 to 8, and a five-axis machining centre cutting a coupling live every hour. Bring your drawings: our application engineers will be there all four days. Book a 20-minute slot before the fair or on the day at vossberg.example/expo.",
"captionLong": "We are exhibiting at Precision Parts Expo 2026 at the Stuttgart Trade Fair Centre, from Tuesday 17 to Friday 20 November, 9:00 to 17:00 daily, and we would like to meet you there. Find us in Hall 4, Stand B12. On the stand you will find the forged flange coupling VB-4410, machined from one blank to ±0.05 mm and rated for 400 bar; our case-hardened spur gears, ground to DIN quality 6 from module 2 to 8; and a five-axis machining centre cutting a coupling live every hour, so you can watch the process and take the part and its inspection report home. Bring your drawings and your toughest tolerances: our application engineers will be on the stand all four days, and so will our quality team. To be sure of a quiet half hour, book a 20-minute slot before the fair or on the day at vossberg.example/expo. Vossberg Precision GmbH, Ulm.",
"hashtags": [
"tradefair",
"manufacturing",
"precisionengineering",
"cncmachining",
"engineering"
]
}
}
}

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.