Skip to main content

Finance (Insurance), What is covered 1.0.0

TemplateFinance (Insurance), tpl_466386ca3ac5
VariantWhat is covered
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length13 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 policy's cover explained openly: the headline, one to six things it covers on soft cards with icons and up to four it does not, complete on the first frame. Each covered item is then ticked in turn, what is not covered gently crossed, then a note, the button and your agent. The disclosure stays on screen throughout. Nine seconds with one item, a second more per item. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the section, the headline, what is and is not covered, the note, the call to action and the disclosure.
clipData.sectiontextup to 24 charactersSection: What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover.
clipData.headlinetextyesup to 56 charactersHeadline: The title of the post.
clipData.sublinetextup to 100 charactersLine under it: A sentence under the headline.
clipData.coveredLabeltextup to 24 charactersCovered heading: The heading over what is covered, beside a tick, such as Covered or What is included. Left out, no heading is drawn.
clipData.notCoveredLabeltextup to 24 charactersNot covered heading: The heading over what is not covered, beside a gentle cross, such as Not covered or Not included. Left out, no heading is drawn.
clipData.coveredlistyesat least 1, up to 6What is covered: One to six things the policy covers, in order, each on a soft card with its icon and a tick. All are there on the first frame, then each is ticked in turn. Where the frame is short of height they turn pages.
clipData.covered[]groupCovered
clipData.covered[].labeltextyesup to 40 charactersLabel: What is covered, in a few words.
clipData.covered[].iconenumhouse, building, car, bike, plane, globe, map-pin, flame, droplets, cloud-rain, wind, snowflake, thermometer, zap, plug-zap, lock, key-round, shield-check, gem, watch, glasses, laptop, smartphone, camera, shirt, package, wallet, banknote, credit-card, briefcase, scale, file-text, wrench, trees, leaf, heart-pulse, stethoscope, baby, user, users, hand-helping, hand-heart, phone, clock, calendar, circle-check, badge-checkIcon: A line icon in the card's round badge. Left out, the badge holds a shield, or no badge is drawn where no item has an icon.
clipData.notCoveredlistat least 0, up to 4What is not covered: Up to four things the policy does not cover, in a soft card with a gentle cross each, marked in turn after what is covered. Being open about them builds trust.
clipData.notCovered[]groupNot covered
clipData.notCovered[].labeltextyesup to 40 charactersLabel: What is not covered, in a few words.
clipData.notetextup to 120 charactersNote: A sentence in a soft note after the lists, such as an optional extra or where to read the full details.
clipData.ctagroupCall to action: The button at the end and the line under it, such as a web address or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 48 charactersLine under it: An address, a phone number, an app, an office.
clipData.disclosuretextyesup to 300 charactersDisclosure: What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than cut.
clipData.lookgroupLook: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start.
clipData.look.themeenumbrand, light, dark, boldTheme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.
clipData.look.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.
clipData.look.logoSizeenumauto, small, largeLogo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.
metaDatagroupMeta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data.
metaData.titletextup to 100 charactersTitle: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes.
metaData.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.

A picture is always a file from your media library: media:// followed by its id or its name. Anything the table does not list is refused, and so is anything over its limit, with a 400 schema_validation error that names the field.

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"subline": {
"type": "string",
"maxLength": 100,
"title": "Line under it",
"description": "A sentence under the headline."
},
"coveredLabel": {
"type": "string",
"maxLength": 24,
"title": "Covered heading",
"description": "The heading over what is covered, beside a tick, such as Covered or What is included. Left out, no heading is drawn."
},
"notCoveredLabel": {
"type": "string",
"maxLength": 24,
"title": "Not covered heading",
"description": "The heading over what is not covered, beside a gentle cross, such as Not covered or Not included. Left out, no heading is drawn."
},
"covered": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is covered, in a few words."
},
"icon": {
"type": "string",
"enum": [
"house",
"building",
"car",
"bike",
"plane",
"globe",
"map-pin",
"flame",
"droplets",
"cloud-rain",
"wind",
"snowflake",
"thermometer",
"zap",
"plug-zap",
"lock",
"key-round",
"shield-check",
"gem",
"watch",
"glasses",
"laptop",
"smartphone",
"camera",
"shirt",
"package",
"wallet",
"banknote",
"credit-card",
"briefcase",
"scale",
"file-text",
"wrench",
"trees",
"leaf",
"heart-pulse",
"stethoscope",
"baby",
"user",
"users",
"hand-helping",
"hand-heart",
"phone",
"clock",
"calendar",
"circle-check",
"badge-check"
],
"title": "Icon",
"description": "A line icon in the card's round badge. Left out, the badge holds a shield, or no badge is drawn where no item has an icon.",
"enumNames": [
"House",
"Building",
"Car",
"Bike",
"Plane",
"Globe",
"Map pin",
"Flame",
"Droplets",
"Cloud rain",
"Wind",
"Snowflake",
"Thermometer",
"Zap",
"Plug zap",
"Lock",
"Key round",
"Shield check",
"Gem",
"Watch",
"Glasses",
"Laptop",
"Smartphone",
"Camera",
"Shirt",
"Package",
"Wallet",
"Banknote",
"Credit card",
"Briefcase",
"Scale",
"File text",
"Wrench",
"Trees",
"Leaf",
"Heart pulse",
"Stethoscope",
"Baby",
"User",
"Users",
"Hand helping",
"Hand heart",
"Phone",
"Clock",
"Calendar",
"Circle check",
"Badge check"
]
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Covered"
},
"minItems": 1,
"maxItems": 6,
"title": "What is covered",
"description": "One to six things the policy covers, in order, each on a soft card with its icon and a tick. All are there on the first frame, then each is ticked in turn. Where the frame is short of height they turn pages."
},
"notCovered": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is not covered, in a few words."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Not covered"
},
"minItems": 0,
"maxItems": 4,
"title": "What is not covered",
"description": "Up to four things the policy does not cover, in a soft card with a gentle cross each, marked in turn after what is covered. Being open about them builds trust."
},
"note": {
"type": "string",
"maxLength": 120,
"title": "Note",
"description": "A sentence in a soft note after the lists, such as an optional extra or where to read the full details."
},
"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 phone number, an app, an office."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than 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, round corners, text at the start."
}
},
"required": [
"headline",
"covered",
"disclosure"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, what is and is not covered, the note, the call to action and the disclosure."
},
"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 about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"subline": {
"type": "string",
"maxLength": 100,
"title": "Line under it",
"description": "A sentence under the headline."
},
"coveredLabel": {
"type": "string",
"maxLength": 24,
"title": "Covered heading",
"description": "The heading over what is covered, beside a tick, such as Covered or What is included. Left out, no heading is drawn."
},
"notCoveredLabel": {
"type": "string",
"maxLength": 24,
"title": "Not covered heading",
"description": "The heading over what is not covered, beside a gentle cross, such as Not covered or Not included. Left out, no heading is drawn."
},
"covered": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is covered, in a few words."
},
"icon": {
"type": "string",
"enum": [
"house",
"building",
"car",
"bike",
"plane",
"globe",
"map-pin",
"flame",
"droplets",
"cloud-rain",
"wind",
"snowflake",
"thermometer",
"zap",
"plug-zap",
"lock",
"key-round",
"shield-check",
"gem",
"watch",
"glasses",
"laptop",
"smartphone",
"camera",
"shirt",
"package",
"wallet",
"banknote",
"credit-card",
"briefcase",
"scale",
"file-text",
"wrench",
"trees",
"leaf",
"heart-pulse",
"stethoscope",
"baby",
"user",
"users",
"hand-helping",
"hand-heart",
"phone",
"clock",
"calendar",
"circle-check",
"badge-check"
],
"title": "Icon",
"description": "A line icon in the card's round badge. Left out, the badge holds a shield, or no badge is drawn where no item has an icon.",
"enumNames": [
"House",
"Building",
"Car",
"Bike",
"Plane",
"Globe",
"Map pin",
"Flame",
"Droplets",
"Cloud rain",
"Wind",
"Snowflake",
"Thermometer",
"Zap",
"Plug zap",
"Lock",
"Key round",
"Shield check",
"Gem",
"Watch",
"Glasses",
"Laptop",
"Smartphone",
"Camera",
"Shirt",
"Package",
"Wallet",
"Banknote",
"Credit card",
"Briefcase",
"Scale",
"File text",
"Wrench",
"Trees",
"Leaf",
"Heart pulse",
"Stethoscope",
"Baby",
"User",
"Users",
"Hand helping",
"Hand heart",
"Phone",
"Clock",
"Calendar",
"Circle check",
"Badge check"
]
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Covered"
},
"minItems": 1,
"maxItems": 6,
"title": "What is covered",
"description": "One to six things the policy covers, in order, each on a soft card with its icon and a tick. All are there on the first frame, then each is ticked in turn. Where the frame is short of height they turn pages."
},
"notCovered": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is not covered, in a few words."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Not covered"
},
"minItems": 0,
"maxItems": 4,
"title": "What is not covered",
"description": "Up to four things the policy does not cover, in a soft card with a gentle cross each, marked in turn after what is covered. Being open about them builds trust."
},
"note": {
"type": "string",
"maxLength": 120,
"title": "Note",
"description": "A sentence in a soft note after the lists, such as an optional extra or where to read the full details."
},
"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 phone number, an app, an office."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than 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, round corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, what is and is not covered, the note, the call to action and the disclosure."
},
"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_466386ca3ac5?variant=What%20is%20covered&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": "Home insurance",
"headline": "What your home cover includes",
"subline": "The things our standard home policy pays for, and the few it does not.",
"coveredLabel": "Covered",
"notCoveredLabel": "Not covered",
"covered": [
{
"icon": "flame",
"label": "Fire and smoke damage"
},
{
"icon": "droplets",
"label": "Burst pipes and escape of water"
},
{
"icon": "cloud-rain",
"label": "Storms and flooding"
},
{
"icon": "lock",
"label": "Theft and attempted break-ins"
},
{
"icon": "house",
"label": "A place to stay if you cannot live there"
}
],
"notCovered": [
{
"label": "Wear and tear"
},
{
"label": "Damage that happens gradually"
},
{
"label": "Accidental damage, unless added"
}
],
"note": "Optional extras can add accidental damage and cover for your belongings away from home.",
"cta": {
"label": "See what is covered",
"detail": "harbourmutual.example/home"
},
"disclosure": "Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions, limits and exclusions of your policy.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "What your home insurance covers, and what it does not",
"captionTiny": "What our home cover includes: fire, burst pipes, storms, theft and a place to stay. Not covered: wear and tear, gradual damage.",
"captionShort": "What your home insurance actually covers. Our standard home policy pays for fire and smoke damage, burst pipes and escape of water, storms and flooding, theft and attempted break-ins, and a place to stay if you cannot live at home. It does not cover wear and tear, damage that happens gradually, or accidental damage unless you add it. Cover is subject to the terms, conditions and exclusions of your policy.",
"captionMedium": "Knowing what your policy covers before you need it is the best way to avoid a nasty surprise, so here it is in plain words. Our standard home policy covers fire and smoke damage, burst pipes and escape of water, storms and flooding, and theft or attempted break-ins. If your home cannot be lived in after something covered happens, we pay for somewhere to stay while it is put right. What it does not cover: wear and tear, damage that happens gradually over time, such as a slow leak, and accidental damage, unless you add it as an optional extra. Optional extras can also cover your belongings away from home. See the full details at harbourmutual.example/home. Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions, limits and exclusions of your policy.",
"captionLong": "Knowing what your home insurance covers before you need it is the best way to avoid a nasty surprise on the worst day of the year, so here it is in plain words, with nothing hidden in the small print. Our standard home policy covers fire and smoke damage, whether it starts in the kitchen or next door. It covers burst pipes and escape of water, including the damage the water does to floors, walls and ceilings. It covers storms and flooding, and theft or attempted break-ins, including the damage done getting in. And if your home cannot be lived in after something covered happens, we pay for somewhere to stay while it is put right. What it does not cover: wear and tear, the things that simply get old; damage that happens gradually over time, such as a slow leak under the bath; and accidental damage, such as paint spilt on a carpet, unless you add it as an optional extra. Optional extras can also cover your belongings away from home, your bikes and legal costs. Not sure what you have? Your policy schedule lists it, or call us and we will go through it with you. See the full details at harbourmutual.example/home. Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions, limits and exclusions of your policy.",
"hashtags": [
"homeinsurance",
"whatscovered",
"insurancetips",
"peaceofmind",
"knowyourpolicy"
]
}
}
}

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.