Tech and industry (Manufacturing and industry), Spec sheet 1.0.0
| Template | Tech and industry (Manufacturing and industry), tpl_1c972308e957 |
|---|---|
| Variant | Spec sheet |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 16 seconds |
Example video
The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.
What it accepts
A part or a machine as a datasheet: the name over the picture in its drawing view, its overall dimensions ruled round it, then one to ten specs with value, unit and tolerance, each selected in turn while its value settles. The title block (drawing number, revision, date) and the footnote stay on screen throughout. Six seconds, and a little over a second more per spec. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the section, the part number, the name and the line under it, the picture and its dimensions, the specs, the column captions, 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 Datasheet or Technical data. | |
clipData.code | text | up to 32 characters | Part number: The part's number or its series, set small above its name, such as Part no. VB-4410-120. | |
clipData.name | text | yes | up to 48 characters | Name: The part or the machine, as a headline. |
clipData.subline | text | up to 110 characters | Line under it: One sentence on what it is for or how it is made. | |
clipData.picture | image | yes | media:// file from the media library, alt text up to 120 characters | Picture: The part or the machine, from the media library, shown whole in its drawing view. A cut-out on a transparent background stands on the drawing's grid; a photograph keeps its own edges. Any shape. |
clipData.dimensions | group | Overall dimensions: The figures ruled round the picture as a drawing gives them, exactly as written, such as Ø 240 or 152 mm. Left out, that dimension line is not drawn. | ||
clipData.dimensions.width | text | up to 16 characters | Across: The dimension under the picture, from its one side to the other. | |
clipData.dimensions.height | text | up to 16 characters | Height: The dimension beside the picture, from its foot to its top. | |
clipData.specs | list | yes | at least 1, up to 10 | Specs: One to ten specs, in the order they are read: what is measured, the value as a number (or in words, for a material or a finish), its unit and its tolerance. All on the first frame, then selected one after another; where the frame is short of height they turn pages. |
clipData.specs[] | group | Spec | ||
clipData.specs[].label | text | yes | up to 28 characters | What is measured: Such as Outer diameter, Operating pressure or Weight. |
clipData.specs[].value | number | 4 decimals | Value: The figure itself, shown exactly as sent with the decimals it was sent with, in the channel's language. | |
clipData.specs[].text | text | up to 24 characters | Value in words: Used where no figure is sent, such as a material (42CrMo4) or a finish (Zinc-nickel plated). | |
clipData.specs[].unit | text | up to 10 characters | Unit: The unit after the value, such as mm, bar, kN or rpm. A percent sign stays on the figure. | |
clipData.specs[].tolerance | text | up to 16 characters | Tolerance: The tolerance or fit, set after the value in your brand colour, such as ±0.05, +0.1/0 or H7. | |
clipData.columns | group | Column captions: The captions over the table's columns, in your language. A caption left out is not drawn. | ||
clipData.columns.spec | text | up to 20 characters | Over what is measured: Such as Specification. | |
clipData.columns.value | text | up to 16 characters | Over the values: Such as Value. | |
clipData.columns.tolerance | text | up to 16 characters | Over the tolerances: Such as Tolerance. | |
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 | Drawing number: The drawing's or the part's number. | |
clipData.drawing.revision | text | up to 4 characters | Revision: The revision, such as C or 03. | |
clipData.drawing.date | text | up to 16 characters | Date: The date of issue, 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 Drawing 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 its figures were measured, such as your legal entity, the temperature or the standard. 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 Datasheet or Technical data."
},
"code": {
"type": "string",
"maxLength": 32,
"title": "Part number",
"description": "The part's number or its series, set small above its name, such as Part no. VB-4410-120."
},
"name": {
"type": "string",
"maxLength": 48,
"title": "Name",
"description": "The part or the machine, as a headline."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on what it is for or how it is made."
},
"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 part or the machine, from the media library, shown whole in its drawing view. A cut-out on a transparent background stands on the drawing's grid; a photograph keeps its own edges. Any shape."
},
"dimensions": {
"type": "object",
"properties": {
"width": {
"type": "string",
"maxLength": 16,
"title": "Across",
"description": "The dimension under the picture, from its one side to the other."
},
"height": {
"type": "string",
"maxLength": 16,
"title": "Height",
"description": "The dimension beside the picture, from its foot to its top."
}
},
"additionalProperties": false,
"title": "Overall dimensions",
"description": "The figures ruled round the picture as a drawing gives them, exactly as written, such as Ø 240 or 152 mm. Left out, that dimension line is not drawn."
},
"specs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "What is measured",
"description": "Such as Outer diameter, Operating pressure or Weight."
},
"value": {
"type": "number",
"title": "Value",
"description": "The figure itself, shown exactly as sent with the decimals it was sent with, in the channel's language."
},
"text": {
"type": "string",
"maxLength": 24,
"title": "Value in words",
"description": "Used where no figure is sent, such as a material (42CrMo4) or a finish (Zinc-nickel plated)."
},
"unit": {
"type": "string",
"maxLength": 10,
"title": "Unit",
"description": "The unit after the value, such as mm, bar, kN or rpm. A percent sign stays on the figure."
},
"tolerance": {
"type": "string",
"maxLength": 16,
"title": "Tolerance",
"description": "The tolerance or fit, set after the value in your brand colour, such as ±0.05, +0.1/0 or H7."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Spec"
},
"minItems": 1,
"maxItems": 10,
"title": "Specs",
"description": "One to ten specs, in the order they are read: what is measured, the value as a number (or in words, for a material or a finish), its unit and its tolerance. All on the first frame, then selected one after another; where the frame is short of height they turn pages."
},
"columns": {
"type": "object",
"properties": {
"spec": {
"type": "string",
"maxLength": 20,
"title": "Over what is measured",
"description": "Such as Specification."
},
"value": {
"type": "string",
"maxLength": 16,
"title": "Over the values",
"description": "Such as Value."
},
"tolerance": {
"type": "string",
"maxLength": 16,
"title": "Over the tolerances",
"description": "Such as Tolerance."
}
},
"additionalProperties": false,
"title": "Column captions",
"description": "The captions over the table's columns, in your language. A caption left out is not drawn."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Drawing number",
"description": "The drawing's or the part's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as C or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, 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 Drawing 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 its figures were measured, such as your legal entity, the temperature or the standard. 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": [
"name",
"picture",
"specs"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the part number, the name and the line under it, the picture and its dimensions, the specs, the column captions, 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 Datasheet or Technical data."
},
"code": {
"type": "string",
"maxLength": 32,
"title": "Part number",
"description": "The part's number or its series, set small above its name, such as Part no. VB-4410-120."
},
"name": {
"type": "string",
"maxLength": 48,
"title": "Name",
"description": "The part or the machine, as a headline."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on what it is for or how it is made."
},
"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 part or the machine, from the media library, shown whole in its drawing view. A cut-out on a transparent background stands on the drawing's grid; a photograph keeps its own edges. Any shape."
},
"dimensions": {
"type": "object",
"properties": {
"width": {
"type": "string",
"maxLength": 16,
"title": "Across",
"description": "The dimension under the picture, from its one side to the other."
},
"height": {
"type": "string",
"maxLength": 16,
"title": "Height",
"description": "The dimension beside the picture, from its foot to its top."
}
},
"additionalProperties": false,
"title": "Overall dimensions",
"description": "The figures ruled round the picture as a drawing gives them, exactly as written, such as Ø 240 or 152 mm. Left out, that dimension line is not drawn."
},
"specs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "What is measured",
"description": "Such as Outer diameter, Operating pressure or Weight."
},
"value": {
"type": "number",
"title": "Value",
"description": "The figure itself, shown exactly as sent with the decimals it was sent with, in the channel's language."
},
"text": {
"type": "string",
"maxLength": 24,
"title": "Value in words",
"description": "Used where no figure is sent, such as a material (42CrMo4) or a finish (Zinc-nickel plated)."
},
"unit": {
"type": "string",
"maxLength": 10,
"title": "Unit",
"description": "The unit after the value, such as mm, bar, kN or rpm. A percent sign stays on the figure."
},
"tolerance": {
"type": "string",
"maxLength": 16,
"title": "Tolerance",
"description": "The tolerance or fit, set after the value in your brand colour, such as ±0.05, +0.1/0 or H7."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Spec"
},
"minItems": 1,
"maxItems": 10,
"title": "Specs",
"description": "One to ten specs, in the order they are read: what is measured, the value as a number (or in words, for a material or a finish), its unit and its tolerance. All on the first frame, then selected one after another; where the frame is short of height they turn pages."
},
"columns": {
"type": "object",
"properties": {
"spec": {
"type": "string",
"maxLength": 20,
"title": "Over what is measured",
"description": "Such as Specification."
},
"value": {
"type": "string",
"maxLength": 16,
"title": "Over the values",
"description": "Such as Value."
},
"tolerance": {
"type": "string",
"maxLength": 16,
"title": "Over the tolerances",
"description": "Such as Tolerance."
}
},
"additionalProperties": false,
"title": "Column captions",
"description": "The captions over the table's columns, in your language. A caption left out is not drawn."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Drawing number",
"description": "The drawing's or the part's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as C or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, 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 Drawing 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 its figures were measured, such as your legal entity, the temperature or the standard. 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 part number, the name and the line under it, the picture and its dimensions, the specs, the column captions, 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=Spec%20sheet&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": "Datasheet",
"code": "Part no. VB-4410-120",
"name": "Hydraulic flange coupling",
"subline": "Machined from one forged blank, for pumps up to 400 bar.",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
},
"dimensions": {
"width": "Ø 240",
"height": "152"
},
"specs": [
{
"unit": "mm",
"label": "Outer diameter",
"value": 240,
"tolerance": "±0.05"
},
{
"unit": "mm",
"label": "Bore",
"value": 120,
"tolerance": "H7"
},
{
"unit": "mm",
"label": "Hub length",
"value": 152,
"tolerance": "±0.1"
},
{
"unit": "bar",
"label": "Operating pressure, max.",
"value": 400
},
{
"unit": "rpm",
"label": "Speed, max.",
"value": 3600
},
{
"unit": "mm",
"label": "Concentricity",
"value": 0.02
},
{
"unit": "kg",
"label": "Weight",
"value": 11.8
},
{
"text": "42CrMo4",
"label": "Material"
}
],
"columns": {
"spec": "Specification",
"value": "Value",
"tolerance": "Tolerance"
},
"drawing": {
"date": "2026-10-15",
"number": "VB-4410-120",
"revision": "C"
},
"drawingLabels": {
"date": "Date",
"number": "Drawing no.",
"revision": "Rev."
},
"cta": {
"label": "Request a quote",
"detail": "vossberg.example/4410"
},
"footnote": "Vossberg Precision GmbH, Ulm. Dimensions in mm at 20 °C; general tolerances ISO 2768-mK unless stated.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Datasheet: hydraulic flange coupling VB-4410-120",
"captionTiny": "Our hydraulic flange coupling: Ø 240 mm, bore 120 H7, up to 400 bar and 3,600 rpm. Machined from one forged blank. Ask for a quote.",
"captionShort": "The hydraulic flange coupling VB-4410-120, machined from one forged 42CrMo4 blank. Outer diameter 240 mm ±0.05, bore 120 mm H7, concentricity 0.02 mm, rated for 400 bar and 3,600 rpm at 11.8 kg. Built for hydraulic pumps that cannot afford to stop. Send us your drawing for a quote.",
"captionMedium": "The hydraulic flange coupling VB-4410-120, machined from one forged 42CrMo4 blank on our five-axis centres in Ulm. Outer diameter 240 mm ±0.05, a 120 mm bore to H7, a hub length of 152 mm and a concentricity of 0.02 mm, rated for an operating pressure of up to 400 bar and speeds up to 3,600 rpm at 11.8 kg. Every coupling is measured on our coordinate measuring machine and leaves with its inspection report. Need another bore, a keyway to DIN 6885 or a different finish? Send us your drawing and we will quote within two working days. Dimensions in mm at 20 °C; general tolerances ISO 2768-mK unless stated.",
"captionLong": "The hydraulic flange coupling VB-4410-120, machined from one forged 42CrMo4 blank on our five-axis centres in Ulm. Outer diameter 240 mm ±0.05, a 120 mm bore to H7, a hub length of 152 mm and a concentricity of 0.02 mm, rated for an operating pressure of up to 400 bar and speeds up to 3,600 rpm at 11.8 kg. Forging the blank rather than cutting it from bar keeps the grain flowing round the flange, which is why the coupling holds its fit through millions of pressure cycles. Every coupling is measured on our coordinate measuring machine at 20 °C and leaves the plant with its own inspection report and material certificate, so your quality team has the figures before the part arrives. Need another bore, a keyway to DIN 6885, a different bolt circle or a zinc-nickel finish? Send us your drawing or your requirements and our application engineers will quote within two working days, from one prototype to series of several thousand a year. Vossberg Precision GmbH, Ulm. Dimensions in mm at 20 °C; general tolerances ISO 2768-mK unless stated.",
"hashtags": [
"manufacturing",
"precisionengineering",
"cncmachining",
"hydraulics",
"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.