Tech and industry (Manufacturing and industry), Certificates 1.0.0
| Template | Tech and industry (Manufacturing and industry), tpl_1c972308e957 |
|---|---|
| Variant | Certificates |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 13 seconds |
Example video
The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.
What it accepts
The certificates in force, as a drawing: one shown as its document (what it covers, the standard, its number, the date it is valid until, the body that certified it, a stamp) beside the register of up to eight. Each takes the sheet in turn, its stamp pressed. The title block and the footnote stay throughout. Five seconds, and 1.4 more per certificate. 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, the certificates with their standards, scope, numbers, dates and bodies, the 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 Certificates or Quality. | |
clipData.kicker | text | up to 32 characters | Kicker: A few words above the headline, such as Quality and compliance. | |
clipData.headline | text | yes | up to 56 characters | Headline: What the certificates say about you, in a sentence. |
clipData.subline | text | up to 110 characters | Line under it: One sentence on how you are audited or what the certificates cover. | |
clipData.certificates | list | yes | at least 1, up to 8 | Certificates: One to eight certificates in force, in the order they are shown: the standard, what it covers, the certificate number and the date it is valid until (both required: a certificate is never shown without them), and the body that certified it. All are listed on the first frame, then each takes the sheet in turn. |
clipData.certificates[] | group | Certificate | ||
clipData.certificates[].standard | text | yes | up to 24 characters | Standard: The standard and its edition, exactly as on the certificate, such as ISO 9001:2015 or IATF 16949:2016. |
clipData.certificates[].scope | text | up to 40 characters | What it covers: Such as Quality management or Environmental management, set in capitals over the standard. | |
clipData.certificates[].number | text | yes | up to 24 characters | Certificate number: The certificate's number, exactly as on it. |
clipData.certificates[].expires | datetime | yes | Valid until: The day the certificate expires. Only the date is read, as it is written here, and it is spelled out in the channel's language. | |
clipData.certificates[].body | text | up to 40 characters | Certified by: The certification body that issued it, as it names itself. | |
clipData.captions | group | Captions: The captions of the certificate's fields and of the register's columns, in your language. A caption left out is not drawn; its field still is. | ||
clipData.captions.standard | text | up to 20 characters | Over the standards: The register's first column, such as Standard. | |
clipData.captions.number | text | up to 20 characters | Over the number: Such as Certificate no. | |
clipData.captions.expires | text | up to 20 characters | Over the date: Such as Valid until. | |
clipData.captions.body | text | up to 20 characters | Over the body: Such as Certified by. | |
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 | Document number: The quality document's or the sheet's number. | |
clipData.drawing.revision | text | up to 4 characters | Revision: The revision, such as 12 or C. | |
clipData.drawing.date | text | up to 16 characters | Date: The date of issue, written as it should be shown, such as 2026-10-01. | |
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 Doc. 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 where the certificates apply, such as your legal entity, the plant and where to check them. 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 Certificates or Quality."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as Quality and compliance."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What the certificates say about you, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on how you are audited or what the certificates cover."
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"standard": {
"type": "string",
"maxLength": 24,
"title": "Standard",
"description": "The standard and its edition, exactly as on the certificate, such as ISO 9001:2015 or IATF 16949:2016."
},
"scope": {
"type": "string",
"maxLength": 40,
"title": "What it covers",
"description": "Such as Quality management or Environmental management, set in capitals over the standard."
},
"number": {
"type": "string",
"maxLength": 24,
"title": "Certificate number",
"description": "The certificate's number, exactly as on it."
},
"expires": {
"type": "string",
"format": "date-time",
"title": "Valid until",
"description": "The day the certificate expires. Only the date is read, as it is written here, and it is spelled out in the channel's language."
},
"body": {
"type": "string",
"maxLength": 40,
"title": "Certified by",
"description": "The certification body that issued it, as it names itself."
}
},
"required": [
"standard",
"number",
"expires"
],
"additionalProperties": false,
"title": "Certificate"
},
"minItems": 1,
"maxItems": 8,
"title": "Certificates",
"description": "One to eight certificates in force, in the order they are shown: the standard, what it covers, the certificate number and the date it is valid until (both required: a certificate is never shown without them), and the body that certified it. All are listed on the first frame, then each takes the sheet in turn."
},
"captions": {
"type": "object",
"properties": {
"standard": {
"type": "string",
"maxLength": 20,
"title": "Over the standards",
"description": "The register's first column, such as Standard."
},
"number": {
"type": "string",
"maxLength": 20,
"title": "Over the number",
"description": "Such as Certificate no."
},
"expires": {
"type": "string",
"maxLength": 20,
"title": "Over the date",
"description": "Such as Valid until."
},
"body": {
"type": "string",
"maxLength": 20,
"title": "Over the body",
"description": "Such as Certified by."
}
},
"additionalProperties": false,
"title": "Captions",
"description": "The captions of the certificate's fields and of the register's columns, in your language. A caption left out is not drawn; its field still is."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Document number",
"description": "The quality document's or the sheet's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as 12 or C."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, written as it should be shown, such as 2026-10-01."
}
},
"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 Doc. 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 where the certificates apply, such as your legal entity, the plant and where to check them. 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",
"certificates"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the kicker, the headline and the line under it, the certificates with their standards, scope, numbers, dates and bodies, the 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 Certificates or Quality."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as Quality and compliance."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What the certificates say about you, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on how you are audited or what the certificates cover."
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"standard": {
"type": "string",
"maxLength": 24,
"title": "Standard",
"description": "The standard and its edition, exactly as on the certificate, such as ISO 9001:2015 or IATF 16949:2016."
},
"scope": {
"type": "string",
"maxLength": 40,
"title": "What it covers",
"description": "Such as Quality management or Environmental management, set in capitals over the standard."
},
"number": {
"type": "string",
"maxLength": 24,
"title": "Certificate number",
"description": "The certificate's number, exactly as on it."
},
"expires": {
"type": "string",
"format": "date-time",
"title": "Valid until",
"description": "The day the certificate expires. Only the date is read, as it is written here, and it is spelled out in the channel's language."
},
"body": {
"type": "string",
"maxLength": 40,
"title": "Certified by",
"description": "The certification body that issued it, as it names itself."
}
},
"required": [
"standard",
"number",
"expires"
],
"additionalProperties": false,
"title": "Certificate"
},
"minItems": 1,
"maxItems": 8,
"title": "Certificates",
"description": "One to eight certificates in force, in the order they are shown: the standard, what it covers, the certificate number and the date it is valid until (both required: a certificate is never shown without them), and the body that certified it. All are listed on the first frame, then each takes the sheet in turn."
},
"captions": {
"type": "object",
"properties": {
"standard": {
"type": "string",
"maxLength": 20,
"title": "Over the standards",
"description": "The register's first column, such as Standard."
},
"number": {
"type": "string",
"maxLength": 20,
"title": "Over the number",
"description": "Such as Certificate no."
},
"expires": {
"type": "string",
"maxLength": 20,
"title": "Over the date",
"description": "Such as Valid until."
},
"body": {
"type": "string",
"maxLength": 20,
"title": "Over the body",
"description": "Such as Certified by."
}
},
"additionalProperties": false,
"title": "Captions",
"description": "The captions of the certificate's fields and of the register's columns, in your language. A caption left out is not drawn; its field still is."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Document number",
"description": "The quality document's or the sheet's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as 12 or C."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, written as it should be shown, such as 2026-10-01."
}
},
"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 Doc. 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 where the certificates apply, such as your legal entity, the plant and where to check them. 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, the certificates with their standards, scope, numbers, dates and bodies, the 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=Certificates&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": "Certificates",
"kicker": "Quality and compliance",
"headline": "Certified to the standards you work to",
"subline": "Audited every year by independent certification bodies at our plant in Ulm.",
"certificates": [
{
"body": "Alpcert Management Services GmbH",
"scope": "Quality management",
"number": "12 100 45678 QM",
"expires": "2028-03-14T00:00:00+01:00",
"standard": "ISO 9001:2015"
},
{
"body": "Nordcert Automotive GmbH",
"scope": "Automotive quality",
"number": "0451287",
"expires": "2027-09-30T00:00:00+02:00",
"standard": "IATF 16949:2016"
},
{
"body": "Alpcert Management Services GmbH",
"scope": "Environmental management",
"number": "12 104 45679 UM",
"expires": "2028-03-14T00:00:00+01:00",
"standard": "ISO 14001:2015"
},
{
"body": "Alpcert Management Services GmbH",
"scope": "Occupational health and safety",
"number": "12 117 45680 AS",
"expires": "2028-03-14T00:00:00+01:00",
"standard": "ISO 45001:2018"
},
{
"body": "Alpcert Management Services GmbH",
"scope": "Energy management",
"number": "12 310 45681 EM",
"expires": "2027-06-20T00:00:00+02:00",
"standard": "ISO 50001:2018"
},
{
"body": "Q-Assur Aerospace Certification",
"scope": "Aerospace quality",
"number": "DE-AS-2025-0318",
"expires": "2028-11-05T00:00:00+01:00",
"standard": "EN 9100:2018"
}
],
"captions": {
"body": "Certified by",
"number": "Certificate no.",
"expires": "Valid until",
"standard": "Standard"
},
"drawing": {
"date": "2026-10-01",
"number": "VB-QM-0007",
"revision": "12"
},
"drawingLabels": {
"date": "Date",
"number": "Doc. no.",
"revision": "Rev."
},
"cta": {
"label": "Download the certificates",
"detail": "vossberg.example/quality"
},
"footnote": "Vossberg Precision GmbH, Ulm. Certificates for the Ulm plant; scope and validity can be checked with each certification body.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Our certificates: ISO 9001, IATF 16949, ISO 14001, ISO 45001, ISO 50001 and EN 9100",
"captionTiny": "Certified to ISO 9001, IATF 16949, ISO 14001, ISO 45001, ISO 50001 and EN 9100. Download the certificates.",
"captionShort": "Six certificates, one plant: ISO 9001 and IATF 16949 for quality, EN 9100 for aerospace, ISO 14001 for the environment, ISO 45001 for health and safety and ISO 50001 for energy. Audited every year at our plant in Ulm. Download the certificates for your supplier file.",
"captionMedium": "Certified to the standards you work to. Our plant in Ulm holds six certificates: ISO 9001:2015 for quality management, IATF 16949:2016 for automotive quality, EN 9100:2018 for aerospace, ISO 14001:2015 for environmental management, ISO 45001:2018 for occupational health and safety and ISO 50001:2018 for energy management. Each is audited every year by an independent certification body. Download the certificates with their numbers and validity for your supplier file, or ask our quality team for an audit date.",
"captionLong": "Certified to the standards you work to. Our plant in Ulm holds six certificates, each audited every year by an independent certification body: ISO 9001:2015 for quality management, valid until March 2028; IATF 16949:2016 for automotive quality, valid until September 2027; EN 9100:2018 for aerospace, valid until November 2028; ISO 14001:2015 for environmental management and ISO 45001:2018 for occupational health and safety, both valid until March 2028; and ISO 50001:2018 for energy management, valid until June 2027. For our customers that means one supplier audit less: the certificates, their numbers and their scope are ready for your supplier file. Download them from our quality page, or ask our quality team for the next audit date and the full audit report. Vossberg Precision GmbH, Ulm.",
"hashtags": [
"manufacturing",
"quality",
"iso9001",
"iatf16949",
"certification"
]
}
}
}
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.