Wall-of-text Format for a sale announcement, typed output
Call Sume's wall-of-text Format for a kinetic-type sale clip and bind an output_schema so the video URL lands in your own JSON shape.

What it makes
sume-wall-of-text makes a text-led vertical ad. Its catalog description reads "Create a finished Fastlane wall-of-text Blitz from brand DNA", for a wall of text, kinetic type or a Fastlane text-led ad. A sale announcement is the natural fit: the offer, the dates and one line of urgency, set as type, with no actor to cast.
Black Friday 2026 is Friday, November 27 and Cyber Monday is Monday, November 30, so a three-line text ad can announce the window, the extension and the last call. Put those lines in instruction, and put your brand colours, name and URL in input.
Bind the result to your own shape
A completed run hands you media plus a paragraph of text by default. If you write the result straight into a database, bind a JSON Schema with output_schema and the receipt's output comes back in that shape. SumeMediaFile# is the reference for a media file object that the run fills with a durable media.sume.com URL.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-wall-of-text/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bf-text-ad-01" \
-d '{
"instruction": "Three beats of kinetic type: Black Friday starts Nov 27, 25% off, ends Cyber Monday. 9:16.",
"input": { "brand": "Trail Mug", "url": "https://shop.example.com" },
"output_schema": {
"name": "acme/text-ad/v1",
"strict": true,
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["ad_video"],
"properties": { "ad_video": { "$ref": "SumeMediaFile#" } }
}
},
"primary_output_key": "ad_video",
"generation_spend_cap_usd": 30
}'Read filled_by before you count it delivered
The receipt says how your object was produced. Read it before you treat a run as delivered, especially if you score runs automatically.
| filled_by | Meaning | What to expect |
|---|---|---|
| agent | The run called a tool with your schema as its argument shape | Preferred; the run could see your input and instruction |
| projection | A separate pass built the object from the run's media and closing text | Your input is not visible there, so prose fields may be null |
Design the schema around what the Format makes
Require only what the Format actually produces. A wall-of-text ad makes a video, so a schema that demands a thumbnail image or a transcript will fail on the projection path every time, silently, until you read output_error. A schema outside the supported strict subset is rejected up front with 400 output_schema_invalid, nothing runs and nothing is charged.
Keep your own ids out of the schema. They do not round-trip on the projection path, so key them to run.id or to the Idempotency-Key you sent. When the run finishes, primary_output_url is the single URL to show, and TikTok's in-feed page accepts vertical 9:16 non-Spark video at 540 x 960 px or larger, up to 10 minutes and 500 MB (read 2026-10-03).
Sources
Related posts
More in Formats
- Wallet runs dry mid-bulk: items fail with a null run_id, rest go on
A Sume bulk queue does not pause when credits run out: children that cannot start become failed items with run_id null. Sort them and resubmit after a top-up.
- Water-splash hero Format: a winter-hydration skincare still
Make a dramatic water-splash hero image of a hydrating skincare product with Sume's water-splash-hero image Format, for a winter-dry-skin push.
- Water splash, sunscreen, formula texture: heroes from a packshot
Three Sume Formats turn one packshot into a 9:16 beauty hero image: water splash, sunscreen splash and formula texture. What each does and what to check.
- What the agent receives for an episode run, in order
A Sume Format run composes the Format, your instruction, an unattended block and a pointer to input, in that order. Your instruction wins a conflict.
Written by Sume