How Much Does AI Video Generation Cost via API? 2026 Developer Guide

Aug 23, 2026·8 min read

You've built a prototype that calls a video generation API and it works. Now you're trying to answer the question your PM just asked: "If we launch this to 10,000 users, what's the monthly bill?" The answer depends on which model you use, how long your output clips are, and which billing model the provider uses — and video APIs use two fundamentally different billing structures that produce very different costs at different clip lengths.

This guide gives exact per-request math for the four video models available via GenRelay: Veo 3.1 Lite, Grok Imagine 1.0, Grok Imagine 1.5, and Gemini Omni Flash. All pricing is verified as of August 2026.

What Are the Two Billing Models for Video APIs?

Video generation APIs charge in one of two ways:

Per-second billing — you pay per second of video output. Longer clips cost more; the rate scales linearly with duration. Models: Veo 3.1 Lite, Grok Imagine 1.0, Grok Imagine 1.5.

Per-generation billing — you pay a flat fee per video generated, regardless of clip length. A 5-second clip costs the same as a 30-second clip. Model: Gemini Omni Flash.

The billing model matters enormously for cost prediction. A flat-fee model is cheaper per generation for long clips and more expensive for short ones. The per-second models invert that relationship.

What Is the Exact Pricing for Each Model?

Per-Second Models (as of August 2026)

Model 720p 1080p 4K
Veo 3.1 Lite $0.060/s $0.120/s $0.180/s
Grok Imagine 1.5 $0.022/s $0.022/s
Grok Imagine 1.0 $0.010/s $0.010/s

Veo 3.1 Lite scales by resolution — 1080p is exactly 2× the cost of 720p, and 4K is 3×. Grok Imagine 1.0 and 1.5 do not currently expose per-resolution pricing via the GenRelay API; the listed rate applies regardless of output resolution.

Per-Generation Model (flat fee per video)

Model 720p 1080p
Gemini Omni Flash $0.10/generation $0.15/generation

Omni Flash charges per video generated — your clip length does not affect the cost. A 5-second and a 30-second video cost exactly the same.

How Much Does a Single Video Cost at Different Clip Lengths?

This table shows the cost of generating one video at common clip lengths. Use it to find where each model's pricing crosses over relative to the others.

At 720p

Clip length Veo 3.1 Lite Grok 1.5 Grok 1.0 Omni Flash
5 seconds $0.30 $0.11 $0.05 $0.10
8 seconds $0.48 $0.18 $0.08 $0.10
10 seconds $0.60 $0.22 $0.10 $0.10
15 seconds $0.90 $0.33 $0.15 $0.10
30 seconds $1.80 $0.66 $0.30 $0.10

Key insight: At 720p, Omni Flash's $0.10 flat fee becomes cheaper than Grok 1.0 once clips exceed 10 seconds — they're equal at exactly 10 seconds. For clips longer than 10 seconds, Omni Flash costs less per generation than every other model including Grok 1.0.

At 1080p

Clip length Veo 3.1 Lite Grok 1.5 Grok 1.0 Omni Flash
5 seconds $0.60 $0.11 $0.05 $0.15
8 seconds $0.96 $0.18 $0.08 $0.15
10 seconds $1.20 $0.22 $0.10 $0.15
15 seconds $1.80 $0.33 $0.15 $0.15
30 seconds $3.60 $0.66 $0.30 $0.15

At 1080p, Grok 1.0 and Omni Flash converge at 15 seconds. Below 15 seconds, Grok 1.0 is cheaper; above 15 seconds, Omni Flash wins.

How Do I Estimate My Monthly Bill?

The formula is straightforward:

Per-second models: monthly_cost = video_count × avg_duration_seconds × price_per_second

Per-generation models: monthly_cost = video_count × price_per_generation

Example: 100 videos/month, average 8 seconds, 720p

Model Monthly cost
Veo 3.1 Lite 100 × 8 × $0.060 = $48.00
Grok Imagine 1.5 100 × 8 × $0.022 = $17.60
Grok Imagine 1.0 100 × 8 × $0.010 = $8.00
Omni Flash 100 × $0.10 = $10.00

Example: 1,000 videos/month, average 8 seconds, 720p

Model Monthly cost
Veo 3.1 Lite 1,000 × 8 × $0.060 = $480
Grok Imagine 1.5 1,000 × 8 × $0.022 = $176
Grok Imagine 1.0 1,000 × 8 × $0.010 = $80
Omni Flash 1,000 × $0.10 = $100

Example: 1,000 videos/month, average 20 seconds, 720p

Model Monthly cost
Veo 3.1 Lite 1,000 × 20 × $0.060 = $1,200
Grok Imagine 1.5 1,000 × 20 × $0.022 = $440
Grok Imagine 1.0 1,000 × 20 × $0.010 = $200
Omni Flash 1,000 × $0.10 = $100

At 20-second clips, Omni Flash is 2× cheaper than Grok 1.0 and 12× cheaper than Veo 3.1 Lite at 720p.

How Do I Implement Cost Estimation in Code?

Here is a Python function that calculates estimated cost for a given workload:

PRICING = {
    "veo-3-1-lite": {"720p": 0.060, "1080p": 0.120, "4k": 0.180, "billing": "per_second"},
    "grok-imagine-1-5": {"default": 0.022, "billing": "per_second"},
    "grok-imagine-1-0": {"default": 0.010, "billing": "per_second"},
    "omni-flash": {"720p": 0.10, "1080p": 0.15, "billing": "per_generation"},
}

def estimate_monthly_cost(model, video_count, avg_duration_seconds, resolution="720p"):
    config = PRICING[model]
    if config["billing"] == "per_second":
        rate = config.get(resolution, config.get("default"))
        return video_count * avg_duration_seconds * rate
    else:
        rate = config.get(resolution, config.get("720p"))
        return video_count * rate

# Example: 500 videos/month, 12 seconds each, 720p
for model in PRICING:
    cost = estimate_monthly_cost(model, 500, 12, "720p")
    print(f"{model}: ${cost:.2f}/month")

Output:

veo-3-1-lite: $360.00/month
grok-imagine-1-5: $132.00/month
grok-imagine-1-0: $60.00/month
omni-flash: $50.00/month

How Do I Submit a Video Job and Track Actual Cost?

Video generation on GenRelay is asynchronous. Submit the job, poll for completion, then retrieve the output URL. The cost is incurred when the job completes successfully.

import requests, time

API_BASE = "https://genrelay.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_KEY"}

# Submit job
job = requests.post(f"{API_BASE}/videos/generations", headers=HEADERS, json={
    "model": "grok-imagine-1-0",
    "prompt": "A timelapse of a city skyline at sunset, golden hour",
    "duration": 8,
    "resolution": "720p"
}).json()

job_id = job["id"]
print(f"Job submitted: {job_id}")

# Poll for completion
while True:
    status = requests.get(f"{API_BASE}/videos/generations/{job_id}", headers=HEADERS).json()
    if status["status"] == "completed":
        print(f"Done: {status['output']['url']}")
        break
    elif status["status"] == "failed":
        print(f"Failed: {status.get('error')}")
        break
    time.sleep(5)

For a deeper look at async polling patterns including timeout handling and retry logic, see Async video generation API — how to poll for results.

What Are the Main Ways to Reduce Video API Costs?

Match model to quality requirement. Veo 3.1 Lite produces high-fidelity output but costs 6× more per second at 720p than Grok 1.0. For drafts, previews, or low-stakes outputs, use Grok 1.0. Reserve Veo for final renders where quality matters.

Use Omni Flash for longer clips. At 720p, Omni Flash's $0.10 flat fee becomes competitive at 10 seconds and grows more cost-effective with every additional second. For clips averaging 15 seconds or more, Omni Flash is typically the most cost-efficient option.

Stay at 720p unless 1080p is required. For Veo 3.1 Lite, 1080p exactly doubles your cost. Serve 720p for previews and render 1080p only for confirmed final outputs.

Cap duration at your minimum viable length. With per-second models, a 12-second clip costs 50% more than an 8-second clip at the same resolution. Trim duration parameters tightly to your actual content requirement.

For a model-by-model quality and use-case verdict, see Best AI video generation APIs in 2026. For a direct cost-rank comparison, see Cheapest AI video API — price breakdown 2026.

FAQ

Do I get charged if a video generation job fails?
Failed jobs are not charged. Cost is incurred only when a job reaches completed status and an output URL is available. Check the status field before assuming a charge has occurred.

Does Veo 3.1 Lite support 4K output via the GenRelay API?
Yes. As of August 2026, Veo 3.1 Lite supports 720p ($0.060/s), 1080p ($0.120/s), and 4K ($0.180/s) resolution tiers via GenRelay. See the Veo model page for current parameter documentation.

Does Omni Flash charge by clip length or by resolution?
By resolution only — 720p costs $0.10 per generation, 1080p costs $0.15 per generation, regardless of clip duration. This makes it uniquely cost-efficient for longer outputs.

Is there a minimum billing duration for per-second models?
GenRelay bills per second of generated output with no minimum duration premium. If your model supports 5-second clips and you request 5 seconds, you pay for 5 seconds.

Can I use GenRelay's free credits to estimate actual job costs before committing to a plan?
Yes — GenRelay provides free credits on sign-up. Run your actual prompts and duration parameters through each model, check the usage dashboard to see per-job cost, and use that to project your monthly bill before upgrading.

What happens to cost if I generate multiple videos concurrently?
Concurrency does not affect per-video pricing — each job is billed independently. Running 10 parallel jobs costs the same as running 10 sequential jobs with the same parameters. Concurrency affects wall-clock time and throughput, not cost.

Related posts

Join our DiscordHow Much Does AI Video Generation Cost via API? 2026 Developer Guide — GenRelay