Logo animation with sume-logo-motion-design: one call, a cap, a retry
Animate a logo with the sume-logo-motion-design Format: attach the PNG, set a spend cap, keep a stable idempotency key, and continue a run to fix one detail.

The Sume catalog Format for a logo sting is sume-logo-motion-design. Call POST /v1/formats/sume/sume-logo-motion-design/runs, attach the logo as an input_image, say in instruction what motion you want, and cap the spend. The catalog page lists the slug without describing it, so read GET /v1/formats/sume/sume-logo-motion-design first for its description and io profile, and do not assume that a vector logo is accepted: the attachment docs name input_image as the only attachment type.
The call
Attachments are fetched at create time, and Sume checks the real type and size and copies the image into durable storage. A private or broken URL therefore fails the create, not the run. Use a PNG with a clean edge on a flat background.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-logo-motion-design/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: brand-7-logo-sting-v1" \
-d '{
"instruction": "Three-second logo reveal on a dark background. Letters assemble, one soft light sweep, hold on the final mark.",
"attachments": [
{"type": "input_image", "image_url": "https://example.com/brand/logo.png", "filename": "logo.png"}
],
"generation_spend_cap_usd": 15
}'Fix one thing without starting over
When the motion is right and one detail is wrong, such as a hold that is too short, continue the run instead of making a fresh one. previous_run_id continues an earlier run of the same Format as one more turn of the same conversation. The body still needs at least one of instruction, input, previous_run_id or attachments, and the new instruction should be short and specific: "Same reveal, hold the final mark for two seconds." Use a new Idempotency-Key for the continuation. The same key with a changed body is a conflict and nothing runs.
If you only want to try a different style, start a fresh run. A continuation carries the earlier turn with it, which helps for a small change and hurts for a new direction.
Keys, scopes and caps
The call needs a key with formats:write, and polling needs formats:read. Keys made before the Format API shipped do not carry those scopes, and you cannot add scopes to an existing key, so mint a new one. Service-account keys cannot create Format runs.
| Setting | Value to send | What happens otherwise |
|---|---|---|
| generation_spend_cap_usd | A number up to 500, for example 15 | Inherits the Format's cap, or $400 if it names none |
| Idempotency-Key | Brand id plus a version | A fresh uuid per call gives no replay protection |
| attachments[].type | input_image | No other attachment type exists |
| previous_run_id | Earlier run id of this Format | A fresh start without it |
| communication.webhook_url | Public HTTPS endpoint | You poll the receipt instead |
Delivering many brands
If you animate logos for a list of brands, create one bulk queue for the Format, with one item per logo, instead of a loop in your code. A bulk queue holds 1 to 100 items and a window of 1 to 16 runs in flight, and each item is an ordinary run with its own receipt. An item that names none of instruction, input, previous_run_id or attachments fails the whole create with 400 and the item's index, so validate the list before you send it.
Last, check the result against the brand sheet by eye. A logo is the one asset where a small letter change is a defect, and the catalog page makes no claim about letter fidelity. Keep the receipt of each approved sting next to the brand's file. If the brand changes its mark, that receipt tells you which run to continue and which logo file went in, so you do not rebuild the sting from memory. Review before you release, and keep a failed run's receipt as well, because it shows what was already spent.
Sources
Related posts
More in Formats
- Lost the bulk-run queue id? There is no list endpoint; replay the key
Sume has no list-queues or cancel-queue endpoint. If you lost the frq_ id, replay the create with the same key and body to get the queue back.
- MAI-Voice-2.1 and Format runs: get the voiceover as its own file
A Format run cannot be told to use MAI-Voice-2.1, since its tools pick the audio model. Bind an audio field to get the voiceover track as a file.
- One Format run with five variants or a five-item bulk queue?
One run gives you five variants under one cap and one receipt. A bulk queue gives five receipts, a concurrency window up to 16 and per-item retry.
- Can a partner bulk-run your shared Format? Queue and spend are theirs
A grantee can POST .../bulk-runs at your handle and slug with its own team key. The queue, child runs and spend are theirs, and you cannot poll their queue.
Written by Sume