Skip to main content

Real estate (Mortgage brokers), Payment examples 1.0.0

TemplateReal estate (Mortgage brokers), tpl_f10c6ae64146
VariantPayment examples
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length11 seconds

Example video​

The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.

What it accepts​

Monthly payments as a chat: a buyer's question, the broker's answer and a payment card with the rate, its APR at the same size and the term, then up to four loan amounts with their payments as sent, each lit in turn. The representative example and the legal line stay at the foot. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the section, the date chip, the buyer's question, your answer, the payment card with its rate, APR and term, the loan amounts and their payments, your closing message, the call to action, the representative example and the legal line.
clipData.sectiontextup to 32 charactersSection: A few words under your name in the bar at the top, such as Monthly payments or Mortgage examples.
clipData.asOftextyesup to 48 charactersRates as of: The date the rate is as of, written as it should be shown, on the date chip over the thread. Required: a rate is only true on its day.
clipData.questiongroupBuyer's question: The question the post answers, as a buyer's message on the end side in your brand colour. Leave it out to start with your answer.
clipData.question.texttextup to 100 charactersQuestion: The buyer's words, short as a message is.
clipData.question.nametextup to 32 charactersWho asks: Shown over the question, such as Sam, first-time buyer. Never a real client's name without their consent.
clipData.question.timetextup to 12 charactersTime: The time beside the message, written as it should be shown, such as 09:41.
clipData.question.readbooleanRead tick: Shows a tick beside the time, the question read.
clipData.answergroupYour answer: Your reply before the payment card, on the start side beside your presenter's picture, under their name and role. Leave it out to share the card alone.
clipData.answer.texttextup to 140 charactersAnswer: Your words, short as a message is. Never promise a payment: it depends on the buyer's circumstances and on the lender.
clipData.answer.timetextup to 12 charactersTime: The time beside your message, such as 09:42.
clipData.cardgroupyesPayment card: The card you share in the thread: its title, the rate every example is worked out at with its APR and the term, and the captions over its two columns.
clipData.card.titletextup to 40 charactersTitle: The card's title in its header strip, such as Monthly payments at 4.29%.
clipData.card.ratenumberyesfrom 0, to 100, 3 decimalsRate: The interest rate every example is worked out at, such as 4.29 for 4.29%. Shown exactly as sent, written your channel's way.
clipData.card.rateLabeltextyesup to 20 charactersRate caption: Over the rate, such as Rate or Fixed rate. Required.
clipData.card.aprnumberyesfrom 0, to 100, 3 decimalsAPR: The annual percentage rate of charge at that rate, such as 6.1. Required with every rate.
clipData.card.aprLabeltextyesup to 20 charactersAPR caption: Over the APR, as your market names it: APRC, APR, TAEG, effektiver Jahreszins. Required: a rate is never shown without its APR.
clipData.card.termtextup to 16 charactersTerm: The length every example is over, such as 25 years.
clipData.card.termLabeltextup to 16 charactersTerm caption: Over the term, such as Term.
clipData.card.basisNotetextup to 90 charactersNote: A line under the rate, term and APR saying what the examples assume, such as Payments for the fixed period, then the lender's variable rate.
clipData.card.currencytextyesup to 3 charactersCurrency: The currency of every amount, as a three-letter code, such as GBP, EUR or USD.
clipData.card.amountLabeltextup to 20 charactersAmount caption: Over the loan amounts, such as You borrow.
clipData.card.paymentLabeltextyesup to 20 charactersPayment caption: Over the monthly payments, such as A month.
clipData.exampleslistyesat least 1, up to 4Examples: One to four loan amounts in the order they are shown, each lit in turn, adding a second each. The monthly payment is worked out by you and shown exactly as sent: the clip works out nothing. The bar under each shows how its payment compares with the largest.
clipData.examples[]groupExample
clipData.examples[].amountnumberyesfrom 0, 2 decimalsLoan amount: What is borrowed, as a number in the currency above, such as 200000.
clipData.examples[].paymentnumberyesfrom 0, 2 decimalsMonthly payment: The monthly payment on that loan at the rate above, as a number in the currency above, worked out by you. Shown exactly as sent.
clipData.examples[].notetextup to 40 charactersNote: A short line under the amount, such as A 20% deposit on a 250,000 home.
clipData.closingtextup to 100 charactersClosing message: Your last message, over the button, such as Want me to work yours out?
clipData.ctagroupCall to action: The button at the end and the line under it, such as a web address, a handle or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 48 charactersLine under it: An address, a handle, an app, a phone number.
clipData.representativetextyesup to 320 charactersRepresentative example: The representative example, as the rules where you advertise ask for it with any rate: the amount borrowed, the term, the rate and for how long, what follows, the monthly payment, the total amount payable and the APR. Shown at the foot of every frame in the strong weight, set smaller rather than cut. Required.
clipData.legaltextyesup to 300 charactersLegal line: Who you are and who regulates you, with your number, and the risk warning your market asks for, such as Your home may be repossessed if you do not keep up repayments on your mortgage. Shown at the foot of every frame, set smaller rather than cut. Required.
clipData.lookgroupLook: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start.
clipData.look.themeenumbrand, light, dark, boldTheme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.
clipData.look.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.
clipData.look.logoSizeenumauto, small, largeLogo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.
metaDatagroupMeta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data.
metaData.titletextup to 100 charactersTitle: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes.
metaData.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

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

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

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 32,
"title": "Section",
"description": "A few words under your name in the bar at the top, such as Monthly payments or Mortgage examples."
},
"asOf": {
"type": "string",
"maxLength": 48,
"title": "Rates as of",
"description": "The date the rate is as of, written as it should be shown, on the date chip over the thread. Required: a rate is only true on its day."
},
"question": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 100,
"title": "Question",
"description": "The buyer's words, short as a message is."
},
"name": {
"type": "string",
"maxLength": 32,
"title": "Who asks",
"description": "Shown over the question, such as Sam, first-time buyer. Never a real client's name without their consent."
},
"time": {
"type": "string",
"maxLength": 12,
"title": "Time",
"description": "The time beside the message, written as it should be shown, such as 09:41."
},
"read": {
"type": "boolean",
"title": "Read tick",
"description": "Shows a tick beside the time, the question read."
}
},
"additionalProperties": false,
"title": "Buyer's question",
"description": "The question the post answers, as a buyer's message on the end side in your brand colour. Leave it out to start with your answer."
},
"answer": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 140,
"title": "Answer",
"description": "Your words, short as a message is. Never promise a payment: it depends on the buyer's circumstances and on the lender."
},
"time": {
"type": "string",
"maxLength": 12,
"title": "Time",
"description": "The time beside your message, such as 09:42."
}
},
"additionalProperties": false,
"title": "Your answer",
"description": "Your reply before the payment card, on the start side beside your presenter's picture, under their name and role. Leave it out to share the card alone."
},
"card": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 40,
"title": "Title",
"description": "The card's title in its header strip, such as Monthly payments at 4.29%."
},
"rate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"title": "Rate",
"description": "The interest rate every example is worked out at, such as 4.29 for 4.29%. Shown exactly as sent, written your channel's way."
},
"rateLabel": {
"type": "string",
"maxLength": 20,
"title": "Rate caption",
"description": "Over the rate, such as Rate or Fixed rate. Required."
},
"apr": {
"type": "number",
"minimum": 0,
"maximum": 100,
"title": "APR",
"description": "The annual percentage rate of charge at that rate, such as 6.1. Required with every rate."
},
"aprLabel": {
"type": "string",
"maxLength": 20,
"title": "APR caption",
"description": "Over the APR, as your market names it: APRC, APR, TAEG, effektiver Jahreszins. Required: a rate is never shown without its APR."
},
"term": {
"type": "string",
"maxLength": 16,
"title": "Term",
"description": "The length every example is over, such as 25 years."
},
"termLabel": {
"type": "string",
"maxLength": 16,
"title": "Term caption",
"description": "Over the term, such as Term."
},
"basisNote": {
"type": "string",
"maxLength": 90,
"title": "Note",
"description": "A line under the rate, term and APR saying what the examples assume, such as Payments for the fixed period, then the lender's variable rate."
},
"currency": {
"type": "string",
"maxLength": 3,
"title": "Currency",
"description": "The currency of every amount, as a three-letter code, such as GBP, EUR or USD."
},
"amountLabel": {
"type": "string",
"maxLength": 20,
"title": "Amount caption",
"description": "Over the loan amounts, such as You borrow."
},
"paymentLabel": {
"type": "string",
"maxLength": 20,
"title": "Payment caption",
"description": "Over the monthly payments, such as A month."
}
},
"required": [
"rate",
"rateLabel",
"apr",
"aprLabel",
"currency",
"paymentLabel"
],
"additionalProperties": false,
"title": "Payment card",
"description": "The card you share in the thread: its title, the rate every example is worked out at with its APR and the term, and the captions over its two columns."
},
"examples": {
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"title": "Loan amount",
"description": "What is borrowed, as a number in the currency above, such as 200000."
},
"payment": {
"type": "number",
"minimum": 0,
"title": "Monthly payment",
"description": "The monthly payment on that loan at the rate above, as a number in the currency above, worked out by you. Shown exactly as sent."
},
"note": {
"type": "string",
"maxLength": 40,
"title": "Note",
"description": "A short line under the amount, such as A 20% deposit on a 250,000 home."
}
},
"required": [
"amount",
"payment"
],
"additionalProperties": false,
"title": "Example"
},
"minItems": 1,
"maxItems": 4,
"title": "Examples",
"description": "One to four loan amounts in the order they are shown, each lit in turn, adding a second each. The monthly payment is worked out by you and shown exactly as sent: the clip works out nothing. The bar under each shows how its payment compares with the largest."
},
"closing": {
"type": "string",
"maxLength": 100,
"title": "Closing message",
"description": "Your last message, over the button, such as Want me to work yours out?"
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"representative": {
"type": "string",
"maxLength": 320,
"title": "Representative example",
"description": "The representative example, as the rules where you advertise ask for it with any rate: the amount borrowed, the term, the rate and for how long, what follows, the monthly payment, the total amount payable and the APR. Shown at the foot of every frame in the strong weight, set smaller rather than cut. Required."
},
"legal": {
"type": "string",
"maxLength": 300,
"title": "Legal line",
"description": "Who you are and who regulates you, with your number, and the risk warning your market asks for, such as Your home may be repossessed if you do not keep up repayments on your mortgage. Shown at the foot of every frame, set smaller rather than cut. Required."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start."
}
},
"required": [
"asOf",
"card",
"examples",
"representative",
"legal"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the date chip, the buyer's question, your answer, the payment card with its rate, APR and term, the loan amounts and their payments, your closing message, the call to action, the representative example and the legal line."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 32,
"title": "Section",
"description": "A few words under your name in the bar at the top, such as Monthly payments or Mortgage examples."
},
"asOf": {
"type": "string",
"maxLength": 48,
"title": "Rates as of",
"description": "The date the rate is as of, written as it should be shown, on the date chip over the thread. Required: a rate is only true on its day."
},
"question": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 100,
"title": "Question",
"description": "The buyer's words, short as a message is."
},
"name": {
"type": "string",
"maxLength": 32,
"title": "Who asks",
"description": "Shown over the question, such as Sam, first-time buyer. Never a real client's name without their consent."
},
"time": {
"type": "string",
"maxLength": 12,
"title": "Time",
"description": "The time beside the message, written as it should be shown, such as 09:41."
},
"read": {
"type": "boolean",
"title": "Read tick",
"description": "Shows a tick beside the time, the question read."
}
},
"additionalProperties": false,
"title": "Buyer's question",
"description": "The question the post answers, as a buyer's message on the end side in your brand colour. Leave it out to start with your answer."
},
"answer": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 140,
"title": "Answer",
"description": "Your words, short as a message is. Never promise a payment: it depends on the buyer's circumstances and on the lender."
},
"time": {
"type": "string",
"maxLength": 12,
"title": "Time",
"description": "The time beside your message, such as 09:42."
}
},
"additionalProperties": false,
"title": "Your answer",
"description": "Your reply before the payment card, on the start side beside your presenter's picture, under their name and role. Leave it out to share the card alone."
},
"card": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 40,
"title": "Title",
"description": "The card's title in its header strip, such as Monthly payments at 4.29%."
},
"rate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"title": "Rate",
"description": "The interest rate every example is worked out at, such as 4.29 for 4.29%. Shown exactly as sent, written your channel's way."
},
"rateLabel": {
"type": "string",
"maxLength": 20,
"title": "Rate caption",
"description": "Over the rate, such as Rate or Fixed rate. Required."
},
"apr": {
"type": "number",
"minimum": 0,
"maximum": 100,
"title": "APR",
"description": "The annual percentage rate of charge at that rate, such as 6.1. Required with every rate."
},
"aprLabel": {
"type": "string",
"maxLength": 20,
"title": "APR caption",
"description": "Over the APR, as your market names it: APRC, APR, TAEG, effektiver Jahreszins. Required: a rate is never shown without its APR."
},
"term": {
"type": "string",
"maxLength": 16,
"title": "Term",
"description": "The length every example is over, such as 25 years."
},
"termLabel": {
"type": "string",
"maxLength": 16,
"title": "Term caption",
"description": "Over the term, such as Term."
},
"basisNote": {
"type": "string",
"maxLength": 90,
"title": "Note",
"description": "A line under the rate, term and APR saying what the examples assume, such as Payments for the fixed period, then the lender's variable rate."
},
"currency": {
"type": "string",
"maxLength": 3,
"title": "Currency",
"description": "The currency of every amount, as a three-letter code, such as GBP, EUR or USD."
},
"amountLabel": {
"type": "string",
"maxLength": 20,
"title": "Amount caption",
"description": "Over the loan amounts, such as You borrow."
},
"paymentLabel": {
"type": "string",
"maxLength": 20,
"title": "Payment caption",
"description": "Over the monthly payments, such as A month."
}
},
"additionalProperties": false,
"title": "Payment card",
"description": "The card you share in the thread: its title, the rate every example is worked out at with its APR and the term, and the captions over its two columns."
},
"examples": {
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"title": "Loan amount",
"description": "What is borrowed, as a number in the currency above, such as 200000."
},
"payment": {
"type": "number",
"minimum": 0,
"title": "Monthly payment",
"description": "The monthly payment on that loan at the rate above, as a number in the currency above, worked out by you. Shown exactly as sent."
},
"note": {
"type": "string",
"maxLength": 40,
"title": "Note",
"description": "A short line under the amount, such as A 20% deposit on a 250,000 home."
}
},
"required": [
"amount",
"payment"
],
"additionalProperties": false,
"title": "Example"
},
"minItems": 1,
"maxItems": 4,
"title": "Examples",
"description": "One to four loan amounts in the order they are shown, each lit in turn, adding a second each. The monthly payment is worked out by you and shown exactly as sent: the clip works out nothing. The bar under each shows how its payment compares with the largest."
},
"closing": {
"type": "string",
"maxLength": 100,
"title": "Closing message",
"description": "Your last message, over the button, such as Want me to work yours out?"
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"representative": {
"type": "string",
"maxLength": 320,
"title": "Representative example",
"description": "The representative example, as the rules where you advertise ask for it with any rate: the amount borrowed, the term, the rate and for how long, what follows, the monthly payment, the total amount payable and the APR. Shown at the foot of every frame in the strong weight, set smaller rather than cut. Required."
},
"legal": {
"type": "string",
"maxLength": 300,
"title": "Legal line",
"description": "Who you are and who regulates you, with your number, and the risk warning your market asks for, such as Your home may be repossessed if you do not keep up repayments on your mortgage. Shown at the foot of every frame, set smaller rather than cut. Required."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the date chip, the buyer's question, your answer, the payment card with its rate, APR and term, the loan amounts and their payments, your closing message, the call to action, the representative example and the legal line."
},
"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_f10c6ae64146?variant=Payment%20examples&version=1.0.0"

Delivery JSON​

Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to that stream draws it with its template. data is the document described above; a stream with an empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate, which answers the same without publishing anything. Streams and feeds explains the rest, including how to map a document of your own shape instead.

{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"section": "What you would pay",
"asOf": "Rates as of 16 October 2026",
"question": {
"name": "Sam, first-time buyer",
"read": true,
"text": "What would the monthly payments actually be on different loan sizes?",
"time": "09:41"
},
"answer": {
"text": "Good question. Here is what each would cost a month at today's 5-year fixed rate.",
"time": "09:42"
},
"card": {
"apr": 6.1,
"rate": 4.29,
"term": "25 years",
"title": "Monthly payments",
"aprLabel": "APRC",
"currency": "GBP",
"basisNote": "Payments for the 5-year fixed period, repayment basis.",
"rateLabel": "5-year fixed",
"termLabel": "Term",
"amountLabel": "You borrow",
"paymentLabel": "A month"
},
"examples": [
{
"note": "A 20% deposit on a 187,500 home",
"amount": 150000,
"payment": 816
},
{
"note": "A 20% deposit on a 250,000 home",
"amount": 200000,
"payment": 1088
},
{
"note": "A 20% deposit on a 312,500 home",
"amount": 250000,
"payment": 1360
},
{
"note": "A 20% deposit on a 375,000 home",
"amount": 300000,
"payment": 1632
}
],
"closing": "Want me to work out yours, on your own figures?",
"cta": {
"label": "Book a free call",
"detail": "keystone.example/book or 020 7946 0321"
},
"representative": "Representative example: borrowing 250,000 over 25 years at 4.29% fixed for 5 years, then 7.49% variable for 20 years: 60 payments of 1,360 then 240 of 1,761; total amount payable 505,239 including a fee of 999. Overall cost for comparison 6.1% APRC.",
"legal": "Keystone Mortgages Ltd is authorised and regulated by the Financial Conduct Authority, FRN 123456. Your home may be repossessed if you do not keep up repayments on your mortgage.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "What you would pay a month: four loan sizes at 4.29%",
"captionTiny": "Monthly payments at 4.29% fixed (6.1% APRC) over 25 years: 150,000 is 816, 250,000 is 1,360, 300,000 is 1,632. Your home may be repossessed if you do not keep up repayments.",
"captionShort": "What would you pay a month? At 4.29% fixed for 5 years (6.1% APRC) over 25 years: 150,000 is 816, 200,000 is 1,088, 250,000 is 1,360 and 300,000 is 1,632. Book a free call and we will work out yours. Your home may be repossessed if you do not keep up repayments on your mortgage.",
"captionMedium": "What would you actually pay a month? Here are four loan sizes at today's 5-year fixed rate of 4.29% (6.1% APRC) over 25 years, as of 16 October 2026: 150,000 is 816 a month, 200,000 is 1,088, 250,000 is 1,360 and 300,000 is 1,632, each for the fixed period and on a repayment basis. Your own payment depends on your circumstances, so book a free call and we will work yours out. Representative example: borrowing 250,000 over 25 years at 4.29% fixed for 5 years, then 7.49% variable; total amount payable 505,239; 6.1% APRC. Your home may be repossessed if you do not keep up repayments on your mortgage.",
"captionLong": "What would you actually pay a month? It is the first thing buyers want to know, so here are four loan sizes at today's 5-year fixed rate of 4.29% (6.1% APRC) over 25 years, as of 16 October 2026. A loan of 150,000 is 816 a month, 200,000 is 1,088, 250,000 is 1,360 and 300,000 is 1,632, each for the five-year fixed period and on a repayment basis, with a 20% deposit behind it. When the fixed period ends the payment follows the lender's variable rate, so we show that in the example below too. Your own payment depends on your income, your deposit and the lender's checks: book a free call and we will work yours out on your own figures. Representative example: borrowing 250,000 over 25 years at 4.29% fixed for 5 years, then 7.49% variable for 20 years: 60 payments of 1,360 then 240 of 1,761; total amount payable 505,239 including a fee of 999. Overall cost for comparison 6.1% APRC. Keystone Mortgages Ltd is authorised and regulated by the Financial Conduct Authority, FRN 123456. Your home may be repossessed if you do not keep up repayments on your mortgage.",
"hashtags": [
"mortgagepayments",
"mortgage",
"firsttimebuyer",
"homebuying",
"mortgagebroker"
]
}
}
}

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.