AI UGC video generator API: one call to a close-camera Format
A UGC-style video generator can be one API call. Sume's sume-close-camera-ugc Format makes a handheld selfie-style video; see the request and the receipt.

Yes, an AI UGC video generator can be an API: you send a brief and a product photo, and a finished video comes back on the receipt. With Sume the close-camera look is one catalog Format, sume-close-camera-ugc, called with POST /v1/formats/sume/sume-close-camera-ugc/runs.
The facts below come from the Format catalog, Create a run and Runs and results docs, and from the Format's own published description, read 2026-09-29. The recipe behind the Format is private, so this page does not describe how it works inside.
What does the close-camera UGC Format make?
The Format's description says it creates a finished close-camera UGC video with an intimate handheld selfie composition, direct eye contact, natural creator energy, and a product-led hook. It lists close-up testimonial ads, creator reactions, personal recommendations, and phone-shot social videos as the requests it is for, and says it is not for static campaign deliverables.
Read the description yourself before you call it: GET /v1/formats/sume/sume-close-camera-ugc returns it. The same route returns io and showcase as null for this Format today, so do not build on those two fields.
How do I call it?
Any key that carries formats:write may call a Format by Sume; the run and its spend belong to the calling key. Put the brief in instruction (up to 8000 characters) and the product photo in attachments as an input_image with a public HTTPS image_url. Send an Idempotency-Key on every create, derived from the thing being made.
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: acme-face-mist-ugc-v1" \
-d '{
"instruction": "Vertical 9:16 close-camera UGC ad for the attached hydrating face mist.",
"attachments": [
{ "type": "input_image", "image_url": "https://example.com/face-mist.png" }
],
"generation_spend_cap_usd": 20
}'What comes back, and when?
A fresh run answers 202 with a receipt whose status is queued and whose next_action is poll_status. Follow the URLs on the receipt, or register a communication.webhook_url and take the one terminal webhook. When the run is completed, the receipt carries artifacts[], and its media URLs are durable media.sume.com files that do not expire.
| Field | What it holds |
|---|---|
status | queued, then processing, then completed, failed, canceled or skipped |
artifacts[] | Every durable file the run generated; empty until terminal, filled on failures too |
usage.generation_spend_cap_usd_micros | The effective cap this run cannot spend past |
usage.billable_amount_usd_micros | Generation spend counted against the cap; it excludes the agent's own LLM turn |
How much does one UGC-style video cost?
There is no fixed price per video. A run is metered at the rates on the API pricing page, plus a 5.5% agent fee by default, and it cannot spend past its cap. generation_spend_cap_usd sets this run's ceiling up to $500; the spend cap post covers every value.
What should I not claim about the result?
For scripts and hooks to feed into instruction, see hook variations for UGC ads; for the wider tool question, see AI UGC ads at scale.
- It is a generated video. Do not present it as a real customer's review or a real person's experience.
- Sume's docs make no promise about sales, engagement or conversion, and neither should your copy.
- Check the product on every frame against the real package before you publish.
- A run that cannot finish comes back
failed, not a half-finishedcompleted; checkerrorandoutput_errorfirst.
Sources
Related posts
More in Formats
- 403 insufficient_scope on a Sume Format run: scope or service key
A 403 insufficient_scope on a Sume Format call means the key lacks formats:write or is a service-account key. How to tell which, and the fix: a new key.
- How long can a Sume Format run take? The expires_at deadline
A Sume Format run is force-finalized as failed 90 minutes after it was created, or sooner if it goes silent. How to read expires_at and set your own timeout.
- 403 workspace_key_required: call a team Format with a team key
A 403 workspace_key_required means a personal key called a team workspace's Format. Create a key inside that workspace; details.workspace_id names it.
- Which model runs a Sume Format? The model field on a run
The model field on a Sume Format run picks the LLM that orchestrates it, default gpt-6-sol. It does not pick the image, video or audio models. Rules and errors.
Written by Sume