Ask six video API vendors for a five-second clip at each vendor's nearest listed low-resolution configuration, and the invoices read $0.25, $0.30, $0.40, $0.50, $0.76, and $2.00. Before comparing any two video generation API pricing pages, you have to normalize per-second, per-credit, per-generation, per-pixel, and per-token meters into dollars per generated second at your target resolution; that conversion, done below from cited rate cards and dated rate checks, changes the ranking more than any promo discount.
"I kept getting surprised at the end of the month by my AI video bill." - u/abarth23, who built a cost calculator after realizing "each platform uses different credit mathematics" (r/SideProject)
One clip, six bills: the billing dimension decides the cost
The billing dimension - not the headline rate - is the largest controllable cost lever in video generation API pricing. Five different meters show up across these six vendors, and the same request lands differently on each: a credit-metered API scales with resolution tiers and prepaid package economics, a per-pixel API scales with every frame you render, and a per-generation block stays flat until you touch a duration boundary.
| Vendor / API | Billing unit | Official rate basis |
|---|---|---|
| Runway API | Credits ($0.01 each) per output second | 5 credits/s for Gen-4 Turbo |
| Kling Open Platform | Prepaid credits per second (~$0.02/credit) | 5 credits/s for V3 Standard 720p |
| Luma Agents API | Per generation, by resolution × duration × dynamic range | $0.30 per 720p 5-second clip (Ray 3.2) |
| MiniMax Open Platform | Per generated second (USD) | $0.08/s at 768P for H3 |
| Veo 3.1 via Gemini API | Per second (USD) | $0.10/s at 720p for Fast |
| BytePlus Seedance 2.0 | Tokens (usage.completion_tokens) | $0.76 per 720p 5s generation |
Two of these meters carry the classic reseller trap. Kling's API price depends on which prepaid pack you bought: credits cost roughly $0.020 in the $9.80 trial, $98 Starter, and $980 Standard packs, but drop to about $0.014 in the $4,200 Enterprise bundle - a 30% effective-rate swing on identical workloads, with packs expiring after 30 days (trial) or 90 days (larger bundles). Runway's credits are flat $0.01 each, so the same math is at least stable.
The five billing dimensions, decoded
Per-second in USD: Veo 3.1 and MiniMax H3
Google's Gemini API bills Veo 3.1 Standard at $0.40 per second at both 720p and 1080p, $0.60/s at 4K, and Veo 3.1 Fast at $0.10/s (720p) or $0.12/s (1080p). MiniMax bills its H3 video model at $0.08 per generated second at 768P and $0.13/s at 2K. Per-second USD is the easiest dimension to forecast - duration is usually the only variable, and resolution changes price only at fixed tier boundaries.
Per-credit-second: Runway and Kling
Runway's rate card prices each generation in credits worth $0.01 apiece: Gen-4 Turbo at 5 credits/s ($0.05/s), Gen-4.5 at 12 credits/s ($0.12/s), and veo3.1 at 20 credits/s without audio or 40 credits/s with audio. Kling's API ladder runs from V3 Standard 720p at 5 credits/s (about $0.10/s) to O3 Pro 1080p-with-audio at 20 credits/s (about $0.40/s). The risk in this dimension is what rides alongside the output seconds: Runway's seedance2_5 adds 34 credits/s of input and reference video on top of 68 credits/s of 1080p output, plus an 80-credit minimum per generation.
Per-generation block: Luma Ray 3.2
Luma's new Agents API prices Ray 3.2 per generation: $0.30 for a 720p 5-second clip, $1.20 for 1080p, $0.60 for 720p HDR, and $0.90 with HDR plus EXR export. A single-keyframe extend is always billed as one 5-second block - even if you pass a shorter duration. Blocks are perfectly predictable but cliff-edged: crossing from 720p to 1080p quadruples the price of the same 5 seconds.
Per-megapixel: Luma's legacy Ray 2 meter
Luma's legacy Dream Machine API bills video modification per million pixels: $0.01582/Mpx for ray-2 and $0.00544/Mpx for ray-flash-2. The arithmetic is worth seeing once, because it explains why per-pixel pricing punishes resolution upgrades hardest: 1280 × 720 × 24 fps × 5 s ≈ 110.6 million pixels, so $0.01582 × 110.6 ≈ the $1.75 that Luma's own example lists for a 720p 5-second 16:9 modify. Double the linear resolution and the pixel count - and the bill - roughly quadruples.
Per-token: BytePlus Seedance
Seedance 2.0 on BytePlus returns consumption as usage.completion_tokens, and the bill follows the returned token count rather than a published per-second rate. In a rate check against BytePlus pricing from June 17, 2026, a 5-second 16:9 generation priced $0.35 at 480p, $0.76 at 720p, and $1.87 at 1080p - meaning a resolution change costs 2.2× going from 480p to 720p and another 2.5× to 1080p. Forecasting requires request-shape math, not headline division.
Normalized: what 5 seconds actually costs
Eight model configurations across the six vendors, at each provider's listed model and nearest supported resolution:
| API | Low-res 5s | 1080p 5s | Math behind the number |
|---|---|---|---|
| Runway Gen-4 Turbo | $0.25 (720p) | $0.25 | 5 credits/s × 5 s × $0.01; flat rate, no resolution tier listed |
| Luma Ray 3.2 | $0.30 (720p) | $1.20 | per-generation block by resolution |
| MiniMax H3 | $0.40 (768P) | - | $0.08/s × 5 s; 2K is $0.13/s |
| Kling V3 Standard | $0.50 (720p) | - | 5 credits/s × 5 s × $0.02 |
| Kling V3 Pro | - | $0.80 | 8 credits/s × 5 s × $0.02 |
| Veo 3.1 Fast | $0.50 (720p) | $0.60 | $0.10/s and $0.12/s |
| BytePlus Seedance 2.0 | $0.76 (720p) | $1.87 | token-metered, rate-checked June 2026 |
| Veo 3.1 Standard | $2.00 (720p) | $2.00 | $0.40/s, audio included |
This is a billing comparison, not an output-quality benchmark. The 1080p column is the stress test: Gen-4 Turbo's flat credit rate doesn't move, Luma's block quadruples, and Seedance's token meter climbs 2.5×.
Six places the billing dimension hides cost
- Resolution multipliers. On per-pixel and per-block meters, 720p -> 1080p multiplies cost by ~2.25× (pixels) or 4× (Luma's block). On per-second USD meters, Veo 3.1 Standard doesn't charge extra at all until 4K ($0.60/s).
- Audio surcharges. Veo 3.1 through Runway doubles from 20 to 40 credits/s when audio is on; Kling's O3 audio tiers run 12–20 credits/s versus 5–8 for silent V3 - a 2–2.4× jump for sound.
- Input and reference re-billing. Runway's rate card bills
seedance2_5input/reference video at 34 credits/s (capped at 30 s); MiniMax's pricing page charges $0.08–0.13/s for input video by target resolution, lets the first 5 images in free, then bills $0.04 per image - and regenerating a 768P clip to 2K bills the original input materials again. - Minimum-charge cliffs. Runway's
seedance2_5has an 80-credit minimum - a $0.80 floor that makes short test clips cost the same as full ones. Itsseedance2_minifloors at 64 credits. - Prepaid expiry and package dilution. Kling's 30/90-day pack expiry converts unused credits into pure loss; buying the Enterprise pack shaves the per-credit price ~30% but locks $4,200 upfront.
- Per-frame upscaling. Runway's Magnific video upscaler bills $0.007 per output frame at 720p (300 frames = 210 credits for a 10-second, 30 fps clip), and enabling
fpsBoostchanges the output frame count - and therefore the bill. As u/abarth23 put it in the same thread: "4K upscaling silently doubles your usage."
Failed generations: who bills, who refunds
Refund treatment for failed generations varies vendor by vendor, and on retry-heavy pipelines the difference compounds with every retry. Google's Gemini API documentation states that a generation that fails audio processing is not charged. Luma's Agents API publishes a refund matrix by failure_code: content_moderated, generation_failed, and output_not_found are refunded, while budget_exhausted can carry a partial charge; synchronous rejections are never billed. Kling's API reportedly does not consume credits on failed tasks - a third-party observation recorded in our Kling 3 API pricing guide, not a rate-card line. Runway's pricing page notes that response metadata reports the realized credit cost of each generation, which makes retry accounting auditable even without a refund policy page.
Matching the billing dimension to your workload
For high-volume drafting where clips are cheap and disposable, per-second USD meters (MiniMax H3 at $0.08/s, Veo 3.1 Fast at $0.10/s) and flat credit rates (Gen-4 Turbo at $0.05/s) keep marginal cost visible. For audio-native work, budget the multiplier explicitly: Veo 3.1 audio-on through Runway is $0.40/s and Kling O3 Pro is about $0.40/s, 2–4× their silent tiers.
Reference-heavy pipelines need different math: count per-image credits (1 credit each on Runway's grok_imagine_1_5, $0.04 per image after five free on MiniMax) before picking a vendor on output price alone. And if your output cost at 1080p is the binding constraint, drafting at 720p on a flat meter and paying the resolution premium once on a per-block or per-pixel API usually beats rendering every iteration at full resolution - provided the premium meter's quality actually wins you the final render.
If comparing five billing dashboards is the bottleneck rather than the math, relay platforms that expose multiple video models behind one API in USD - AIReiter's pricing page lists its video catalog in one unit - are one way to collapse the conversion work.
FAQ
Is MiniMax video generation billed per token?
No. MiniMax's Open Platform bills its LLMs per million tokens, but video is metered per generated second ($0.08/s at 768P for H3) or per fixed clip configuration on legacy Hailuo models ($0.28 for a 768P 6-second Hailuo-2.3 clip). The token-billing assumption is a common carry-over from MiniMax's text pricing.
Does switching from 720p to 1080p double the price?
It depends on the meter: per-pixel pricing rises about 2.25×, Luma's per-generation block rises 4× ($0.30 -> $1.20), BytePlus Seedance's token meter rose 2.5× in the June 2026 check, and Veo 3.1 Standard stays flat at $0.40/s across both resolutions.
Are failed video generations billed?
Not on Google's Gemini API (failed audio-processing generations are not charged) and not on Luma for content_moderated, generation_failed, or output_not_found failures; budget_exhausted can carry a partial charge. Kling failed tasks reportedly do not consume credits. Check each vendor's failure codes before assuming retries are free.
What is the cheapest checked per-second video API rate?
Per Runway's rate card, Gen-4 Turbo at 5 credits/s × $0.01 = $0.05 per generated second is the lowest rate in this comparison, followed by MiniMax H3 at $0.08/s (768P) and Veo 3.1 Fast at $0.10/s (720p).
Do prepaid video credits expire?
On Kling's API, yes: trial packs last 30 days and larger packages 90 days, which turns over-purchasing into direct loss. Runway's developer-portal credits carry $0.01 pricing without a listed expiry, but the pricing page does not document rollover policy - confirm before large top-ups.
The trade-off no pricing page solves for you
Per-generation blocks are the most forecastable meter here and the most punishing when a project drifts to 1080p; per-pixel pricing scales with real render load and quietly quadruples on the same drift. Prepaid credit packs buy a 30% discount and an expiry date; token meters track true consumption and resist division-based budgeting.
Normalize to dollars per successful generated second before signing anything, and re-check the rate card quarterly. Luma moved from per-pixel to per-generation blocks between two consecutive pricing architectures, and OpenAI's Sora video API is scheduled to shut down on September 24, 2026 with no listed replacement.