Skip to main content

Public bodies (City councils), Service change 1.0.0

TemplatePublic bodies (City councils), tpl_edafad905b0f
VariantService change
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length20 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 change to a city service: the notice on a coloured banner, the headline, the service, what changes, from and until and why, complete on the first frame; each fact is then read in turn, then what you need to do, up to four points of what it means for you, the dates and the button. Who issued it stays on screen throughout. 13.5 seconds, 1.5 more per point. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the kind of notice, its status and pictogram, the headline, the service, what changes, from and until, why, what you need to do, what it means for you, the labels, the call to action, who issued it and the reference.
clipData.noticetextyesup to 24 charactersKind of notice: What kind of notice this is, on the coloured banner under your logo on every frame, such as Service change or Opening hours.
clipData.statustextup to 32 charactersStatus: How it stands, beside the kind of notice on the banner, such as Christmas and New Year, Temporary or From 5 January.
clipData.iconenumbus, train-front, bike, car, truck, footprints, accessibility, house, store, school, stethoscope, building, landmark, trees, leaf, recycle, trash, droplets, plug-zap, wifi, wrench, hard-hat, clock, calendar, map-pin, info, triangle-alert, phone, mail, globe, users, user, baby, bell, megaphone, file-text, lock, hand-helping, heart-pulse, sun, moon, book-open, smartphone, credit-card, key-round, dumbbell, roadworks, barrier, road-closed, diversion, route, parking, map, sirenPictogram: The service's pictogram, on the banner and beside the service: a bin, a bus, a book for a library. Left out, the banner shows an information sign.
clipData.headlinetextyesup to 72 charactersHeadline: What changes, in plain words and one message, such as Bins are collected a day later over Christmas. Facts only: a notice informs and never campaigns.
clipData.servicetextyesup to 80 charactersService: The service that changes, spelled out, such as Household bins, recycling and food waste, or the Central Library.
clipData.changetextyesup to 140 charactersWhat changes: What changes for the people who use it, in a sentence or two.
clipData.fromdatetimeyesFrom: The day the change starts. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday.
clipData.untildatetimeUntil: The last day of a change that ends, read and spelled out the same way. Left out for a change that stays.
clipData.fromTexttextup to 48 charactersFrom, as written: The start in your own words, shown instead of the date, such as From the week of 22 December. Left out, it is written from the date.
clipData.untilTexttextup to 48 charactersUntil, as written: The end in your own words, shown instead of the date, such as Until the library reopens in spring. Left out, it is written from the date.
clipData.whytextup to 100 charactersWhy: Why it changes, in one line, such as Because of the bank holidays on Christmas Day and New Year's Day.
clipData.actiontextup to 160 charactersWhat you need to do: What the people who use the service should do, spelled out. Shown large on a scene of its own. Left out, there is no such scene.
clipData.impactslistup to 4What it means for you: Up to four short points for the people who use the service, each with its pictogram. Each is read in turn, about one and a half seconds each; on a short frame they turn pages.
clipData.impacts[]groupPoint
clipData.impacts[].texttextyesup to 72 charactersPoint: What it means, in a few words.
clipData.impacts[].iconenumbus, train-front, bike, car, truck, footprints, accessibility, house, store, school, stethoscope, building, landmark, trees, leaf, recycle, trash, droplets, plug-zap, wifi, wrench, hard-hat, clock, calendar, map-pin, info, triangle-alert, phone, mail, globe, users, user, baby, bell, megaphone, file-text, lock, hand-helping, heart-pulse, sun, moon, book-open, smartphone, credit-card, key-round, dumbbell, roadworks, barrier, road-closed, diversion, route, parking, map, sirenPictogram: The pictogram on the point's tile. Left out, the tile holds the point's number.
clipData.labelsgroupLabels: The words beside the facts, over the dates and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which.
clipData.labels.servicetextup to 24 charactersService: Beside the service.
clipData.labels.changetextup to 24 charactersWhat changes: Beside what changes.
clipData.labels.fromtextup to 24 charactersFrom: Beside the start, and over its date at the end.
clipData.labels.untiltextup to 24 charactersUntil: Beside the end, and over its date at the end.
clipData.labels.whytextup to 24 charactersWhy: Beside why.
clipData.labels.actiontextup to 32 charactersWhat you need to do: Over what to do.
clipData.labels.impactstextup to 32 charactersWhat it means: Over the points.
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: A web address, a phone number, an office.
clipData.issuedBytextyesup to 120 charactersIssued by: The department or office that issues the notice, in your own words, such as Issued by Waste and Recycling. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut.
clipData.referencetextup to 40 charactersReference: The notice's file number, as you write it, such as Ref. WR/2026/88. Left out, none is shown.
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, calm, softly rounded, 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": {
"notice": {
"type": "string",
"maxLength": 24,
"title": "Kind of notice",
"description": "What kind of notice this is, on the coloured banner under your logo on every frame, such as Service change or Opening hours."
},
"status": {
"type": "string",
"maxLength": 32,
"title": "Status",
"description": "How it stands, beside the kind of notice on the banner, such as Christmas and New Year, Temporary or From 5 January."
},
"icon": {
"type": "string",
"enum": [
"bus",
"train-front",
"bike",
"car",
"truck",
"footprints",
"accessibility",
"house",
"store",
"school",
"stethoscope",
"building",
"landmark",
"trees",
"leaf",
"recycle",
"trash",
"droplets",
"plug-zap",
"wifi",
"wrench",
"hard-hat",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"phone",
"mail",
"globe",
"users",
"user",
"baby",
"bell",
"megaphone",
"file-text",
"lock",
"hand-helping",
"heart-pulse",
"sun",
"moon",
"book-open",
"smartphone",
"credit-card",
"key-round",
"dumbbell",
"roadworks",
"barrier",
"road-closed",
"diversion",
"route",
"parking",
"map",
"siren"
],
"title": "Pictogram",
"description": "The service's pictogram, on the banner and beside the service: a bin, a bus, a book for a library. Left out, the banner shows an information sign.",
"enumNames": [
"Bus",
"Train front",
"Bike",
"Car",
"Truck",
"Footprints",
"Accessibility",
"House",
"Store",
"School",
"Stethoscope",
"Building",
"Landmark",
"Trees",
"Leaf",
"Recycle",
"Trash",
"Droplets",
"Plug zap",
"Wifi",
"Wrench",
"Hard hat",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Baby",
"Bell",
"Megaphone",
"File text",
"Lock",
"Hand helping",
"Heart pulse",
"Sun",
"Moon",
"Book open",
"Smartphone",
"Credit card",
"Key round",
"Dumbbell",
"Roadworks (a cone)",
"Barrier",
"Road closed",
"Diversion",
"Route",
"Parking",
"Map",
"Siren"
]
},
"headline": {
"type": "string",
"maxLength": 72,
"title": "Headline",
"description": "What changes, in plain words and one message, such as Bins are collected a day later over Christmas. Facts only: a notice informs and never campaigns."
},
"service": {
"type": "string",
"maxLength": 80,
"title": "Service",
"description": "The service that changes, spelled out, such as Household bins, recycling and food waste, or the Central Library."
},
"change": {
"type": "string",
"maxLength": 140,
"title": "What changes",
"description": "What changes for the people who use it, in a sentence or two."
},
"from": {
"type": "string",
"format": "date-time",
"title": "From",
"description": "The day the change starts. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday."
},
"until": {
"type": "string",
"format": "date-time",
"title": "Until",
"description": "The last day of a change that ends, read and spelled out the same way. Left out for a change that stays."
},
"fromText": {
"type": "string",
"maxLength": 48,
"title": "From, as written",
"description": "The start in your own words, shown instead of the date, such as From the week of 22 December. Left out, it is written from the date."
},
"untilText": {
"type": "string",
"maxLength": 48,
"title": "Until, as written",
"description": "The end in your own words, shown instead of the date, such as Until the library reopens in spring. Left out, it is written from the date."
},
"why": {
"type": "string",
"maxLength": 100,
"title": "Why",
"description": "Why it changes, in one line, such as Because of the bank holidays on Christmas Day and New Year's Day."
},
"action": {
"type": "string",
"maxLength": 160,
"title": "What you need to do",
"description": "What the people who use the service should do, spelled out. Shown large on a scene of its own. Left out, there is no such scene."
},
"impacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 72,
"title": "Point",
"description": "What it means, in a few words."
},
"icon": {
"type": "string",
"enum": [
"bus",
"train-front",
"bike",
"car",
"truck",
"footprints",
"accessibility",
"house",
"store",
"school",
"stethoscope",
"building",
"landmark",
"trees",
"leaf",
"recycle",
"trash",
"droplets",
"plug-zap",
"wifi",
"wrench",
"hard-hat",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"phone",
"mail",
"globe",
"users",
"user",
"baby",
"bell",
"megaphone",
"file-text",
"lock",
"hand-helping",
"heart-pulse",
"sun",
"moon",
"book-open",
"smartphone",
"credit-card",
"key-round",
"dumbbell",
"roadworks",
"barrier",
"road-closed",
"diversion",
"route",
"parking",
"map",
"siren"
],
"title": "Pictogram",
"description": "The pictogram on the point's tile. Left out, the tile holds the point's number.",
"enumNames": [
"Bus",
"Train front",
"Bike",
"Car",
"Truck",
"Footprints",
"Accessibility",
"House",
"Store",
"School",
"Stethoscope",
"Building",
"Landmark",
"Trees",
"Leaf",
"Recycle",
"Trash",
"Droplets",
"Plug zap",
"Wifi",
"Wrench",
"Hard hat",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Baby",
"Bell",
"Megaphone",
"File text",
"Lock",
"Hand helping",
"Heart pulse",
"Sun",
"Moon",
"Book open",
"Smartphone",
"Credit card",
"Key round",
"Dumbbell",
"Roadworks (a cone)",
"Barrier",
"Road closed",
"Diversion",
"Route",
"Parking",
"Map",
"Siren"
]
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Point"
},
"maxItems": 4,
"title": "What it means for you",
"description": "Up to four short points for the people who use the service, each with its pictogram. Each is read in turn, about one and a half seconds each; on a short frame they turn pages."
},
"labels": {
"type": "object",
"properties": {
"service": {
"type": "string",
"maxLength": 24,
"title": "Service",
"description": "Beside the service."
},
"change": {
"type": "string",
"maxLength": 24,
"title": "What changes",
"description": "Beside what changes."
},
"from": {
"type": "string",
"maxLength": 24,
"title": "From",
"description": "Beside the start, and over its date at the end."
},
"until": {
"type": "string",
"maxLength": 24,
"title": "Until",
"description": "Beside the end, and over its date at the end."
},
"why": {
"type": "string",
"maxLength": 24,
"title": "Why",
"description": "Beside why."
},
"action": {
"type": "string",
"maxLength": 32,
"title": "What you need to do",
"description": "Over what to do."
},
"impacts": {
"type": "string",
"maxLength": 32,
"title": "What it means",
"description": "Over the points."
}
},
"additionalProperties": false,
"title": "Labels",
"description": "The words beside the facts, over the dates and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which."
},
"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": "A web address, a phone number, 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."
},
"issuedBy": {
"type": "string",
"maxLength": 120,
"title": "Issued by",
"description": "The department or office that issues the notice, in your own words, such as Issued by Waste and Recycling. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut."
},
"reference": {
"type": "string",
"maxLength": 40,
"title": "Reference",
"description": "The notice's file number, as you write it, such as Ref. WR/2026/88. Left out, none is shown."
},
"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, calm, softly rounded, text at the start."
}
},
"required": [
"notice",
"headline",
"service",
"change",
"from",
"issuedBy"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the kind of notice, its status and pictogram, the headline, the service, what changes, from and until, why, what you need to do, what it means for you, the labels, the call to action, who issued it and the reference."
},
"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": {
"notice": {
"type": "string",
"maxLength": 24,
"title": "Kind of notice",
"description": "What kind of notice this is, on the coloured banner under your logo on every frame, such as Service change or Opening hours."
},
"status": {
"type": "string",
"maxLength": 32,
"title": "Status",
"description": "How it stands, beside the kind of notice on the banner, such as Christmas and New Year, Temporary or From 5 January."
},
"icon": {
"type": "string",
"enum": [
"bus",
"train-front",
"bike",
"car",
"truck",
"footprints",
"accessibility",
"house",
"store",
"school",
"stethoscope",
"building",
"landmark",
"trees",
"leaf",
"recycle",
"trash",
"droplets",
"plug-zap",
"wifi",
"wrench",
"hard-hat",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"phone",
"mail",
"globe",
"users",
"user",
"baby",
"bell",
"megaphone",
"file-text",
"lock",
"hand-helping",
"heart-pulse",
"sun",
"moon",
"book-open",
"smartphone",
"credit-card",
"key-round",
"dumbbell",
"roadworks",
"barrier",
"road-closed",
"diversion",
"route",
"parking",
"map",
"siren"
],
"title": "Pictogram",
"description": "The service's pictogram, on the banner and beside the service: a bin, a bus, a book for a library. Left out, the banner shows an information sign.",
"enumNames": [
"Bus",
"Train front",
"Bike",
"Car",
"Truck",
"Footprints",
"Accessibility",
"House",
"Store",
"School",
"Stethoscope",
"Building",
"Landmark",
"Trees",
"Leaf",
"Recycle",
"Trash",
"Droplets",
"Plug zap",
"Wifi",
"Wrench",
"Hard hat",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Baby",
"Bell",
"Megaphone",
"File text",
"Lock",
"Hand helping",
"Heart pulse",
"Sun",
"Moon",
"Book open",
"Smartphone",
"Credit card",
"Key round",
"Dumbbell",
"Roadworks (a cone)",
"Barrier",
"Road closed",
"Diversion",
"Route",
"Parking",
"Map",
"Siren"
]
},
"headline": {
"type": "string",
"maxLength": 72,
"title": "Headline",
"description": "What changes, in plain words and one message, such as Bins are collected a day later over Christmas. Facts only: a notice informs and never campaigns."
},
"service": {
"type": "string",
"maxLength": 80,
"title": "Service",
"description": "The service that changes, spelled out, such as Household bins, recycling and food waste, or the Central Library."
},
"change": {
"type": "string",
"maxLength": 140,
"title": "What changes",
"description": "What changes for the people who use it, in a sentence or two."
},
"from": {
"type": "string",
"format": "date-time",
"title": "From",
"description": "The day the change starts. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday."
},
"until": {
"type": "string",
"format": "date-time",
"title": "Until",
"description": "The last day of a change that ends, read and spelled out the same way. Left out for a change that stays."
},
"fromText": {
"type": "string",
"maxLength": 48,
"title": "From, as written",
"description": "The start in your own words, shown instead of the date, such as From the week of 22 December. Left out, it is written from the date."
},
"untilText": {
"type": "string",
"maxLength": 48,
"title": "Until, as written",
"description": "The end in your own words, shown instead of the date, such as Until the library reopens in spring. Left out, it is written from the date."
},
"why": {
"type": "string",
"maxLength": 100,
"title": "Why",
"description": "Why it changes, in one line, such as Because of the bank holidays on Christmas Day and New Year's Day."
},
"action": {
"type": "string",
"maxLength": 160,
"title": "What you need to do",
"description": "What the people who use the service should do, spelled out. Shown large on a scene of its own. Left out, there is no such scene."
},
"impacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 72,
"title": "Point",
"description": "What it means, in a few words."
},
"icon": {
"type": "string",
"enum": [
"bus",
"train-front",
"bike",
"car",
"truck",
"footprints",
"accessibility",
"house",
"store",
"school",
"stethoscope",
"building",
"landmark",
"trees",
"leaf",
"recycle",
"trash",
"droplets",
"plug-zap",
"wifi",
"wrench",
"hard-hat",
"clock",
"calendar",
"map-pin",
"info",
"triangle-alert",
"phone",
"mail",
"globe",
"users",
"user",
"baby",
"bell",
"megaphone",
"file-text",
"lock",
"hand-helping",
"heart-pulse",
"sun",
"moon",
"book-open",
"smartphone",
"credit-card",
"key-round",
"dumbbell",
"roadworks",
"barrier",
"road-closed",
"diversion",
"route",
"parking",
"map",
"siren"
],
"title": "Pictogram",
"description": "The pictogram on the point's tile. Left out, the tile holds the point's number.",
"enumNames": [
"Bus",
"Train front",
"Bike",
"Car",
"Truck",
"Footprints",
"Accessibility",
"House",
"Store",
"School",
"Stethoscope",
"Building",
"Landmark",
"Trees",
"Leaf",
"Recycle",
"Trash",
"Droplets",
"Plug zap",
"Wifi",
"Wrench",
"Hard hat",
"Clock",
"Calendar",
"Map pin",
"Info",
"Triangle alert",
"Phone",
"Mail",
"Globe",
"Users",
"User",
"Baby",
"Bell",
"Megaphone",
"File text",
"Lock",
"Hand helping",
"Heart pulse",
"Sun",
"Moon",
"Book open",
"Smartphone",
"Credit card",
"Key round",
"Dumbbell",
"Roadworks (a cone)",
"Barrier",
"Road closed",
"Diversion",
"Route",
"Parking",
"Map",
"Siren"
]
}
},
"required": [
"text"
],
"additionalProperties": false,
"title": "Point"
},
"maxItems": 4,
"title": "What it means for you",
"description": "Up to four short points for the people who use the service, each with its pictogram. Each is read in turn, about one and a half seconds each; on a short frame they turn pages."
},
"labels": {
"type": "object",
"properties": {
"service": {
"type": "string",
"maxLength": 24,
"title": "Service",
"description": "Beside the service."
},
"change": {
"type": "string",
"maxLength": 24,
"title": "What changes",
"description": "Beside what changes."
},
"from": {
"type": "string",
"maxLength": 24,
"title": "From",
"description": "Beside the start, and over its date at the end."
},
"until": {
"type": "string",
"maxLength": 24,
"title": "Until",
"description": "Beside the end, and over its date at the end."
},
"why": {
"type": "string",
"maxLength": 24,
"title": "Why",
"description": "Beside why."
},
"action": {
"type": "string",
"maxLength": 32,
"title": "What you need to do",
"description": "Over what to do."
},
"impacts": {
"type": "string",
"maxLength": 32,
"title": "What it means",
"description": "Over the points."
}
},
"additionalProperties": false,
"title": "Labels",
"description": "The words beside the facts, over the dates and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which."
},
"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": "A web address, a phone number, 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."
},
"issuedBy": {
"type": "string",
"maxLength": 120,
"title": "Issued by",
"description": "The department or office that issues the notice, in your own words, such as Issued by Waste and Recycling. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut."
},
"reference": {
"type": "string",
"maxLength": 40,
"title": "Reference",
"description": "The notice's file number, as you write it, such as Ref. WR/2026/88. Left out, none is shown."
},
"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, calm, softly rounded, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the kind of notice, its status and pictogram, the headline, the service, what changes, from and until, why, what you need to do, what it means for you, the labels, the call to action, who issued it and the reference."
},
"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_edafad905b0f?variant=Service%20change&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": {
"notice": "Service change",
"status": "Christmas and New Year",
"icon": "trash",
"headline": "Bins are collected a day later over Christmas and New Year",
"service": "Household bins, recycling and food waste",
"change": "Every collection moves one day later than usual, so Friday's bins are collected on Saturday.",
"from": "2026-12-25T00:00:00+00:00",
"until": "2027-01-02T00:00:00+00:00",
"fromText": "",
"untilText": "",
"why": "Because of the bank holidays on Christmas Day and New Year's Day.",
"action": "Put your bins out by 7 am on your new collection day, and leave them out until they are emptied.",
"impacts": [
{
"icon": "trees",
"text": "Real Christmas trees are collected on 9 and 10 January"
},
{
"icon": "recycle",
"text": "Extra recycling can go in a clear bag beside your bin"
},
{
"icon": "building",
"text": "The recycling centre is closed on 25 and 26 December"
},
{
"icon": "leaf",
"text": "Garden waste collections start again on 4 January"
}
],
"labels": {
"why": "Why",
"from": "From",
"until": "Until",
"action": "What you need to do",
"change": "What changes",
"impacts": "Good to know",
"service": "Service"
},
"cta": {
"label": "Check your collection day",
"detail": "westbrook.example/bins"
},
"issuedBy": "Issued by Waste and Recycling, City of Westbrook",
"reference": "",
"look": {
"logo": "auto",
"pace": "calm",
"align": "start",
"theme": "brand",
"corners": "soft",
"logoSize": "auto"
}
},
"metaData": {
"title": "Bin collections a day later over Christmas and New Year",
"captionTiny": "Over Christmas and New Year your bins are collected one day later than usual, from 25 December to 2 January. Put them out by 7 am on your new day.",
"captionShort": "Bin collections over Christmas and New Year: from Friday 25 December to Saturday 2 January, every collection moves one day later than usual, so Friday's bins are collected on Saturday. Put your bins out by 7 am on your new collection day and leave them out until they are emptied. Real Christmas trees are collected on 9 and 10 January. Check your day at westbrook.example/bins.",
"captionMedium": "Bin collections over Christmas and New Year. Because of the bank holidays on Christmas Day and New Year's Day, every household collection, recycling and food waste included, moves one day later than usual from Friday 25 December to Saturday 2 January. So if your bins are usually collected on a Friday, they will be collected on the Saturday. What you need to do: put your bins out by 7 am on your new collection day, and leave them out until they are emptied. Good to know: real Christmas trees are collected on 9 and 10 January; extra recycling can go in a clear bag beside your bin; the recycling centre is closed on 25 and 26 December; and garden waste collections start again on 4 January. Check your collection day at westbrook.example/bins. Issued by Waste and Recycling, City of Westbrook.",
"captionLong": "Bin collections over Christmas and New Year. Because of the bank holidays on Christmas Day and New Year's Day, every household collection in Westbrook moves one day later than usual from Friday 25 December to Saturday 2 January. This covers your general waste, your recycling and your food waste. So if your bins are usually collected on a Friday, they will be collected on the Saturday; if they are usually collected on a Thursday, they will be collected on the Friday, and so on. Normal collection days return from Monday 4 January. What you need to do: put your bins out by 7 am on your new collection day, and leave them out until they are emptied, because the crews may come later in the day than usual while the rounds are busier. Good to know: real Christmas trees are collected on 9 and 10 January, so please take off the lights, the decorations and the stand and leave the tree beside your bin, cut in half if it is taller than two metres; extra recycling, such as boxes and wrapping paper without glitter, can go in a clear bag beside your recycling bin; the recycling centre on Station Road is closed on 25 and 26 December and on 1 January, and open as usual on the other days; and garden waste collections start again in the week of 4 January. If your bin is missed, please wait until the end of the next working day before you tell us, as crews may still be on their way. Check your collection day, and download the full holiday calendar, at westbrook.example/bins, or call us on 0300 123 4567. Thank you for helping our crews over the holidays. Issued by Waste and Recycling, City of Westbrook.",
"hashtags": [
"bins",
"recycling",
"westbrook",
"christmas",
"localservices"
]
}
}
}

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.