Tech and industry (Automotive and mobility), Used car of the week
The used car of the week: its picture full bleed between letterbox bars and pushing in slowly, its model in wide capitals with the year, the price with what it includes, its mileage and facts, and up to six features ticked off, complete on the first frame. Each feature is then told on a card of its own, before the dealer's button and the presenter. The consumption and emissions line and the legal line stand throughout. About one and a half seconds longer per feature.
| Template | Tech and industry (Automotive and mobility), tpl_7f3dd9501cd9 |
|---|---|
| Variant | Used car of the week |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 15 seconds |
Example video
The 1x1 cut of this variant, drawn from its own worked example. Open the video on its own.
What it accepts
The used car of the week as a dealer's film shows it: its picture between letterbox bars and pushing in slowly, its model and year in wide capitals, the price with what it includes, its mileage and facts, and up to six features ticked off. Each feature is then told on a card, before the dealer's button. The consumption and legal lines stay throughout. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the car's name, year and picture, its price and what it includes, its mileage and facts, its features, the dealer, the consumption and emissions line, 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 Used cars or Approved used. | |
clipData.kicker | text | up to 40 characters | Kicker: A short line above the name, such as Used car of the week. | |
clipData.model | text | yes | up to 40 characters | Model: The model's name and version, set large in wide capitals, such as Corvane Pico 1.2 Hybrid. |
clipData.year | text | yes | up to 40 characters | Year: The year, set under the name in spaced capitals, such as 2023 or Registered March 2023. |
clipData.tagline | text | up to 90 characters | Line under the name: One line on the car, set in italics under its name. | |
clipData.picture | image | yes | media:// file from the media library, alt text up to 120 characters | Picture of the car: The car itself, 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; the clip places the car so it is never cropped off. Show the car the price is for. |
clipData.price | group | yes | Price: The price, and what it includes. A price is never shown without what it includes. | |
clipData.price.lead | text | up to 16 characters | Before the price: A word set small before the price, such as Now. | |
clipData.price.amount | number | yes | from 0, 2 decimals | Price: The price as a number, set the way the channel's language writes it, in the currency below. |
clipData.price.currency | text | yes | up to 3 characters | Currency: The price's currency as a three-letter code, such as EUR, GBP or USD. |
clipData.price.includes | text | yes | up to 140 characters | What the price includes: What the price includes and leaves out, under it, such as Including a 12-month warranty, a full valet and VAT. Required: a car's price never stands without it. Never cut. |
clipData.mileage | group | yes | Mileage: The mileage on the clock, set as a figure under the price with its unit. | |
clipData.mileage.label | text | yes | up to 20 characters | What it is: The word set over the figure, such as Mileage. |
clipData.mileage.value | number | yes | from 0, 0 decimals | Mileage: The mileage as a number, such as 18400, set the way the channel's language writes it. |
clipData.mileage.unit | text | up to 12 characters | Unit: Set small after the figure, such as miles or km. | |
clipData.facts | list | up to 2 | Further facts: Up to two more facts set beside the mileage, such as the number of owners or the months of warranty left. | |
clipData.facts[] | group | Fact | ||
clipData.facts[].label | text | yes | up to 20 characters | What it is: The word set over the fact, such as Owners. |
clipData.facts[].value | number | 1 decimals | Figure: The figure itself. Leave it out to set words in its place below. | |
clipData.facts[].valueText | text | up to 20 characters | Fact in words: Set as written in place of a figure, such as Full history. | |
clipData.facts[].unit | text | up to 12 characters | Unit: Set small after the figure, such as months. | |
clipData.features | list | up to 6 | Features: Up to six features, ticked off on the first frame by their titles, then each told on a card of its own with its line. Each adds about a second and a half. | |
clipData.features[] | group | Feature | ||
clipData.features[].title | text | yes | up to 32 characters | Feature: A short title, such as Heated seats. |
clipData.features[].line | text | up to 80 characters | Line: One line on it, set in italics on its card. | |
clipData.dealer | group | yes | Dealer: Where the car is: the dealer and its place. Shown under the features, then on the closing card. | |
clipData.dealer.name | text | yes | up to 60 characters | Dealer: The dealer's name, such as Arden Motor Group. |
clipData.dealer.place | text | up to 60 characters | Place: The branch or town, such as Bristol, 14 Quayside. | |
clipData.consumption | text | yes | up to 300 characters | Consumption and emissions: The official figures for the car shown: combined fuel or energy consumption, CO2 emissions, the test cycle and, where the law asks, the CO2 class. Shown first in the bottom bar from the first frame to the last; never cut. |
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, its address and any line the law asks for, such as the date the price applies. 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=Used%20car%20of%20the%20week&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": "Used cars",
"kicker": "Used car of the week",
"model": "Corvane Pico Hybrid",
"year": "2023",
"tagline": "One careful owner and a full service history.",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
},
"price": {
"lead": "Now",
"amount": 13950,
"currency": "GBP",
"includes": "Including a 12-month warranty, a full valet and VAT"
},
"mileage": {
"unit": "miles",
"label": "Mileage",
"value": 18400
},
"facts": [
{
"label": "Owners",
"value": 1
},
{
"unit": "months",
"label": "Warranty",
"value": 12
}
],
"features": [
{
"line": "Warm in a minute on a frosty morning.",
"title": "Heated front seats"
},
{
"line": "A clear picture of what is behind you.",
"title": "Reversing camera"
},
{
"line": "Your maps and music on the dashboard screen.",
"title": "Apple CarPlay and Android Auto"
},
{
"line": "Keeps its distance on the motorway.",
"title": "Adaptive cruise control"
},
{
"line": "Every service stamped at a franchised dealer.",
"title": "Two keys, full service history"
},
{
"line": "Sixteen-inch alloys, unmarked.",
"title": "Alloy wheels"
}
],
"dealer": {
"name": "Arden Motor Group",
"place": "Bristol, 14 Quayside"
},
"consumption": "Corvane Pico 1.2 Hybrid: combined fuel consumption 4.4 l/100 km, CO2 emissions 100 g/km, CO2 class C (WLTP).",
"cta": {
"label": "See it in person",
"detail": "arden-motors.example/used"
},
"legal": "Arden Motor Group Ltd, 14 Quayside, Bristol BS1 4QA. Used cars are sold subject to availability; the price is correct at 1 October 2026.",
"footnote": "Photograph is of the car advertised.",
"look": {
"logo": "auto",
"pace": "calm",
"align": "centre",
"theme": "dark",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Used car of the week: the Corvane Pico Hybrid",
"captionTiny": "Used car of the week: a 2023 Corvane Pico Hybrid, 18,400 miles, £13,950 with a 12-month warranty. See it in Bristol.",
"captionShort": "Our used car of the week is a 2023 Corvane Pico Hybrid with 18,400 miles on the clock and one careful owner. £13,950, including a 12-month warranty, a full valet and VAT. See it at Arden Motor Group in Bristol.",
"captionMedium": "Our used car of the week is a 2023 Corvane Pico Hybrid: 18,400 miles, one owner and a full service history. Heated front seats, a reversing camera, Apple CarPlay and Android Auto, adaptive cruise control and alloy wheels. £13,950, including a 12-month warranty, a full valet and VAT. Combined fuel consumption 4.4 l/100 km, CO2 emissions 100 g/km, CO2 class C (WLTP). See it at Arden Motor Group, 14 Quayside, Bristol.",
"captionLong": "Our used car of the week is a 2023 Corvane Pico Hybrid: 18,400 miles on the clock, one careful owner and a full service history. It comes with heated front seats, a reversing camera, Apple CarPlay and Android Auto, adaptive cruise control, two keys and sixteen-inch alloy wheels. The price is £13,950, including a 12-month warranty, a full valet and VAT. Combined fuel consumption 4.4 l/100 km, CO2 emissions 100 g/km, CO2 class C (WLTP). Come and see it in our Bristol showroom, or book a viewing online. Arden Motor Group Ltd, 14 Quayside, Bristol BS1 4QA. Used cars are sold subject to availability; the price is correct at 1 October 2026. Photograph is of the car advertised.",
"hashtags": [
"usedcar",
"usedcars",
"carsforsale",
"hybridcar",
"bristol"
]
}
}
}
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.