An AI video generation API creates new footage from a text prompt (text-to-video) or from a starting image (image-to-video). You send a request, the provider runs the job for anywhere from a few seconds to a few minutes, and you download a short clip, usually 4 to 10 seconds long. In October 2026 the main APIs are Google Veo 3.1 (through the Gemini API), Runway, Luma and Kling, priced from a few cents to $0.60 per second of video. OpenAI removed its Sora video API on 24 September 2026.
This guide is vendor-neutral: it explains how these APIs work, compares their prices and limits (checked on each vendor's page on 18 October 2026), works out what a 30-second video costs, and shows how to turn the clips into a finished video. It is one of the six kinds of video API.
How a video generation API works
- Send a job. A prompt, and for image-to-video a starting image (some models also take a last frame or reference images). You choose the model, the length, the aspect ratio and the resolution.
- Wait for it. Generation is asynchronous. The API answers at once with a job or task ID, and you poll it until it is done. Google states between 11 seconds and 6 minutes per Veo request, depending on load.
- Download the clip straight away. Results are temporary. Veo keeps generated videos on Google's servers for 2 days; Runway's output URLs expire within 24 to 48 hours and its docs tell you to store the files yourself.
Things that differ between providers and matter for the bill:
- Clip length. Most models make one shot of 4 to 10 seconds. Longer videos are made by extending a clip (Veo: +7 seconds at a time, up to 148 seconds) or by joining several clips.
- Resolution. 720p is the default almost everywhere; 1080p and 4K cost more, and Veo only makes them in 8-second clips.
- Audio. Veo 3.1 always generates sound and speech with the picture, and the price includes it. Kling 3.0 makes audio optionally, for a higher price. Other models return silent clips.
- Billing unit. Per second of generated video (Veo, Runway) or per clip (Luma). Takes you throw away cost the same as the ones you keep.
AI video generation APIs compared
| Provider and model | Price | Max length per clip | Audio | Inputs | Free tier |
|---|---|---|---|---|---|
| Google Veo 3.1 Standard Gemini API, preview | $0.40/s (720p, 1080p), $0.60/s (4K) | 8 s; extend +7 s up to 20 times (148 s, 720p) | Yes, always on | Text, first and last frame, up to 3 reference images | No (paid tier only) |
| Google Veo 3.1 Fast Gemini API, preview | $0.10/s (720p), $0.12/s (1080p), $0.30/s (4K) | 8 s; extendable like Standard | Yes, always on | Same as Standard | No |
| Google Veo 3.1 Lite Gemini API, preview | $0.05/s (720p), $0.08/s (1080p); no 4K | 8 s; no extension | Yes, always on | Text, first and last frame | No |
| Runway Gen-4 Turbo | $0.05/s (5 credits at $0.01) | 10 s | — | Image only | None listed |
| Runway Gen-4.5 | $0.12/s | 10 s | — | Text or image | None listed |
| Veo 3.1 through Runway | Veo 3.1: $0.40/s with audio, $0.20/s without; Veo 3.1 Fast: $0.15/s with audio, $0.10/s without | — | Optional | — | None listed |
| Luma Ray3.2 | Per clip. 5 s: $0.15 (540p), $0.30 (720p), $1.20 (1080p). 10 s: $0.45, $0.90, $3.60. HDR costs 2× | 10 s (extensions in 5-second blocks) | — | Text or image; video-to-video priced separately | None listed |
| Kling API (direct) | Prepaid units, see vendor | — | — | — | — |
| Kling 3.0 through Runway | Standard (720p): $0.09/s silent, $0.13/s with audio. Pro (1080p): $0.12/s silent, $0.17/s with audio | 15 s | Optional | Text or image | None listed |
Checked on 18 October 2026. Sources: Gemini API pricing, Veo in the Gemini API, Runway API pricing, Runway API models, Runway API reference, Luma API pricing, Kling API pricing. "—" means the vendor's page does not say. Runway also resells Seedance, Wan and other models on the same credits.
OpenAI Sora: OpenAI removed the Videos API and the Sora 2 models from its API on 24 September 2026, after notifying developers on 24 March 2026 (OpenAI deprecations). It lists no replacement. Articles, SDK wrappers and agent skills that still offer Sora by API are out of date.
One key, many models. Runway's API resells Veo, Kling and Seedance alongside its own models, so one account can try several. Creative platforms such as Artlist and OpenArt do the same for their own users, mostly through their apps and MCP servers rather than a developer API.
Choosing by use case
| You need | Start with | Why |
|---|---|---|
| B-roll and backgrounds under a voice-over | Veo 3.1 Lite (720p) or Runway Gen-4 Turbo | Among the cheapest per second ($0.05). The generated sound is usually muted anyway, so paying for better audio is wasted. |
| Product shots from your own photos | Image-to-video: Runway Gen-4 Turbo, Veo 3.1 with reference images, Kling 3.0 | Starting from the real product photo keeps the shape, colour and label close to the original; a text prompt alone invents a product. |
| A move between two fixed frames | Veo 3.1 (any tier) with first and last frame | Veo interpolates between a start and an end image: before and after, a zoom into a detail. |
| Scenes with dialogue or sound effects | Veo 3.1 Fast or Standard; Kling 3.0 with audio | Audio and speech are generated with the picture, in sync. |
| One long continuous shot | Veo 3.1 or Fast with extension; Kling 3.0 (15 s) | Veo extends a clip by 7 seconds at a time, at 720p. Most other models stop at 10 seconds. |
| Cinematic quality at 1080p or 4K | Veo 3.1 Standard, Runway Gen-4.5, Luma Ray3.2 (HDR) | The most expensive per second, so test prompts on a cheaper model first. |
When not to generate. Titles, captions, charts, logos, price tags and voice-overs do not need a generative model: they are cheaper, exact and editable when an editing API adds them on top of the footage. And for common shots (a city at night, waves, an office), stock footage is often cheaper and faster than several retakes.
What a 30-second video costs
Example: a 30-second ad made of 4 shots. Each shot is generated as an 8-second clip and trimmed to 7.5 seconds (4 × 7.5 = 30). Generators charge for every second they make, including the half-second you trim and the takes you reject, so the realistic budget is three takes per shot.
- One take per shot: 4 clips × 8 s = 32 seconds generated.
- Three takes per shot: 12 clips × 8 s = 96 seconds generated.
| Model | Price | One take (32 s) | Three takes (96 s) |
|---|---|---|---|
| Veo 3.1 Lite, 720p | $0.05/s | $1.60 | $4.80 |
| Runway Gen-4 Turbo | $0.05/s | $1.60 | $4.80 |
| Veo 3.1 Lite, 1080p | $0.08/s | $2.56 | $7.68 |
| Veo 3.1 Fast, 1080p | $0.12/s | $3.84 | $11.52 |
| Runway Gen-4.5 | $0.12/s | $3.84 | $11.52 |
| Kling 3.0 Pro through Runway, with audio | $0.17/s | $5.44 | $16.32 |
| Luma Ray3.2, 720p (10-second clips) | $0.90 per clip | $3.60 | $10.80 |
| Veo 3.1 Standard, 1080p | $0.40/s | $12.80 | $38.40 |
| Luma Ray3.2, 1080p (10-second clips) | $3.60 per clip | $14.40 | $43.20 |
How the numbers are made: seconds generated × price per second (for example 96 × $0.12 = $11.52). Luma bills per clip and has no 8-second option, so each shot is a 10-second clip: 4 × $0.90 = $3.60, or 12 × $0.90 = $10.80. Prices as checked on 18 October 2026.
Then the assembly. The four clips still need to be cut to 7.5 seconds, joined, and given a voice-over, captions and music. In JSON2Video that render costs 1 credit per second of output, so the 30-second video uses 30 credits:
- On the free account (600 credits, videos up to 60 seconds, watermarked) it is free: 600 credits are 20 videos of this length.
- On the Professional plan ($49.95 a month for 12,000 credits, or 200 minutes), 30 credits cost 30 × $49.95 ÷ 12,000 = about $0.12. The voice-over and the subtitles use 0 credits today.
So the generated footage is where the money goes: from about $5 to $43 for this video with retakes, against about $0.12 to put it together.
From clips to a finished video
A generator returns separate shots without a voice-over, captions, music, branding or transitions. To publish them, you need an editing step, done by hand in an editor or by code with a video editing API.
JSON2Video does not generate footage. It is the layer that assembles generated clips into finished videos: each clip URL goes into a video element, and the API adds the voice-over, the captions, the music and the text, and renders an MP4. This example joins three clips with fades, a text-to-speech voice-over on each, automatic word-by-word captions, background music and the brand name on screen (the three clip URLs are samples on our CDN; in your case they are the clips the generator returned):
{
"resolution": "full-hd",
"elements": [
{ "type": "audio", "src": "https://cdn.json2video.com/assets/audios/uplifting-cinematic.mp3", "volume": 0.2 },
{
"type": "subtitles",
"language": "en",
"settings": { "style": "boxed-word", "font-size": 70, "position": "bottom-center" }
}
],
"scenes": [
{
"elements": [
{ "type": "video", "src": "https://assets.json2video.com/assets/videos/beach-01.mp4", "duration": 7.5, "muted": true },
{ "type": "text", "text": "Coastline Travel", "style": "003", "position": "top-left", "x": 80, "y": 80 },
{ "type": "voice", "text": "Mornings by the sea.", "voice": "en-US-AvaMultilingualNeural", "start": 1 }
]
},
{
"transition": { "style": "fade", "duration": 0.5 },
"elements": [
{ "type": "video", "src": "https://cdn.json2video.com/assets/videos/sample-house-drone.mp4", "duration": 7.5, "muted": true },
{ "type": "voice", "text": "A quiet house among the trees.", "voice": "en-US-AvaMultilingualNeural", "start": 1 }
]
},
{
"transition": { "style": "fade", "duration": 0.5 },
"elements": [
{ "type": "video", "src": "https://assets.json2video.com/assets/videos/new-york-01.mp4", "duration": 7.5, "muted": true },
{ "type": "text", "text": "Book your trip today", "style": "003", "position": "bottom-left", "x": 80, "y": -160 },
{ "type": "voice", "text": "And the city, when you want it. Coastline Travel.", "voice": "en-US-AvaMultilingualNeural", "start": 1 }
]
}
]
}
Send it with one POST https://api.json2video.com/v2/movies and your API key; the result is a 1080p MP4 of about 22 seconds. Notes:
durationtrims each clip (here to 7.5 seconds); addseekto start later in the clip."muted": truedrops the generated audio so the voice-over is clear. Remove it to keep Veo's or Kling's sound.- Store the clips first. Generator links expire (Runway within 24 to 48 hours, Veo after 2 days), so copy each clip to your own storage or to your JSON2Video media library before you render.
- Make it a template. Replace the clip URLs and the script with
{{variables}}and the next video only needs new values. The video editing API guide shows how. - Using these APIs from Claude: Claude can call the generators and the assembly through MCP. See video generation with Claude.
Already have generated clips? Assemble them into a narrated, captioned MP4 with one API call. The free account includes 600 credits (10 minutes of video, watermarked), no credit card. Get a free API key →
Frequently asked questions
What is the best AI video generation API?
It depends on the shot. In October 2026, Google Veo 3.1 (Gemini API) generates synced audio with every clip and can extend a clip to 148 seconds; Runway gives one API for its own Gen-4 models plus Veo, Kling and Seedance; Luma charges a fixed price per clip; Kling 3.0 makes clips up to 15 seconds. For cheap b-roll, Veo 3.1 Lite (720p) and Runway Gen-4 Turbo cost $0.05 per second.
Does OpenAI have a video API?
Not any more. OpenAI removed the Videos API and the Sora 2 models from its API on 24 September 2026, six months after announcing it, and lists no replacement. For video generation by API, use Google Veo, Runway, Luma or Kling.
Is there a free AI video generation API?
Not among the main providers. Veo 3.1 is only on the Gemini API's paid tier, and the Runway and Luma API pricing pages list no free tier. Low-cost options such as Veo 3.1 Lite at 720p and Runway Gen-4 Turbo cost $0.05 per second, so an 8-second test clip costs $0.40 (prices checked on 18 October 2026).
How long can generated videos be?
A single clip is short: 4, 6 or 8 seconds on Veo 3.1, up to 10 seconds on Runway Gen-4 and Luma Ray3.2, and up to 15 seconds on Kling 3.0. Veo 3.1 and Veo 3.1 Fast can extend a clip by 7 seconds up to 20 times, to 148 seconds at 720p. Longer videos are made by joining several clips with an editing API.
What is the difference between text-to-video and image-to-video?
Text-to-video creates the whole shot from a prompt. Image-to-video starts from an image you provide, such as a product photo, and animates it, which keeps the subject closer to the original. Veo 3.1 also accepts a last frame to move between two images. Runway Gen-4 Turbo works from images only.
How do I add a voice-over and subtitles to AI-generated clips?
With an editing step after generation. In JSON2Video, each clip goes in a video element, a voice element adds a text-to-speech voice-over and a subtitles element transcribes it into captions; one API call renders the MP4. JSON2Video assembles the clips; it does not generate them.
More in this section: video APIs: the six types and how to choose, video editing API, video processing API and video hosting API (where finished videos are stored and delivered).
Published on October 18th, 2026