Tech and industry (Manufacturing and industry), Trade fair 1.0.0
| Template | Tech and industry (Manufacturing and industry), tpl_1c972308e957 |
|---|---|
| Variant | Trade fair |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 14 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.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip 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.section | text | up to 24 characters | Section: What the post is, on the type plate at the end of the header, such as Trade fair or Events. | |
clipData.kicker | text | up to 40 characters | Above the headline: Set small above the fair's name, such as Meet us at. | |
clipData.fair | text | yes | up to 56 characters | Fair: The fair's name and year, as the headline. |
clipData.subline | text | up to 120 characters | Line under it: One sentence on what you bring to the fair. | |
clipData.opens | datetime | yes | First 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.closes | datetime | Last day: The fair's last day. Left out, or on the same day, the fair is one day. | ||
clipData.datesText | text | up to 48 characters | Days, 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.hours | text | up to 40 characters | Opening hours: When the fair is open, as written, such as 9:00 to 17:00 daily. | |
clipData.venue | text | up to 56 characters | Venue: Where the fair is, such as the exhibition centre and the city. | |
clipData.stand | group | Hall 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.hall | text | up to 12 characters | Hall: The hall, such as 4 or 4.0. Left out, for a fair without halls, only the stand is shown. | |
clipData.stand.stand | text | yes | up to 12 characters | Stand: The stand, such as B12. |
clipData.standLabels | group | Title 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.hall | text | up to 12 characters | Over the hall: Such as Hall. | |
clipData.standLabels.stand | text | up to 12 characters | Over the stand: Such as Stand or Booth. | |
clipData.standLabels.dates | text | up to 12 characters | Over the dates: Such as Dates. | |
clipData.asOf | datetime | yes | Post'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.countdownLabel | text | up to 40 characters | After 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.exhibits | list | yes | at least 1, up to 4 | Exhibits: 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[] | group | Exhibit | ||
clipData.exhibits[].picture | image | yes | media:// file from the media library, alt text up to 120 characters | Picture: 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[].name | text | yes | up to 40 characters | Name: What it is, such as Flange coupling VB-4410. |
clipData.exhibits[].note | text | up to 90 characters | Note: One sentence about it, such as what is new or what visitors can see. | |
clipData.meeting | text | up to 110 characters | How to meet: How to book a meeting at the stand, shown with the button at the end. | |
clipData.cta | group | Call 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.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 48 characters | Line under it: An address, a handle, an app, a phone number. | |
clipData.footnote | text | up to 300 characters | Footnote: 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.look | group | Look: 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.theme | enum | brand, light, dark, bold | Theme: 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.pace | enum | calm, standard, punchy | Pace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts. | |
clipData.look.corners | enum | square, soft, round | Corners: The shape of cards, pictures and buttons. | |
clipData.look.align | enum | start, centre | Text alignment: Where the text lines up. | |
clipData.look.logo | enum | auto, free | Logo: 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.logoSize | enum | auto, small, large | Logo 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. | |
metaData | group | Meta 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.title | text | up to 100 characters | Title: 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.captionTiny | text | up to 200 characters | Tiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionShort | text | up to 500 characters | Short description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionMedium | text | up to 1500 characters | Medium 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.captionLong | text | up to 4000 characters | Long description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.hashtags | list | up to 15 | Hashtags: Written without the #. Up to 15, which every platform takes. | |
metaData.hashtags[] | text | up to 60 characters | Hashtag |
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.