Home › Guides › Use cases

What people actually build with a video generation API

Updated 2026-10-17

"Generate video from text" is a feature; a use case is a pipeline with an input, a quality bar, a volume and a place where the output lands. The useful question for a developer is not "can the API make video" but "which input mode, how many retries per accepted clip, and what happens before and after the call". Below are five recurring use cases and what each one tends to demand from the API.

1. Product and e-commerce clips

You already have the asset: a product photo on a clean background. The job is to give it motion — a slow orbit, steam rising from a mug, fabric moving — without changing the product itself. That is image-to-video: pass the photo as start_image_url and write a prompt that describes only the motion and camera, not the product.

2. Social ads and short-form variants

Ad teams want many cheap variants of one idea: different hooks, aspect ratios, openings. Here the model choice is mostly a price/quality trade, and the API features that matter are aspect_ratio (for example 9:16 vs 16:9) and duration_secs.

3. Previsualisation and storyboards

Directors and agencies use generated clips as moving storyboards: camera angle, blocking, mood. Fidelity matters less than iteration speed. Text-to-video is fine for exploring; once a frame is approved as a still, switch to image-to-video from that frame so shot two continues from shot one. For recurring characters or locations, reference-to-video (several images, optionally video and audio references) keeps identity more stable than prose alone — only on models that document it, so check the model page.

4. Game and app asset prototyping

Teams use generated loops as placeholder cinematics, onboarding animations or store-listing trailers before commissioning final art. The requirement is predictable cost and repeatability: pin the model so the look does not shift under you between sprints, and store the prompt, model id and seed-like parameters alongside the output.

5. Localisation and personalised variants

One master creative, many versions: different backgrounds per region, different products in the same scene, restyled looks. Where the master clip exists, the relevant mode is video editing — input_video_url plus a prompt describing the change. It is mutually exclusive with the other input fields, and not every model supports it; the models that do are listed in VideoRouter's docs.

This is the highest-volume pattern, so it is the one where per-second price differences between hosts compound fastest.

ModelCheapest hostPriciest hostCheapest isHosts
bytedance/seedance-2.5 (720p)SoCheap-Overseas
$0.1419 / second
Fal-US
$0.5676 / second
75% lower11
bytedance/seedance-2.0 (720p)MachGen
$0.1275 / second
Fal
$0.3034 / second
58% lower8
alibaba/wan-3.0 (480p)Replicate
$0.025 / second
Alibaba
$0.05 / second
50% lower11
google/gemini-omni-flashGoogle
$0.1 / second
Fal
$0.13 / second
23% lower4
minimax/h3 (768p)kie.ai
$0.04 / second
WaveSpeedAI-resell
$0.1 / second
60% lower13
alibaba/happyhorse-1.1 (720p)Pika
$0.098 / second
Alibaba
$0.14 / second
30% lower4
bytedance/seedance-2.0-fast (480p)Atlas Cloud
$0.027 / second
Fal
$0.2419 / second
89% lower8
bytedance/seedance-2.0-mini (480p)Atlas Cloud
$0.0112 / second
Fal
$0.0721 / second
84% lower7
kling-o3 (720p)SandBase
$0.0588 / second
Tencent TokenHub
$0.084 / second
30% lower4
kling-v3 (720p)SandBase
$0.0588 / second
Tencent TokenHub
$0.084 / second
30% lower8
google/gemini-omni-1.1-flash (360p)WaveSpeedAI
$0.03 / second
Google
$0.1 / second
70% lower3
lightricks/ltx-2.3-pro (2160p)MachGen
$0.1 / second
SandBase
$0.32 / second
69% lower2

Per second, before VideoRouter's 2.5% platform fee. For tiered models each row compares the resolution tier with the widest host-to-host gap. Built 2026-10-17 from the live catalog.

Choosing the mode from the use case

You haveUseKey field
Only an ideaText-to-videoprompt
A hero still you must preserveImage-to-videostart_image_url
Several images of a character or placeReference-to-videoinput_references
An existing clip to changeVideo editinginput_video_url

The mode-by-mode tradeoffs are covered in the mode comparison. If you are deciding whether to run any of this yourself, read build vs buy.

Sizing the volume before you commit

Before picking a model for any of these, estimate three numbers: clips per month, average seconds per clip, and how many attempts you need per accepted clip. Multiply them and you have the billed seconds that matter. Product catalogues tend to be high volume and short; previs is low volume and iteration-heavy; localisation multiplies a master clip by the number of regions. Each profile rewards a different mix, so keep the model id in configuration and revisit it as volumes become clear, rather than hard-coding the choice made during the first prototype.

It also helps to separate the interactive cases from the batch ones. A user waiting in an app needs the fastest model that is good enough; an overnight catalogue run should use the cheapest acceptable one and tolerate a slower queue.

What every use case shares

Every pipeline above is asynchronous: create a job, poll GET /videos/{id} until it is completed or failed, then download. Billing happens once at creation from the requested duration, polling is free, and a job that fails upstream is not billed. Plan for a review step and a retry budget rather than assuming one call equals one usable clip. The quickstart has a working request, and the pricing page shows the current spread across models.

Create an API key and run your own SKUs or prompts through two or three models before committing to one.

Frequently asked questions

Which input mode is best for product videos?

Image-to-video. Passing the product photo as start_image_url keeps the product's appearance fixed while the model adds motion; text-to-video would invent the product.

How many generations do I need per usable clip?

Plan for more than one. Generated video varies run to run, so most pipelines include a review step and a retry budget rather than assuming a single call yields an accepted clip.

Can I edit a clip I already have instead of regenerating it?

On models that support it, yes: send the clip as input_video_url with a prompt describing the edit. It cannot be combined with other input fields in the same call.

How do I keep the same model across a project?

Pin the model id in your config and store it with each output. Add a provider object with allow_fallbacks: false only if you need a single specific host.

Keep reading

Using video generation is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →