Tech and industry (Manufacturing and industry), Free capacity 1.0.0
| Template | Tech and industry (Manufacturing and industry), tpl_1c972308e957 |
|---|---|
| Variant | Free capacity |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 9 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.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip 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.section | text | up to 24 characters | Section: What the post is, on the type plate at the end of the header, such as Capacity or Machine time. | |
clipData.kicker | text | up to 32 characters | Kicker: A few words above the headline, such as the process or the machine: Five-axis machining. | |
clipData.headline | text | yes | up to 56 characters | Headline: What you offer, in a sentence. |
clipData.subline | text | up to 110 characters | Line under it: One sentence on what the capacity can do, such as the part sizes or the shifts. | |
clipData.purpose | text | up to 40 characters | What it is for: The chart's caption: what the free capacity is for, such as Free for new orders. | |
clipData.unit | text | yes | up to 16 characters | Unit: 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.months | list | yes | at least 2, up to 12 | Months: 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[] | group | Month | ||
clipData.months[].month | datetime | yes | Month: Any day of the month, such as its first. Only the year and month are read, as they are written here. | |
clipData.months[].value | number | yes | 2 decimals | Free capacity: The capacity still free that month, in the unit above, shown exactly as sent. |
clipData.total | number | 2 decimals | Full 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.totalLabel | text | up to 24 characters | Caption of the full capacity: The words in the dashed line's legend, before its figure, such as Full capacity. | |
clipData.howToBook | text | up to 120 characters | How to book: How to book the capacity, in a sentence or two, shown over the button at the end. | |
clipData.drawing | group | Title 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.number | text | up to 16 characters | Plan number: The capacity plan's or the sheet's number. | |
clipData.drawing.revision | text | up to 4 characters | Revision: The revision, such as A or 03. | |
clipData.drawing.date | text | up to 16 characters | Date: The date the plan was made, written as it should be shown, such as 2026-10-15. | |
clipData.drawingLabels | group | Title 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.number | text | up to 16 characters | Over the number: Such as Plan no. | |
clipData.drawingLabels.revision | text | up to 12 characters | Over the revision: Such as Rev. | |
clipData.drawingLabels.date | text | up to 12 characters | Over the date: Such as Date. | |
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 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.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 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.