Skip to main content

Definition, Sketch notes 1.0.0

TemplateDefinition, tpl_ff1c5ca3ada3
VariantSketch notes
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length19 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 term set large with the kind of word it is, a rule drawing under it, its definition setting line by line and one example with the term marked in it, then up to four more terms, one page each. metaData is the post's title, descriptions and hashtags and is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn: a kicker, the term, the kind of word it is, its definition and an example, up to four more terms each on a page of its own, the source and the look.
clipData.kickertextup to 20 charactersKicker: A word above the term, on every page, such as JARGON DECODER or EXPLAINED.
clipData.termtextyesup to 40 charactersTerm: The word or phrase being explained. It is the cover, there from the first frame, set as large as the frame allows.
clipData.kindtextup to 30 charactersKind: What sort of word it is, or where it is used: noun, abbreviation, markets, tax. Set under the term.
clipData.definitiontextyesup to 220 charactersDefinition: What the term means, in plain words. It sets line by line under the term.
clipData.exampletextup to 160 charactersExample: One sentence using the term, shown under the definition and set apart. Where it contains the term, the term is marked in it.
clipData.morelistat least 0, up to 4More terms: Further terms explained after the first, one page each, with the same parts. Each adds eight and a half seconds; four make a glossary of about 44 seconds.
clipData.more[]groupTerm
clipData.more[].termtextyesup to 40 charactersTerm
clipData.more[].kindtextup to 30 charactersKind: What sort of word it is, or where it is used.
clipData.more[].definitiontextyesup to 220 charactersDefinition
clipData.more[].exampletextup to 160 charactersExample: One sentence using the term. Where it contains the term, the term is marked in it.
clipData.sourcetextup to 60 charactersSource
clipData.lookgroupLook: How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides.
clipData.look.themeenumauto, brand, light, dark, boldTheme: The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.
clipData.look.paceenumauto, calm, standard, punchyPace: How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.
clipData.look.cornersenumauto, square, soft, roundCorners: The shape of cards, panels and marks.
clipData.look.alignenumauto, start, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: 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.
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": {
"kicker": {
"type": "string",
"maxLength": 20,
"title": "Kicker",
"description": "A word above the term, on every page, such as JARGON DECODER or EXPLAINED."
},
"term": {
"type": "string",
"maxLength": 40,
"title": "Term",
"description": "The word or phrase being explained. It is the cover, there from the first frame, set as large as the frame allows."
},
"kind": {
"type": "string",
"maxLength": 30,
"title": "Kind",
"description": "What sort of word it is, or where it is used: noun, abbreviation, markets, tax. Set under the term."
},
"definition": {
"type": "string",
"maxLength": 220,
"title": "Definition",
"description": "What the term means, in plain words. It sets line by line under the term."
},
"example": {
"type": "string",
"maxLength": 160,
"title": "Example",
"description": "One sentence using the term, shown under the definition and set apart. Where it contains the term, the term is marked in it."
},
"more": {
"type": "array",
"items": {
"type": "object",
"properties": {
"term": {
"type": "string",
"maxLength": 40,
"title": "Term"
},
"kind": {
"type": "string",
"maxLength": 30,
"title": "Kind",
"description": "What sort of word it is, or where it is used."
},
"definition": {
"type": "string",
"maxLength": 220,
"title": "Definition"
},
"example": {
"type": "string",
"maxLength": 160,
"title": "Example",
"description": "One sentence using the term. Where it contains the term, the term is marked in it."
}
},
"required": [
"term",
"definition"
],
"additionalProperties": false,
"title": "Term"
},
"minItems": 0,
"maxItems": 4,
"title": "More terms",
"description": "Further terms explained after the first, one page each, with the same parts. Each adds eight and a half seconds; four make a glossary of about 44 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source"
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"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 within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"required": [
"term",
"definition"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the term, the kind of word it is, its definition and an example, up to four more terms each on a page of its own, the source and the look."
},
"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": 20,
"title": "Kicker",
"description": "A word above the term, on every page, such as JARGON DECODER or EXPLAINED."
},
"term": {
"type": "string",
"maxLength": 40,
"title": "Term",
"description": "The word or phrase being explained. It is the cover, there from the first frame, set as large as the frame allows."
},
"kind": {
"type": "string",
"maxLength": 30,
"title": "Kind",
"description": "What sort of word it is, or where it is used: noun, abbreviation, markets, tax. Set under the term."
},
"definition": {
"type": "string",
"maxLength": 220,
"title": "Definition",
"description": "What the term means, in plain words. It sets line by line under the term."
},
"example": {
"type": "string",
"maxLength": 160,
"title": "Example",
"description": "One sentence using the term, shown under the definition and set apart. Where it contains the term, the term is marked in it."
},
"more": {
"type": "array",
"items": {
"type": "object",
"properties": {
"term": {
"type": "string",
"maxLength": 40,
"title": "Term"
},
"kind": {
"type": "string",
"maxLength": 30,
"title": "Kind",
"description": "What sort of word it is, or where it is used."
},
"definition": {
"type": "string",
"maxLength": 220,
"title": "Definition"
},
"example": {
"type": "string",
"maxLength": 160,
"title": "Example",
"description": "One sentence using the term. Where it contains the term, the term is marked in it."
}
},
"required": [
"term",
"definition"
],
"additionalProperties": false,
"title": "Term"
},
"minItems": 0,
"maxItems": 4,
"title": "More terms",
"description": "Further terms explained after the first, one page each, with the same parts. Each adds eight and a half seconds; four make a glossary of about 44 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source"
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"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 within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the term, the kind of word it is, its definition and an example, up to four more terms each on a page of its own, the source and the look."
},
"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_ff1c5ca3ada3?variant=Sketch%20notes&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": "Jargon decoder",
"term": "Basis point",
"kind": "noun, markets and lending",
"definition": "One hundredth of one percentage point. Interest rates, bond yields and fees are quoted in basis points so that small moves can be stated exactly, without decimals or any doubt about what changed.",
"example": "When the Bank of Arden raised its main rate from 4.00% to 4.25%, the rate went up by 25 basis points, not by 25 percent.",
"more": [
{
"kind": "noun, markets and lending",
"term": "Spread",
"example": "If a company borrows at 5.10% while the government borrows at 4.25%, the company's spread is 85 basis points.",
"definition": "The gap between two rates or prices, usually quoted in basis points. A wider spread means lenders see more risk, or that buyers and sellers are further apart on price."
}
],
"source": "Northwind Media glossary of money words",
"look": {
"theme": "auto",
"pace": "auto",
"corners": "auto",
"align": "auto",
"logo": "auto"
}
},
"metaData": {
"title": "Jargon decoder: what are a basis point and a spread, and why are rates quoted in them?",
"captionTiny": "A basis point is one hundredth of one percentage point, and a spread is the gap between two rates. 4.00% to 4.25% is a rise of 25 basis points, not 25 percent.",
"captionShort": "Jargon decoder: a basis point is one hundredth of one percentage point. Rates, yields and fees are quoted in basis points so that small moves can be stated exactly. When a main rate goes from 4.00% to 4.25%, it has risen by 25 basis points, not by 25 percent. A spread is the gap between two rates, usually quoted in basis points: borrowing at 5.10% when the government pays 4.25% is a spread of 85 basis points.",
"captionMedium": "Jargon decoder: two words you will hear in every rates story.\n\nA basis point is one hundredth of one percentage point, so 100 basis points make one percentage point. Interest rates, bond yields and fees are quoted in basis points so that small moves can be stated exactly, without decimals and without any doubt about what changed. If a rate goes from 4.00% to 4.25%, saying it rose by 25 basis points leaves only one reading; saying it rose by 25 percent would be wrong.\n\nA spread is the gap between two rates or prices, and it is usually quoted in basis points. If a company borrows at 5.10% while the government borrows at 4.25%, the company's spread is 85 basis points. A wider spread means lenders see more risk, or that buyers and sellers are further apart on price.\n\nTraders often write a basis point as bp or bps and say it out loud as bips.\n\nFor education only, not financial advice.",
"captionLong": "Jargon decoder: what are a basis point and a spread, and why does everybody in finance seem to use them?\n\nA basis point is one hundredth of one percentage point. So 100 basis points make one percentage point, 50 basis points make half a percentage point, and a single basis point is 0.01 percentage points. Interest rates, bond yields and fees are quoted in basis points so that small moves can be stated exactly, without decimals and without any doubt about what changed.\n\nWhy the doubt matters: if a rate goes from 4.00% to 4.25%, you could say it rose by 0.25 percentage points. You could also say it rose by about 6 percent, because 0.25 is about 6 percent of 4. Both statements are true, and they sound very different. Saying the rate rose by 25 basis points leaves only one reading.\n\nA spread is the gap between two rates or prices, usually quoted in basis points. If a company borrows at 5.10% while the government borrows at 4.25%, the company's spread is 85 basis points. A wider spread means lenders see more risk in lending to that company, or, on a trading screen, that buyers and sellers are further apart on price.\n\nWhere you will meet them:\n- Central bank decisions, which usually move in steps of 25 basis points.\n- Mortgage and savings rates, when lenders pass on a change.\n- Bond yields, which can move by a few basis points in a day.\n- Spreads between a company's borrowing cost and the government's.\n- Fund fees, where an annual charge of 0.20% is often written as 20 basis points.\n\nA quick way to check yourself: move the decimal point two places. 0.75 percentage points is 75 basis points, and 150 basis points is 1.5 percentage points.\n\nFor education only, not financial advice.",
"hashtags": [
"jargondecoder",
"basispoint",
"spread",
"interestrates",
"personalfinance",
"moneytips",
"finance",
"investing",
"explained",
"glossary"
]
}
}
}

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.