Public bodies, Public notice 1.0.0
| Template | Public bodies, tpl_4f9a6b9f3068 |
|---|---|
| Variant | Public notice |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 17 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 public notice or warning: its level, what is happening, when and where, one to five things to do, and where to get help. The clip is as long as the actions 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 level, the notice, when and where, what to do and where to get help. | |
clipData.level | enum | info, advice, warning, alert | Level: How serious it is, which sets the colours and the meter: information and advice in the brand's colour, warning and alert in its warning colour, alert with moving stripes. Its name on screen is the level label below. | |
clipData.levelLabel | text | up to 32 characters | Level label: The level in words, as people should read it, such as Heat warning or Amber warning. | |
clipData.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, building, bus, train-front, bike, car, leaf, recycle, trees, file-text, thermometer, droplets, sun, cloud-rain, snowflake, wind, stethoscope, school, trash, accessibility, hand-helping | Icon: The notice's own symbol. Without one, the level's: information, a light bulb or a warning sign. | |
clipData.headline | text | yes | up to 70 characters | Headline: What is happening, in one sentence. |
clipData.body | text | up to 160 characters | Details: A sentence or two more: how bad, who is most at risk. | |
clipData.date | text | up to 48 characters | When: The dates, as they should be read. | |
clipData.time | text | up to 40 characters | Time: The hours, where they matter. | |
clipData.place | text | up to 60 characters | Where: The area it applies to. | |
clipData.actionsTitle | text | up to 32 characters | Title over the actions: A short title over what to do, such as What to do. | |
clipData.actions | list | at least 1, up to 5 | What to do: One to five things people should do, each with an icon, shown one after another and left on screen; the clip gets two seconds longer for each. | |
clipData.actions[] | group | Action | ||
clipData.actions[].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, building, bus, train-front, bike, car, leaf, recycle, trees, file-text, thermometer, droplets, sun, cloud-rain, snowflake, wind, stethoscope, school, trash, accessibility, hand-helping | Icon: A symbol for the action. A tick where none is chosen. | |
clipData.actions[].text | text | yes | up to 70 characters | Action: What to do, in a short sentence. |
clipData.help | group | Where to get help: Where people turn with questions: a help line, a desk, a web page. | ||
clipData.help.label | text | up to 40 characters | What it is: What the help is, such as Heat helpline or Citizen service desk. | |
clipData.help.detail | text | up to 40 characters | Number or address: The number to call or the address to go to, drawn large. | |
clipData.help.note | text | up to 64 characters | Line under it: When it is open, a web address, anything else to know. | |
clipData.help.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, building, bus, train-front, bike, car, leaf, recycle, trees, file-text, thermometer, droplets, sun, cloud-rain, snowflake, wind, stethoscope, school, trash, accessibility, hand-helping | Icon: The symbol on the card. A phone where none is chosen. | |
clipData.source | text | up to 90 characters | Issued by: Who issued the notice and when, shown at the foot. | |
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.band | enum | band, tag | Level shown as: A band across the full width under the header, as official warnings look, or a compact tag above the headline. | |
clipData.look.showMeter | boolean | Show the level meter: Four rising bars lit up to the level, beside the level label. | ||
clipData.look.signed | boolean | Sign with the brand's person: The brand's badge (picture, name and role) on the help card at the end, where the brand has one. | ||
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": {
"level": {
"type": "string",
"enum": [
"info",
"advice",
"warning",
"alert"
],
"title": "Level",
"description": "How serious it is, which sets the colours and the meter: information and advice in the brand's colour, warning and alert in its warning colour, alert with moving stripes. Its name on screen is the level label below.",
"enumNames": [
"Information",
"Advice",
"Warning",
"Alert, act now"
]
},
"levelLabel": {
"type": "string",
"maxLength": 32,
"title": "Level label",
"description": "The level in words, as people should read it, such as Heat warning or Amber warning."
},
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "The notice's own symbol. Without one, the level's: information, a light bulb or a warning sign.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
},
"headline": {
"type": "string",
"maxLength": 70,
"title": "Headline",
"description": "What is happening, in one sentence."
},
"body": {
"type": "string",
"maxLength": 160,
"title": "Details",
"description": "A sentence or two more: how bad, who is most at risk."
},
"date": {
"type": "string",
"maxLength": 48,
"title": "When",
"description": "The dates, as they should be read."
},
"time": {
"type": "string",
"maxLength": 40,
"title": "Time",
"description": "The hours, where they matter."
},
"place": {
"type": "string",
"maxLength": 60,
"title": "Where",
"description": "The area it applies to."
},
"actionsTitle": {
"type": "string",
"maxLength": 32,
"title": "Title over the actions",
"description": "A short title over what to do, such as What to do."
},
"actions": {
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "A symbol for the action. A tick where none is chosen.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
},
"text": {
"type": "string",
"maxLength": 70,
"title": "Action",
"description": "What to do, in a short sentence."
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Action"
},
"minItems": 1,
"maxItems": 5,
"title": "What to do",
"description": "One to five things people should do, each with an icon, shown one after another and left on screen; the clip gets two seconds longer for each."
},
"help": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "What it is",
"description": "What the help is, such as Heat helpline or Citizen service desk."
},
"detail": {
"type": "string",
"maxLength": 40,
"title": "Number or address",
"description": "The number to call or the address to go to, drawn large."
},
"note": {
"type": "string",
"maxLength": 64,
"title": "Line under it",
"description": "When it is open, a web address, anything else to know."
},
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "The symbol on the card. A phone where none is chosen.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
}
},
"additionalProperties": false,
"title": "Where to get help",
"description": "Where people turn with questions: a help line, a desk, a web page."
},
"source": {
"type": "string",
"maxLength": 90,
"title": "Issued by",
"description": "Who issued the notice and when, shown at the foot."
},
"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"
]
},
"band": {
"type": "string",
"enum": [
"band",
"tag"
],
"title": "Level shown as",
"description": "A band across the full width under the header, as official warnings look, or a compact tag above the headline.",
"enumNames": [
"A full-width band",
"A compact tag"
]
},
"showMeter": {
"type": "boolean",
"title": "Show the level meter",
"description": "Four rising bars lit up to the level, beside the level label."
},
"signed": {
"type": "boolean",
"title": "Sign with the brand's person",
"description": "The brand's badge (picture, name and role) on the help card at the end, where the brand has one."
},
"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"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the level, the notice, when and where, what to do and where to get help."
},
"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": {
"level": {
"type": "string",
"enum": [
"info",
"advice",
"warning",
"alert"
],
"title": "Level",
"description": "How serious it is, which sets the colours and the meter: information and advice in the brand's colour, warning and alert in its warning colour, alert with moving stripes. Its name on screen is the level label below.",
"enumNames": [
"Information",
"Advice",
"Warning",
"Alert, act now"
]
},
"levelLabel": {
"type": "string",
"maxLength": 32,
"title": "Level label",
"description": "The level in words, as people should read it, such as Heat warning or Amber warning."
},
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "The notice's own symbol. Without one, the level's: information, a light bulb or a warning sign.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
},
"headline": {
"type": "string",
"maxLength": 70,
"title": "Headline",
"description": "What is happening, in one sentence."
},
"body": {
"type": "string",
"maxLength": 160,
"title": "Details",
"description": "A sentence or two more: how bad, who is most at risk."
},
"date": {
"type": "string",
"maxLength": 48,
"title": "When",
"description": "The dates, as they should be read."
},
"time": {
"type": "string",
"maxLength": 40,
"title": "Time",
"description": "The hours, where they matter."
},
"place": {
"type": "string",
"maxLength": 60,
"title": "Where",
"description": "The area it applies to."
},
"actionsTitle": {
"type": "string",
"maxLength": 32,
"title": "Title over the actions",
"description": "A short title over what to do, such as What to do."
},
"actions": {
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "A symbol for the action. A tick where none is chosen.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
},
"text": {
"type": "string",
"maxLength": 70,
"title": "Action",
"description": "What to do, in a short sentence."
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Action"
},
"minItems": 1,
"maxItems": 5,
"title": "What to do",
"description": "One to five things people should do, each with an icon, shown one after another and left on screen; the clip gets two seconds longer for each."
},
"help": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "What it is",
"description": "What the help is, such as Heat helpline or Citizen service desk."
},
"detail": {
"type": "string",
"maxLength": 40,
"title": "Number or address",
"description": "The number to call or the address to go to, drawn large."
},
"note": {
"type": "string",
"maxLength": 64,
"title": "Line under it",
"description": "When it is open, a web address, anything else to know."
},
"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",
"building",
"bus",
"train-front",
"bike",
"car",
"leaf",
"recycle",
"trees",
"file-text",
"thermometer",
"droplets",
"sun",
"cloud-rain",
"snowflake",
"wind",
"stethoscope",
"school",
"trash",
"accessibility",
"hand-helping"
],
"title": "Icon",
"description": "The symbol on the card. A phone where none is chosen.",
"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",
"Building",
"Bus",
"Train front",
"Bike",
"Car",
"Leaf",
"Recycle",
"Trees",
"File text",
"Thermometer",
"Droplets",
"Sun",
"Cloud rain",
"Snowflake",
"Wind",
"Stethoscope",
"School",
"Trash",
"Accessibility",
"Hand helping"
]
}
},
"additionalProperties": false,
"title": "Where to get help",
"description": "Where people turn with questions: a help line, a desk, a web page."
},
"source": {
"type": "string",
"maxLength": 90,
"title": "Issued by",
"description": "Who issued the notice and when, shown at the foot."
},
"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"
]
},
"band": {
"type": "string",
"enum": [
"band",
"tag"
],
"title": "Level shown as",
"description": "A band across the full width under the header, as official warnings look, or a compact tag above the headline.",
"enumNames": [
"A full-width band",
"A compact tag"
]
},
"showMeter": {
"type": "boolean",
"title": "Show the level meter",
"description": "Four rising bars lit up to the level, beside the level label."
},
"signed": {
"type": "boolean",
"title": "Sign with the brand's person",
"description": "The brand's badge (picture, name and role) on the help card at the end, where the brand has one."
},
"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 level, the notice, when and where, what to do and where to get help."
},
"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_4f9a6b9f3068?variant=Public%20notice&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": {
"level": "warning",
"levelLabel": "Heat warning, level 3",
"icon": "thermometer",
"headline": "Extreme heat expected from Tuesday to Thursday",
"body": "Temperatures of up to 38 °C are expected across the city. Older people, small children and anyone with a health condition are most at risk.",
"date": "Tuesday 7 to Thursday 9 July",
"time": "Hottest from 11:00 to 18:00",
"place": "Whole city area, hottest in the Old Town",
"actionsTitle": "What you can do",
"actions": [
{
"icon": "droplets",
"text": "Drink water regularly, even when you are not thirsty"
},
{
"icon": "sun",
"text": "Stay out of the sun between 11:00 and 18:00"
},
{
"icon": "house",
"text": "Keep blinds closed by day and air your rooms at night"
},
{
"icon": "users",
"text": "Look in on older neighbours and relatives every day"
}
],
"help": {
"label": "Heat helpline",
"detail": "0800 555 0199",
"note": "Daily 8:00 to 20:00 · westbrook.example/heat",
"icon": "phone"
},
"source": "Issued by Westbrook Public Health on 6 July at 10:00. Next update at 18:00.",
"look": {
"theme": "brand",
"pace": "calm",
"corners": "soft",
"align": "start",
"band": "band",
"showMeter": true,
"signed": true,
"logo": "auto"
}
},
"metaData": {
"title": "Heat warning for Westbrook, 7 to 9 July",
"captionTiny": "Heat warning from Tuesday to Thursday: drink water, stay out of the midday sun, look in on neighbours.",
"captionShort": "Extreme heat is expected from Tuesday 7 to Thursday 9 July, with up to 38 °C in the city. Drink water, stay out of the sun from 11:00 to 18:00 and look in on older neighbours. Heat helpline: 0800 555 0199.",
"captionMedium": "Heat warning for the whole city area from Tuesday 7 to Thursday 9 July. Temperatures of up to 38 °C are expected, hottest from 11:00 to 18:00 and in the Old Town. Older people, small children and anyone with a health condition are most at risk. Drink water regularly, stay out of the sun at midday, keep blinds closed by day and air your rooms at night, and look in on older neighbours and relatives every day. The heat helpline on 0800 555 0199 is open daily from 8:00 to 20:00.",
"captionLong": "Heat warning for the whole city area from Tuesday 7 to Thursday 9 July. Temperatures of up to 38 °C are expected, hottest from 11:00 to 18:00 and in the Old Town. Older people, small children and anyone with a health condition are most at risk. Drink water regularly, even when you are not thirsty. Stay out of the sun at midday, keep blinds closed by day and air your rooms at night. Look in on older neighbours and relatives every day, and call 112 if somebody becomes confused or faints. The heat helpline on 0800 555 0199 is open daily from 8:00 to 20:00, and westbrook.example/heat lists cool places open to everybody. Issued by Westbrook Public Health; the next update follows at 18:00.",
"hashtags": [
"heatwarning",
"westbrook",
"staycool",
"publichealth"
]
}
}
}
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.