Which Sume Format for a UGC ad? Read io, then call by name
Sume's catalog lists UGC-style Formats such as sume-close-camera-ugc and sume-mobile-app-ugc. Read each Format's io profile, then run it with a spend cap.

To pick a Sume Format for a UGC ad, read the candidate with GET /v1/formats/sume/{slug} first. The catalog lists sume-close-camera-ugc, sume-mobile-app-ugc, sume-product-usage-demo, sume-before-after, sume-virtual-try-on and sume-recreate among its callable slugs (read 2026-10-08). The response carries the Format's description and io profile, which tells you whether it wants a URL, text, an image or a product and returns video, image or text.
What the catalog documents
A Format is a saved recipe that an Agent applies in a fresh sandbox. The catalog Formats answer at the reserved sume handle, any key with formats:write can call them, and the run, its media and its spend belong to the key that made the call. You do not fork anything first. To change one, fork it in the Format library and call your copy at {your_handle}/{slug}.
Any slug not on the list answers 404 format_not_found at sume/{slug}, so a typo fails fast.
| Slug | Name suggests | Check before calling |
|---|---|---|
| sume-close-camera-ugc | Creator talking to a close camera | io.input_kind and description |
| sume-mobile-app-ugc | App shown on a phone, UGC style | io.input_kind and description |
| sume-product-usage-demo | Product being used | io.input_kind and description |
| sume-before-after | Before and after | io.input_kind and description |
| sume-virtual-try-on | Garment try-on | io.input_kind and description |
| sume-recreate | Rebuild an existing ad | io.input_kind and description |
Sending the run
A run takes your data in input, an optional instruction, up to 30 image attachments, and a per-run generation_spend_cap_usd of up to $500. Set the cap lower than the platform maximum so a bad prompt cannot spend a whole balance. Send an Idempotency-Key, and use a webhook_url or poll the receipt. Long-form host video usually completes in 15 to 30 minutes, so build for the asynchronous path.
The slug names above are from the docs list; the read-before-call step is how you confirm that a Format fits your input rather than guessing from its name.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-close-camera-ugc/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ugc-test-001" \
-d '{
"instruction": "Vertical 9:16 UGC ad for the attached product. One hook, one benefit, one call to action.",
"attachments": [ { "type": "input_image", "image_url": "https://cdn.example.com/packshot.png" } ],
"generation_spend_cap_usd": 15
}'From one run to a batch
Once one run looks right, queue variants with POST /v1/formats/sume/sume-close-camera-ugc/bulk-runs: 1 to 100 items and a concurrency of 1 to 16. Each item is an ordinary Format run, with its own generation_spend_cap_usd and its own webhook. The queue itself has no webhook, so poll GET /v1/format-run-queues/{id} and read counts.failed once the queue is completed.
Sources
Related posts
More in Formats
- Which Sume Formats return images, not video? 9 of the 27 slugs
Of the 27 Formats by Sume, 18 declare video output and 9 declare image output. The slug lists, how to read the io profile, and why to check before you call.
- Bulk queue item with run_id null and format_run_failed_to_start
In a Sume Format bulk queue, an item that never started has run_id null and an error like format_run_failed_to_start. The queue goes on; resubmit that row.
- Course intro video output_schema: optional fields must be nullable
Bind a strict output_schema to a course-intro Format run so the intro and title card come back as typed fields. Optional keys must allow null.
- Fix one wrong number: Claude Motion edit vs a Sume Format retake
Claude Motion edits a number in place. In a Sume Format run a changed word or number means a new production; a look change is a retry at about 1/20 the cost.
Written by Sume