Skip to main content

Tech and industry (Manufacturing and industry), Free capacity 1.0.0

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

Example video​

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

What it accepts​

Free capacity by month, as a drawing: up to twelve months as columns on the sheet with their figures, what the capacity is for and its unit, the full capacity as a dashed line where sent, and a readout of one month at a time, large. Then how to book and the button. The title block and the footnote stay throughout. Five seconds, and two thirds of a second more per month. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the section, the kicker, the headline and the line under it, what the capacity is for and its unit, the months with their free capacity, the full capacity and its caption, how to book, the title block, 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 Capacity or Machine time.
clipData.kickertextup to 32 charactersKicker: A few words above the headline, such as the process or the machine: Five-axis machining.
clipData.headlinetextyesup to 56 charactersHeadline: What you offer, in a sentence.
clipData.sublinetextup to 110 charactersLine under it: One sentence on what the capacity can do, such as the part sizes or the shifts.
clipData.purposetextup to 40 charactersWhat it is for: The chart's caption: what the free capacity is for, such as Free for new orders.
clipData.unittextyesup to 16 charactersUnit: The unit of every figure, such as hours, spindle hours, parts or %. Set beside the caption and the readout; a percent sign stays on the figures.
clipData.monthslistyesat least 2, up to 12Months: Two to twelve months in the order they come, each with its free capacity: a column each, read one after another. The month is written from the date in the channel's language, with the year under the first month and where it turns.
clipData.months[]groupMonth
clipData.months[].monthdatetimeyesMonth: Any day of the month, such as its first. Only the year and month are read, as they are written here.
clipData.months[].valuenumberyes2 decimalsFree capacity: The capacity still free that month, in the unit above, shown exactly as sent.
clipData.totalnumber2 decimalsFull capacity: The full capacity of a month in the same unit, drawn as a dashed line the columns stand against and set after the readout's figure. Left out, no line is drawn.
clipData.totalLabeltextup to 24 charactersCaption of the full capacity: The words in the dashed line's legend, before its figure, such as Full capacity.
clipData.howToBooktextup to 120 charactersHow to book: How to book the capacity, in a sentence or two, shown over the button at the end.
clipData.drawinggroupTitle block: The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block.
clipData.drawing.numbertextup to 16 charactersPlan number: The capacity plan's or the sheet's number.
clipData.drawing.revisiontextup to 4 charactersRevision: The revision, such as A or 03.
clipData.drawing.datetextup to 16 charactersDate: The date the plan was made, written as it should be shown, such as 2026-10-15.
clipData.drawingLabelsgroupTitle block captions: The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is.
clipData.drawingLabels.numbertextup to 16 charactersOver the number: Such as Plan no.
clipData.drawingLabels.revisiontextup to 12 charactersOver the revision: Such as Rev.
clipData.drawingLabels.datetextup to 12 charactersOver the date: Such as Date.
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 and how the capacity was planned, such as your legal entity, the machines, the shifts and the day of the plan. 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 Capacity or Machine time."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as the process or the machine: Five-axis machining."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What you offer, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on what the capacity can do, such as the part sizes or the shifts."
},
"purpose": {
"type": "string",
"maxLength": 40,
"title": "What it is for",
"description": "The chart's caption: what the free capacity is for, such as Free for new orders."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "The unit of every figure, such as hours, spindle hours, parts or %. Set beside the caption and the readout; a percent sign stays on the figures."
},
"months": {
"type": "array",
"items": {
"type": "object",
"properties": {
"month": {
"type": "string",
"format": "date-time",
"title": "Month",
"description": "Any day of the month, such as its first. Only the year and month are read, as they are written here."
},
"value": {
"type": "number",
"title": "Free capacity",
"description": "The capacity still free that month, in the unit above, shown exactly as sent."
}
},
"required": [
"month",
"value"
],
"additionalProperties": false,
"title": "Month"
},
"minItems": 2,
"maxItems": 12,
"title": "Months",
"description": "Two to twelve months in the order they come, each with its free capacity: a column each, read one after another. The month is written from the date in the channel's language, with the year under the first month and where it turns."
},
"total": {
"type": "number",
"title": "Full capacity",
"description": "The full capacity of a month in the same unit, drawn as a dashed line the columns stand against and set after the readout's figure. Left out, no line is drawn."
},
"totalLabel": {
"type": "string",
"maxLength": 24,
"title": "Caption of the full capacity",
"description": "The words in the dashed line's legend, before its figure, such as Full capacity."
},
"howToBook": {
"type": "string",
"maxLength": 120,
"title": "How to book",
"description": "How to book the capacity, in a sentence or two, shown over the button at the end."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Plan number",
"description": "The capacity plan's or the sheet's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as A or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date the plan was made, written as it should be shown, such as 2026-10-15."
}
},
"additionalProperties": false,
"title": "Title block",
"description": "The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block."
},
"drawingLabels": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Over the number",
"description": "Such as Plan no."
},
"revision": {
"type": "string",
"maxLength": 12,
"title": "Over the revision",
"description": "Such as Rev."
},
"date": {
"type": "string",
"maxLength": 12,
"title": "Over the date",
"description": "Such as Date."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is."
},
"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 and how the capacity was planned, such as your legal entity, the machines, the shifts and the day of the plan. 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": [
"headline",
"unit",
"months"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the kicker, the headline and the line under it, what the capacity is for and its unit, the months with their free capacity, the full capacity and its caption, how to book, the title block, 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 Capacity or Machine time."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as the process or the machine: Five-axis machining."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What you offer, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on what the capacity can do, such as the part sizes or the shifts."
},
"purpose": {
"type": "string",
"maxLength": 40,
"title": "What it is for",
"description": "The chart's caption: what the free capacity is for, such as Free for new orders."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "The unit of every figure, such as hours, spindle hours, parts or %. Set beside the caption and the readout; a percent sign stays on the figures."
},
"months": {
"type": "array",
"items": {
"type": "object",
"properties": {
"month": {
"type": "string",
"format": "date-time",
"title": "Month",
"description": "Any day of the month, such as its first. Only the year and month are read, as they are written here."
},
"value": {
"type": "number",
"title": "Free capacity",
"description": "The capacity still free that month, in the unit above, shown exactly as sent."
}
},
"required": [
"month",
"value"
],
"additionalProperties": false,
"title": "Month"
},
"minItems": 2,
"maxItems": 12,
"title": "Months",
"description": "Two to twelve months in the order they come, each with its free capacity: a column each, read one after another. The month is written from the date in the channel's language, with the year under the first month and where it turns."
},
"total": {
"type": "number",
"title": "Full capacity",
"description": "The full capacity of a month in the same unit, drawn as a dashed line the columns stand against and set after the readout's figure. Left out, no line is drawn."
},
"totalLabel": {
"type": "string",
"maxLength": 24,
"title": "Caption of the full capacity",
"description": "The words in the dashed line's legend, before its figure, such as Full capacity."
},
"howToBook": {
"type": "string",
"maxLength": 120,
"title": "How to book",
"description": "How to book the capacity, in a sentence or two, shown over the button at the end."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Plan number",
"description": "The capacity plan's or the sheet's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as A or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date the plan was made, written as it should be shown, such as 2026-10-15."
}
},
"additionalProperties": false,
"title": "Title block",
"description": "The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block."
},
"drawingLabels": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Over the number",
"description": "Such as Plan no."
},
"revision": {
"type": "string",
"maxLength": 12,
"title": "Over the revision",
"description": "Such as Rev."
},
"date": {
"type": "string",
"maxLength": 12,
"title": "Over the date",
"description": "Such as Date."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is."
},
"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 and how the capacity was planned, such as your legal entity, the machines, the shifts and the day of the plan. 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 kicker, the headline and the line under it, what the capacity is for and its unit, the months with their free capacity, the full capacity and its caption, how to book, the title block, 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=Free%20capacity&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": "Capacity",
"kicker": "Five-axis machining",
"headline": "Free capacity for new orders",
"subline": "Five-axis milling up to 650 mm and turning up to Ø 400 mm, in two shifts a day.",
"purpose": "Free for new orders",
"unit": "spindle hours",
"months": [
{
"month": "2026-11-01T00:00:00+01:00",
"value": 180
},
{
"month": "2026-12-01T00:00:00+01:00",
"value": 240
},
{
"month": "2027-01-01T00:00:00+01:00",
"value": 410
},
{
"month": "2027-02-01T00:00:00+01:00",
"value": 520
},
{
"month": "2027-03-01T00:00:00+01:00",
"value": 580
},
{
"month": "2027-04-01T00:00:00+01:00",
"value": 650
}
],
"total": 720,
"totalLabel": "Full capacity",
"howToBook": "Send us your drawing and the quantities, and our planning team confirms a slot within 24 hours.",
"drawing": {
"date": "2026-10-15",
"number": "VB-CAP-2611",
"revision": "A"
},
"drawingLabels": {
"date": "Date",
"number": "Plan no.",
"revision": "Rev."
},
"cta": {
"label": "Book machine time",
"detail": "vossberg.example/capacity"
},
"footnote": "Vossberg Precision GmbH, Ulm. Free capacity of our five-axis cell in two shifts, as planned on 15 October 2026, subject to prior booking.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Free five-axis capacity for new orders, November to April",
"captionTiny": "Free five-axis capacity for new orders: 180 spindle hours in November, rising to 650 in April. Send us your drawing.",
"captionShort": "Our five-axis cell in Ulm has free capacity for new orders: 180 spindle hours in November, 240 in December, then 410 to 650 a month from January to April. Milling up to 650 mm, turning up to Ø 400 mm, two shifts a day. Send us your drawing and we confirm a slot within 24 hours.",
"captionMedium": "Free capacity for new orders. Our five-axis machining cell in Ulm runs two shifts a day, and these are the spindle hours still open: 180 in November, 240 in December, 410 in January, 520 in February, 580 in March and 650 in April, out of 720 a month. We mill parts up to 650 mm and turn up to Ø 400 mm, from one prototype to series of a few thousand, and every part leaves with its inspection report. Send us your drawing and the quantities, and our planning team confirms a slot within 24 hours. Capacity as planned on 15 October, subject to prior booking.",
"captionLong": "Free capacity for new orders. Our five-axis machining cell in Ulm runs two shifts a day, and these are the spindle hours still open for the coming months: 180 in November, 240 in December, 410 in January, 520 in February, 580 in March and 650 in April, out of a full capacity of 720 hours a month. That is room for prototypes, pilot series and the parts your usual supplier cannot deliver in time. We mill parts up to 650 mm and turn up to Ø 400 mm in steel, stainless, aluminium and titanium, from one prototype to series of a few thousand a year, and every part is measured on our coordinate measuring machine and leaves with its inspection report. Book early for November and December: those hours go first. Send us your drawing and the quantities, and our planning team confirms a slot within 24 hours. Capacity as planned on 15 October 2026, subject to prior booking. Vossberg Precision GmbH, Ulm.",
"hashtags": [
"manufacturing",
"cncmachining",
"capacity",
"contractmanufacturing",
"precisionengineering"
]
}
}
}

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.