Tech and industry (Automotive and mobility), Trade-in
What your car is worth: a headline in wide capitals, the date of the valuation with what the values depend on, always beside the values, and up to three example cars set like a film's credits, each with its model, age, mileage and value as sent. A picture, where there is one, pushes in slowly behind the title. Each car is then told on a card of its own, before the button and the presenter. The legal line stands throughout. About two seconds longer per car.
| Template | Tech and industry (Automotive and mobility), tpl_7f3dd9501cd9 |
|---|---|
| Variant | Trade-in |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 12 seconds |
Example video
The 1x1 cut of this variant, drawn from its own worked example. Open the video on its own.
What it accepts
What your car is worth, as a dealer's film asks it: a headline in wide capitals, the date of the valuation with what the values depend on beside them, and up to three example cars as credits, each with its model, age, mileage and value as sent. A picture is optional. Each car is then told on a card, before the dealer's button. About two seconds more per car. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: your headline, an optional picture, the date of the valuation and what the values depend on, the example cars with their ages, mileages and values, the call to action and your legal line. | |
clipData.section | text | up to 32 characters | Section: The section in the header, beside your title line, such as Trade-in or Part exchange. | |
clipData.kicker | text | up to 40 characters | Kicker: A short line above the headline, such as Part exchange. | |
clipData.title | text | yes | up to 48 characters | Headline: The headline, set large in wide capitals, such as What is your car worth? |
clipData.tagline | text | up to 90 characters | Line under the headline: One line under the headline, set in italics. | |
clipData.picture | image | media:// file from the media library, alt text up to 120 characters | Picture (optional): A car or a forecourt, from the media library: a landscape photograph with the car in the middle, low in the frame, works best. It fills the film window and pushes in slowly. Leave it out and the clip is words and values on the page. A picture is never required, and no value is tied to the car pictured. | |
clipData.valuation | group | yes | Valuation: When the values were worked out, and what they depend on. Shown beside the values on every frame that shows them: a value never stands without its date and what it depends on. | |
clipData.valuation.lead | text | up to 24 characters | Before the date: A word or two set small above the date, such as Valued on. | |
clipData.valuation.date | text | yes | up to 32 characters | Date of the valuation: The day the values were worked out, as a date such as 2026-10-12. It is written out the way the channel's language writes it. |
clipData.valuation.dependsOn | text | yes | up to 200 characters | What the values depend on: What the values depend on, such as condition, service history, options and the market on that date. Required; never cut: a long one takes more lines. |
clipData.valuation.currency | text | yes | up to 3 characters | Currency: The values' currency as a three-letter code, such as EUR, GBP or USD. |
clipData.valuation.mileageUnit | text | up to 12 characters | Mileage unit: Set after each mileage, such as miles or km. | |
clipData.cars | list | yes | up to 3 | Example cars: Up to three example cars set like a film's credits, then each told on a card of its own, its value counting to exactly what is sent. Each adds nearly two seconds. |
clipData.cars[] | group | Car | ||
clipData.cars[].model | text | yes | up to 40 characters | Model: The car, such as Corvane Pico 1.2 Hybrid. |
clipData.cars[].age | text | up to 28 characters | Age: How old it is, as you say it, such as 3 years old or Registered 2023. | |
clipData.cars[].mileage | number | from 0, 0 decimals | Mileage: The mileage as a number, such as 28000, set the way the channel's language writes it. | |
clipData.cars[].value | number | yes | from 0, 2 decimals | Value: What it is worth in the valuation's currency, as a number. |
clipData.cta | group | Call to action: The button at the end and the line under it, such as a web address, a handle or a phone number. | ||
clipData.cta.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 48 characters | Line under it: An address, a handle, an app, a phone number. | |
clipData.legal | text | yes | up to 300 characters | Legal line: Who is advertising: the dealer or maker, its address and any line the law asks for. Shown in the bottom bar from the first frame to the last; never cut. |
clipData.footnote | text | up to 200 characters | Small print: Any other line that must be shown. | |
clipData.look | group | Look: 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 dark theme, calm, square corners, centred. | ||
clipData.look.theme | enum | brand, light, dark, bold | Theme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page. | |
clipData.look.pace | enum | calm, standard, punchy | Pace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts. | |
clipData.look.corners | enum | square, soft, round | Corners: The shape of cards, pictures and buttons. | |
clipData.look.align | enum | start, centre | Text alignment: Where the text lines up. | |
clipData.look.logo | enum | auto, free | Logo: 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.logoSize | enum | auto, small, large | Logo 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. | |
metaData | group | Meta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data. | ||
metaData.title | text | up to 100 characters | Title: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes. | |
metaData.captionTiny | text | up to 200 characters | Tiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionShort | text | up to 500 characters | Short description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionMedium | text | up to 1500 characters | Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionLong | text | up to 4000 characters | Long description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.hashtags | list | up to 15 | Hashtags: Written without the #. Up to 15, which every platform takes. | |
metaData.hashtags[] | text | up to 60 characters | Hashtag |
locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.
A picture is always a file from your media library: media:// followed by its id or its name.
Anything the table does not list is refused, and so is anything over its limit, with a 400
schema_validation error that names the field.
Ask Reelwire for the whole JSON Schema, the document your content is checked against, without signing in:
curl "https://app.reelwire.io/v1/formats/template/tpl_7f3dd9501cd9?variant=Trade-in&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": "Trade-in",
"kicker": "Part exchange",
"title": "What is your car worth?",
"tagline": "Three examples from our showroom this month.",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
},
"valuation": {
"date": "2026-10-12",
"lead": "Valued on",
"currency": "GBP",
"dependsOn": "Condition, service history, options and the used-car market on that date",
"mileageUnit": "miles"
},
"cars": [
{
"age": "3 years old",
"model": "Corvane Pico Hybrid",
"value": 12400,
"mileage": 28000
},
{
"age": "2 years old",
"model": "Corvane Lumen",
"value": 27900,
"mileage": 19500
},
{
"age": "5 years old",
"model": "Voltra Terra",
"value": 15200,
"mileage": 61000
}
],
"cta": {
"label": "Get your valuation",
"detail": "arden-motors.example/trade-in"
},
"legal": "Arden Motor Group Ltd, 14 Quayside, Bristol BS1 4QA. Valuations are examples, not offers; your own car is valued in person.",
"footnote": "Values are for cars in good condition with a full service history.",
"look": {
"logo": "auto",
"pace": "calm",
"align": "centre",
"theme": "dark",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "What is your car worth? Trade-in examples",
"captionTiny": "What is your car worth? Three examples from our showroom, valued 12 October 2026. Get your own valuation online.",
"captionShort": "What is your car worth? A Corvane Pico Hybrid, 3 years old with 28,000 miles, was valued at £12,400 on 12 October 2026. Values depend on condition, service history, options and the market on that date. Get your own valuation at Arden Motor Group in Bristol.",
"captionMedium": "What is your car worth? Three examples from our showroom, valued on 12 October 2026: a Corvane Pico Hybrid, 3 years old with 28,000 miles, at £12,400; a Corvane Lumen, 2 years old with 19,500 miles, at £27,900; and a Voltra Terra, 5 years old with 61,000 miles, at £15,200. Values depend on condition, service history, options and the used-car market on that date. Get your own valuation at Arden Motor Group, 14 Quayside, Bristol.",
"captionLong": "What is your car worth? Here are three examples from our showroom, valued on 12 October 2026: a Corvane Pico Hybrid, 3 years old with 28,000 miles, at £12,400; a Corvane Lumen, 2 years old with 19,500 miles, at £27,900; and a Voltra Terra, 5 years old with 61,000 miles, at £15,200. Values depend on condition, service history, options and the used-car market on that date, and are examples, not offers: your own car is valued in person, in about twenty minutes. Book online and bring your service book and both keys. Arden Motor Group Ltd, 14 Quayside, Bristol BS1 4QA. Values are for cars in good condition with a full service history.",
"hashtags": [
"tradein",
"partexchange",
"usedcars",
"carvaluation",
"sellyourcar"
]
}
}
}
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.