Finance, App feature 1.0.0
| Template | Finance, tpl_1c84aa91fffa |
|---|---|
| Variant | App feature |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 15 seconds |
Example video
The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.
What it accepts
An app or online-banking feature ad: the feature's headline, one to three screenshots shown in a device the template draws, a caption for each, up to four benefits and the call to action to the store or the site. The clip is as long as the screenshots need. metaData is the post's title, descriptions and hashtags and is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the feature, its screenshots and captions, the benefits, the call to action and the small print. | |
clipData.kicker | text | up to 32 characters | Kicker: A short line above the headline, such as New in the app. | |
clipData.headline | text | yes | up to 60 characters | Headline: What the feature does for the customer. |
clipData.subline | text | up to 100 characters | Subline: One sentence more about it. | |
clipData.screens | list | yes | at least 1, up to 3 | Screenshots: One to three screenshots, shown one after another; the clip gets three seconds longer for each. Phone screenshots suit the phone, a website the browser window. |
clipData.screens[] | group | Screenshot | ||
clipData.screens[].picture | image | yes | media:// file from the media library, alt text up to 120 characters | Picture: The screenshot, any shape. |
clipData.screens[].caption | text | up to 40 characters | Caption: What this screen shows, in a few words. | |
clipData.benefits | list | at least 1, up to 4 | Benefits: One to four short benefits, each with an icon, shown beside the device. | |
clipData.benefits[] | group | Benefit | ||
clipData.benefits[].icon | enum | check, circle-check, x, arrow-right, arrow-up-right, plus, star, heart, thumbs-up, sparkles, zap, clock, calendar, map-pin, info, triangle-alert, lightbulb, target, award, crown, gem, flame, timer, list-checks, clipboard-check, badge-check, hand-heart, rocket, trophy, megaphone, bell, qr-code, ticket, gift, key-round, book-open, graduation-cap, house, phone, mail, globe, users, user, piggy-bank, wallet, credit-card, landmark, trending-up, trending-down, percent, coins, hand-coins, banknote, shield-check, chart-column, chart-line, chart-pie, lock, calculator, receipt, badge-percent, briefcase, scale | Icon: A line icon for the benefit. | |
clipData.benefits[].text | text | yes | up to 36 characters | Benefit: The benefit in a few words. |
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, a phone number. | |
clipData.disclaimer | text | up to 160 characters | Small print: Terms that must be shown with the feature. | |
clipData.look | group | Look: How the clip looks and moves. The same five switches in every format (theme, pace, corners, alignment, logo), plus this format's own. Leave any out for the format's default. | ||
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.device | enum | phone, browser, plain | Device: What the screenshots are shown in: a phone drawn by the template, a browser window for online banking, or nothing, for pictures that already show a device. | |
clipData.look.tilt | boolean | Tilted device: The device turned a little towards the text, swaying gently, rather than standing straight. | ||
clipData.look.logo | enum | auto, free | Logo: The style's own: the logo on the style's plate (a card, a disc, a badge) 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. | |
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 422 that
names the field.
The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A short line above the headline, such as New in the app."
},
"headline": {
"type": "string",
"maxLength": 60,
"title": "Headline",
"description": "What the feature does for the customer."
},
"subline": {
"type": "string",
"maxLength": 100,
"title": "Subline",
"description": "One sentence more about it."
},
"screens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"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 screenshot, any shape."
},
"caption": {
"type": "string",
"maxLength": 40,
"title": "Caption",
"description": "What this screen shows, in a few words."
}
},
"required": [
"picture"
],
"additionalProperties": false,
"title": "Screenshot"
},
"minItems": 1,
"maxItems": 3,
"title": "Screenshots",
"description": "One to three screenshots, shown one after another; the clip gets three seconds longer for each. Phone screenshots suit the phone, a website the browser window."
},
"benefits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": {
"type": "string",
"enum": [
"check",
"circle-check",
"x",
"arrow-right",
"arrow-up-right",
"plus",
"star",
"heart",
"thumbs-up",
"sparkles",
"zap",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"lightbulb",
"target",
"award",
"crown",
"gem",
"flame",
"timer",
"list-checks",
"clipboard-check",
"badge-check",
"hand-heart",
"rocket",
"trophy",
"megaphone",
"bell",
"qr-code",
"ticket",
"gift",
"key-round",
"book-open",
"graduation-cap",
"house",
"phone",
"mail",
"globe",
"users",
"user",
"piggy-bank",
"wallet",
"credit-card",
"landmark",
"trending-up",
"trending-down",
"percent",
"coins",
"hand-coins",
"banknote",
"shield-check",
"chart-column",
"chart-line",
"chart-pie",
"lock",
"calculator",
"receipt",
"badge-percent",
"briefcase",
"scale"
],
"title": "Icon",
"description": "A line icon for the benefit.",
"enumNames": [
"Check",
"Circle check",
"X",
"Arrow right",
"Arrow up right",
"Plus",
"Star",
"Heart",
"Thumbs up",
"Sparkles",
"Zap",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Lightbulb",
"Target",
"Award",
"Crown",
"Gem",
"Flame",
"Timer",
"List checks",
"Clipboard check",
"Badge check",
"Hand heart",
"Rocket",
"Trophy",
"Megaphone",
"Bell",
"Qr code",
"Ticket",
"Gift",
"Key round",
"Book open",
"Graduation cap",
"House",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Piggy bank",
"Wallet",
"Credit card",
"Landmark",
"Trending up",
"Trending down",
"Percent",
"Coins",
"Hand coins",
"Banknote",
"Shield check",
"Chart column",
"Chart line",
"Chart pie",
"Lock",
"Calculator",
"Receipt",
"Badge percent",
"Briefcase",
"Scale"
]
},
"text": {
"type": "string",
"maxLength": 36,
"title": "Benefit",
"description": "The benefit in a few words."
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Benefit"
},
"minItems": 1,
"maxItems": 4,
"title": "Benefits",
"description": "One to four short benefits, each with an icon, shown beside the device."
},
"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, 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."
},
"disclaimer": {
"type": "string",
"maxLength": 160,
"title": "Small print",
"description": "Terms that must be shown with the feature."
},
"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"
]
},
"device": {
"type": "string",
"enum": [
"phone",
"browser",
"plain"
],
"title": "Device",
"description": "What the screenshots are shown in: a phone drawn by the template, a browser window for online banking, or nothing, for pictures that already show a device.",
"enumNames": [
"A phone",
"A browser window",
"The picture as it is"
]
},
"tilt": {
"type": "boolean",
"title": "Tilted device",
"description": "The device turned a little towards the text, swaying gently, rather than standing straight."
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) 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"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same five switches in every format (theme, pace, corners, alignment, logo), plus this format's own. Leave any out for the format's default."
}
},
"required": [
"headline",
"screens"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the feature, its screenshots and captions, the benefits, the call to action and the small print."
},
"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": {
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A short line above the headline, such as New in the app."
},
"headline": {
"type": "string",
"maxLength": 60,
"title": "Headline",
"description": "What the feature does for the customer."
},
"subline": {
"type": "string",
"maxLength": 100,
"title": "Subline",
"description": "One sentence more about it."
},
"screens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"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 screenshot, any shape."
},
"caption": {
"type": "string",
"maxLength": 40,
"title": "Caption",
"description": "What this screen shows, in a few words."
}
},
"required": [
"picture"
],
"additionalProperties": false,
"title": "Screenshot"
},
"minItems": 1,
"maxItems": 3,
"title": "Screenshots",
"description": "One to three screenshots, shown one after another; the clip gets three seconds longer for each. Phone screenshots suit the phone, a website the browser window."
},
"benefits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": {
"type": "string",
"enum": [
"check",
"circle-check",
"x",
"arrow-right",
"arrow-up-right",
"plus",
"star",
"heart",
"thumbs-up",
"sparkles",
"zap",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"lightbulb",
"target",
"award",
"crown",
"gem",
"flame",
"timer",
"list-checks",
"clipboard-check",
"badge-check",
"hand-heart",
"rocket",
"trophy",
"megaphone",
"bell",
"qr-code",
"ticket",
"gift",
"key-round",
"book-open",
"graduation-cap",
"house",
"phone",
"mail",
"globe",
"users",
"user",
"piggy-bank",
"wallet",
"credit-card",
"landmark",
"trending-up",
"trending-down",
"percent",
"coins",
"hand-coins",
"banknote",
"shield-check",
"chart-column",
"chart-line",
"chart-pie",
"lock",
"calculator",
"receipt",
"badge-percent",
"briefcase",
"scale"
],
"title": "Icon",
"description": "A line icon for the benefit.",
"enumNames": [
"Check",
"Circle check",
"X",
"Arrow right",
"Arrow up right",
"Plus",
"Star",
"Heart",
"Thumbs up",
"Sparkles",
"Zap",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Lightbulb",
"Target",
"Award",
"Crown",
"Gem",
"Flame",
"Timer",
"List checks",
"Clipboard check",
"Badge check",
"Hand heart",
"Rocket",
"Trophy",
"Megaphone",
"Bell",
"Qr code",
"Ticket",
"Gift",
"Key round",
"Book open",
"Graduation cap",
"House",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Piggy bank",
"Wallet",
"Credit card",
"Landmark",
"Trending up",
"Trending down",
"Percent",
"Coins",
"Hand coins",
"Banknote",
"Shield check",
"Chart column",
"Chart line",
"Chart pie",
"Lock",
"Calculator",
"Receipt",
"Badge percent",
"Briefcase",
"Scale"
]
},
"text": {
"type": "string",
"maxLength": 36,
"title": "Benefit",
"description": "The benefit in a few words."
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Benefit"
},
"minItems": 1,
"maxItems": 4,
"title": "Benefits",
"description": "One to four short benefits, each with an icon, shown beside the device."
},
"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, 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."
},
"disclaimer": {
"type": "string",
"maxLength": 160,
"title": "Small print",
"description": "Terms that must be shown with the feature."
},
"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"
]
},
"device": {
"type": "string",
"enum": [
"phone",
"browser",
"plain"
],
"title": "Device",
"description": "What the screenshots are shown in: a phone drawn by the template, a browser window for online banking, or nothing, for pictures that already show a device.",
"enumNames": [
"A phone",
"A browser window",
"The picture as it is"
]
},
"tilt": {
"type": "boolean",
"title": "Tilted device",
"description": "The device turned a little towards the text, swaying gently, rather than standing straight."
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) 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"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same five switches in every format (theme, pace, corners, alignment, logo), plus this format's own. Leave any out for the format's default."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the feature, its screenshots and captions, the benefits, the call to action and the small print."
},
"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_1c84aa91fffa?variant=App%20feature&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": {
"kicker": "New in the Northgate app",
"headline": "Round up every card payment and watch your savings grow",
"subline": "Spare change from everyday spending goes straight into a savings goal of your choice.",
"screens": [
{
"caption": "Pick a goal and set your target",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
}
},
{
"caption": "Choose how much to round up",
"picture": {
"alt": "Hills under an evening sky, drawn in layers",
"url": "media://example-image.svg"
}
},
{
"caption": "Watch your savings add up",
"picture": {
"alt": "Clouds of red and blue ink in water",
"url": "media://example-image.png"
}
}
],
"benefits": [
{
"icon": "badge-percent",
"text": "No fees, ever"
},
{
"icon": "clock",
"text": "Pause or change it any time"
},
{
"icon": "zap",
"text": "Moved to savings every day"
},
{
"icon": "shield-check",
"text": "Protected up to 100,000 EUR"
}
],
"cta": {
"label": "Get the Northgate app",
"detail": "On the App Store and Google Play"
},
"disclaimer": "Round-ups are moved once a day into a Northgate Easy Saver. Screens are illustrative. Terms apply.",
"look": {
"theme": "brand",
"pace": "standard",
"corners": "round",
"align": "start",
"device": "phone",
"tilt": true,
"logo": "auto"
}
},
"metaData": {
"title": "New in the Northgate app: round-ups into savings",
"captionTiny": "New in the Northgate app: round up every card payment and send the spare change to a savings goal. No fees.",
"captionShort": "Round up every card payment and watch your savings grow. With round-ups in the Northgate app, the spare change from everyday spending goes straight into a savings goal of your choice. No fees, and you can pause or change it any time. Get the app on the App Store and Google Play.",
"captionMedium": "Round up every card payment and watch your savings grow. With round-ups in the Northgate app, the spare change from everyday spending goes straight into a savings goal of your choice: pick a goal and a target, choose how much to round up, and see your savings add up day by day. There are no fees, you can pause or change it any time, and the money is moved once a day into a Northgate Easy Saver, protected up to 100,000 EUR. Get the app on the App Store and Google Play. Terms apply.",
"captionLong": "Round up every card payment and watch your savings grow. With round-ups in the Northgate app, the spare change from everyday spending goes straight into a savings goal of your choice. Pick a goal and set your target, a deposit for a first home or a trip you have been planning, then choose how much to round up each payment: to the next euro, or double it for a faster start. Your savings add up day by day, and the chart shows you how far you have come. There are no fees, you can pause or change it any time, and the money is moved once a day into a Northgate Easy Saver, protected up to 100,000 EUR. Get the Northgate app on the App Store and Google Play. Screens are illustrative. Terms apply.",
"hashtags": [
"banking",
"savings",
"fintech",
"northgatebank"
]
}
}
}
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.