Which tool to generate UGC-style video ads for products at scale?
It depends on your input, presenter, languages, and volume. Arcads, Creatify, HeyGen, Runway, Synthesia, and Sume compared on API, pricing, and limits.

No single tool fits every UGC-style ad pipeline. The right one depends on what you start from (a script, a product page link, product photos, or a brief), who appears on camera (a stock AI actor, your own avatar, or footage a video model generates), how many languages the ads need, and whether you want an app with templates or an API your own code calls once per product. At catalog scale, also check for a batch or queue endpoint, a price unit you can multiply by your volume, and a spend limit you control.
The table below compares six tools from their own pages, read on 2026-09-29. Sume facts come from the Format catalog, Create a run, Bulk runs, and Generate avatar video docs pages.
Which tools make UGC-style product ads, and how do they compare?
Rows are alphabetical, not ranked. Each vendor cell comes from that vendor's own pricing page, API docs, help center, or home page, with the price unit as the page states it. How HeyGen and Synthesia differ from Sume in more depth is in Sume vs HeyGen and Sume vs Synthesia.
| Tool | You start from | API shape at volume | Price unit | Languages |
|---|---|---|---|---|
| Arcads | An AI actor from a library of 1,000+ (or one you create) reading your script; the actor can hold your product or show your app | Public API: create a product and a script, then POST /v1/scripts/:scriptId/generate; also an MCP server | Monthly credits: Starter 8,000, Creator 16,000; Pro and higher plans offer overage billing. No dollar prices on the pages read | Translation in more than 30 languages |
| Creatify | A product page link (URL to Video) or one product image URL (Product to Video) | API plans with URL to Video, AI Avatar, and Product to Video endpoints | API Starter $99 USD/month for 500 credits, API Pro $299 for 2,000. URL to Video and AI Avatar: 5 credits per 30 seconds | On the Pro app plan: 75+ languages and 1,500 AI actors |
| HeyGen | An avatar reading your script, or a prompt plus product image URLs for Video Agent | Batch Videos: up to 100 video requests in one call; the API plan processes 10 videos concurrently | Pay-as-you-go API credits in US dollars, per minute, charged by actual seconds: Avatar IV photo avatar $2.31, Video Agent $5.82 | 175+ languages and dialects on paid app plans, 30+ on Free |
| Runway | A prompt and images sent to a video model through its developer API | Runway Dev API; a Model Router bills at the rate of the model it selects | Credits at $0.01 each: gen4.5 12 credits per second, gen4_turbo 5 credits per second | Not stated on the page read |
| Sume | A brief plus product images (UGC Format), a script, avatar and product image (Avatar 1.0), or a prompt and images (kling-3, seedance-2.5, seedance-2-mini, seedance-2, seedance-2-fast) | REST API; Format bulk runs queue 1–100 runs with a concurrency window of 1–16, each with its own spend cap | Per second at the API pricing rates; Avatar 1.0 with a product image $0.194 per second (standard) to $0.58 per second (max) | Avatar 1.0 speaks English only in current code; TTS 1.0 takes a language for other languages |
| Synthesia | An AI avatar reading your script: 125+ avatars on Starter, 180+ on Creator | Synthesia API on the Creator plan: up to 360 minutes of video a year, deducted from the plan's usage limits | Starter $29/mo, Creator $89/mo billed monthly, each with a monthly credit pool | 160+ languages and voices |
Which one should I pick?
Match the tool to the input you already have, the presenter you want, and the way you want to pay:
- Arcads if you want an AI actor who holds your product or shows your app, and you are fine buying monthly credits; its API works through products, scripts, and a generate call.
- Creatify if your starting point is a product page link or a single product image; its API prices per 30 seconds or per image in credits.
- HeyGen if the same ad must go out in many languages, or you want to submit up to 100 videos in one batch call paid from prepaid dollars.
- Synthesia if you want a script-led avatar video with 160+ languages and voices, and the Creator plan's yearly API minutes cover your volume.
- Runway if you want to generate the footage with a video model and cut the ad yourself, billed in per-second credits.
- Sume if you want a ready-made UGC recipe fed with a brief and product images, with a spend cap per run and a server-side queue; an avatar holding your product reading your script; or Kling and Seedance models on one API.
- Sume is not the right pick if the presenter must speak a language other than English on Avatar 1.0 (current code speaks English only), or if you need an avatar video above 720p, the documented resolution.
Do I need an ad app or an API pipeline?
An ad app gives you templates and an editor, which suits a person reviewing each ad. When a catalog feed produces the inputs, an API lets your code start one job per product and variant, cap the spend, and collect results by webhook.
On Sume, the API path has three levels. A catalog Format takes a brief and product images and leaves the model choice to the Format's tools. Avatar 1.0 takes your exact script, an avatar, and a product image. POST /v1/videos calls a video model directly, including kling-3, seedance-2.5, seedance-2-mini, seedance-2, seedance-2-fast; frame_images with first_frame turns a product photo into the opening frame on models that list it. GET /v1/videos/models returns each model's durations, aspect ratios, supported frame images, and pricing_skus, as described in Video generation.
Which Sume catalog Formats make a UGC-style ad?
Sume's catalog answers at the reserved sume handle. Two of its slugs end in ugc, and a third names a product usage demo. A Format is a saved recipe the agent applies, so read a Format's description with GET /v1/formats/sume/{slug} before you call it; a slug not in the catalog answers 404 format_not_found. The whole catalog is in Ready-made Formats for product video.
Call one with a key that has formats:write. Put the brief in instruction and product shots in attachments, up to 30 images the agent can see; the Format's tools choose the image, video, and audio models. Send an Idempotency-Key on every create, and add communication.webhook_url to receive one signed format.run.terminal POST when the run completes or fails.
| Slug | Catalog title | Call |
|---|---|---|
sume-close-camera-ugc | Sume Close Camera Ugc | POST /v1/formats/sume/sume-close-camera-ugc/runs |
sume-mobile-app-ugc | Sume Mobile App Ugc | POST /v1/formats/sume/sume-mobile-app-ugc/runs |
sume-product-usage-demo | Sume Product Usage Demo | POST /v1/formats/sume/sume-product-usage-demo/runs |
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: sku-4411-ugc-v1" \
-d '{
"instruction": "Short vertical ad for the attached product.",
"attachments": [
{ "type": "input_image", "image_url": "https://example.com/product.jpg" }
],
"generation_spend_cap_usd": 20
}'How do I make one with an avatar, a script, and a product image?
Use Avatar 1.0 when you want to choose the presenter and write every word. POST /v1/avatar-1.0/talking-video names a ready avatar with avatar_handle and exactly one of script or video_inputs; add product_image for the product, or omit it for a productless video. scene can be { "type": "prompt" } with a prompt or { "type": "photo" } with an image_url, and media fields must be fetchable public HTTPS URLs. No avatar yet? See how to create a reusable AI avatar.
The docs' multi-scene example is shaped like a UGC ad: a spoken hook, a four-second silence beat named demo, and a spoken call to action, each with the background prompt "Casual bedroom framing, native UGC lighting". How to write that kind of script is in UGC ad scripts for AI avatar videos. To review first-frame stills before paying for a full render, use avatar video previews.
curl -X POST https://api.sume.com/v1/avatar-1.0/talking-video \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ugc-avatar-sku-4411-v1" \
-d '{
"avatar_handle": "acme_host",
"script": "I kept this in my bag all week. Here is why.",
"product_image": "https://example.com/product.png",
"scene": { "type": "prompt", "prompt": "Casual bedroom framing, native UGC lighting" },
"quality": "plus",
"aspect_ratio": "9:16"
}'How do I make many variants per product on Sume?
Testing UGC ads means many versions of each product ad: different opening hooks, presenters, and calls to action. On Sume each version is its own job or run:
- Hooks and scripts: each script is one Avatar 1.0 job, estimated at 4–60 seconds. Ways to vary the opening are in Hook variations for UGC ads.
- Presenters: each avatar video uses one resolved avatar, so another presenter means another job with another
avatar_handle. - Catalog Formats for many products:
POST /v1/formats/{handle}/{slug}/bulk-runsqueues 1–100 items, each the same body as a single run with its ownattachmentsandgeneration_spend_cap_usd, and keepsconcurrency(1–16) of them in flight; how to collect the results is in Sume Format bulk runs. - Capacity: workspace generation concurrency (1 on Free, 4 on Pro, 8 on Startup, 20 on Scale in the docs' plan table; read
generation_limits.concurrency_limit) applies to every child run and avatar job. Jobs past it can be accepted asqueuedwhile queue capacity remains; a full queue answers429 queue_full.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-close-camera-ugc/bulk-runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ugc-batch-2026-09-29" \
-d '{
"concurrency": 4,
"items": [
{
"instruction": "Short vertical ad for the attached product.",
"attachments": [{ "type": "input_image", "image_url": "https://example.com/sku-1.jpg" }],
"generation_spend_cap_usd": 20
},
{
"instruction": "Short vertical ad for the attached product.",
"attachments": [{ "type": "input_image", "image_url": "https://example.com/sku-2.jpg" }],
"generation_spend_cap_usd": 20
}
]
}'Can the ads speak other languages?
Not on Avatar 1.0: in current code it speaks English only. For another language, generate the voiceover with TTS 1.0 (POST /v1/tts-1.0/generate) and set language for every non-English transcript, then make a talking clip from a still and that audio with VEED Fabric 1.0 (POST /v1/veed/fabric-1.0). Fabric's audio must be Sume-hosted and under 10 MB, so pass the TTS result's mirrored audio file. The API pricing rate card lists TTS at $0.0475 per 1,000 characters and Fabric at $0.1875 per audio second (720p). The fields are in the API reference, and the steps in Dub an AI avatar video with lip sync.
What does a UGC ad cost on Sume?
On the Format path, generation that counts against the run's cap is metered at the API pricing rates, and generation_spend_cap_usd bounds it: up to $500, null runs at $500, and 0 is rejected. The receipt's usage.billable_amount_usd_micros excludes the agent's own LLM turn, so it is not the run's total cost. An avatar video is priced per second by quality and by whether you send a product image. With a product image the rate is $0.194 per second for standard, $0.258 per second for plus, and $0.58 per second for max.
| Catalog UGC Format | Avatar 1.0 talking video | |
|---|---|---|
| Endpoint | POST /v1/formats/sume/{slug}/runs | POST /v1/avatar-1.0/talking-video |
| Who decides the rest | The Format's recipe and tools | You: quality (default plus), aspect_ratio (default 9:16) |
| Getting the result | Poll the run receipt or take the format.run.terminal webhook | Poll /v1/jobs/{id}/status, then read /v1/jobs/{id}/result |
What are the limits?
These bounds come from the same docs pages and code:
- Avatar scripts and multi-scene plans must land at an estimated 4–60 seconds. Shorten a longer script or split it into several jobs.
- Current avatar execution supports one resolved avatar per final video and expects scene backgrounds to resolve to one shared scene.
- Avatar
aspect_ratiois1:1,3:4,9:16,4:3, or16:9;resolutionis currently720p. - A generated clip shows a model's rendering of the product. If the ad's claim is how the real product looks in use, such as fit, application, or a before-and-after, film the real product for that part.
Sources
- Format catalog
- Create a run
- Generate avatar video
- Sume API pricing
- Bulk runs
- Generation admission
- Video generation
- Models
- Sume API reference
- API reference
- Arcads: API documentation (read 2026-09-29)
- Arcads: How to buy more credits (read 2026-09-29)
- Arcads: MCP (read 2026-09-29)
- Arcads home page (read 2026-09-29)
- Creatify API docs: Billing (read 2026-09-29)
- Creatify API docs index (read 2026-09-29)
- Creatify pricing (read 2026-09-29)
- HeyGen: API pricing explained (read 2026-09-29)
- HeyGen developer docs index (read 2026-09-29)
- HeyGen: E-commerce product videos (read 2026-09-29)
- HeyGen pricing (read 2026-09-29)
- Runway API pricing (read 2026-09-29)
- Synthesia pricing (read 2026-09-29)
Related posts
- HeyGen alternatives with an API: price units, limits, and fit
- Hook variations for UGC ads: swap the hook, reuse the body
- Sume Format bulk runs: queue up to 100 renders in one request
- Ready-made Formats for product video: the Sume Format catalog
- Video agent API: turn a brief into a finished, edited video
More in Formats
- Create an AI video workflow via API: a Sume Format and its SKILL.md
Create a Sume Format with POST /v1/formats, then write its SKILL.md recipe through the Contents API. The fields, the slug rules, and the errors to handle.
- Why did my AI agent ignore my instructions? Debug a Sume Format run
A checklist for a Sume Format run that did something unexpected: the composed first message, the carried instruction, the version, events, and output.
- Optimistic concurrency with If-Match: edit Sume Format files by API
Edit a Sume Format's files over the API without overwriting another writer: each write carries the file's blob sha, and If-Match guards the whole package.
- List Formats API: find and address Sume Formats by handle or id
GET /v1/formats lists the Formats your key can call. Address one by {handle}/{slug} or by its permanent skl_ id, and list its runs newest first.
Written by Sume