---
title: AI Video Generation API | RunAPI
description: Generate video with Kling, Seedance, Veo, Runway, and more through one video generation API. One API key. Pay-as-you-go.
url: https://runapi.ai/video.md
canonical: https://runapi.ai/video
locale: en
site: RunAPI
image: https://runapi.ai/assets/opengraph-f702f2b1.png
alternates:
  en: https://runapi.ai/video
  zh-CN: https://runapi.ai/zh-CN/video
  es: https://runapi.ai/es/video
  ja: https://runapi.ai/ja/video
  de: https://runapi.ai/de/video
  fr: https://runapi.ai/fr/video
  pt-BR: https://runapi.ai/pt-BR/video
  ko: https://runapi.ai/ko/video
  it: https://runapi.ai/it/video
  nl: https://runapi.ai/nl/video
  pl: https://runapi.ai/pl/video
  tr: https://runapi.ai/tr/video
  zh-TW: https://runapi.ai/zh-TW/video
  zh-HK: https://runapi.ai/zh-HK/video
  ar: https://runapi.ai/ar/video
  x-default: https://runapi.ai/video
---

> HTML version: https://runapi.ai/video
> Site index for agents: https://runapi.ai/llms.txt


# AI Video Generation API

Generate, edit, and extend video with Kling, Seedance, Veo, Runway, Hailuo through one REST API.

- [Get API Key](https://runapi.ai/login)
- [Browse models →](https://runapi.ai/models?modality=video.md)



## See What Developers Are Creating

### Kling

[Kling](https://cdn.runapi.ai/public/homepage/media-showcase/5a6505a57eb78f66-runapi.ai-kling-official-cinema.mp4)

Coastal film scene from the Kling cinema showcase.

720p · 10s
### Veo 3

[Veo 3](https://cdn.runapi.ai/public/homepage/media-showcase/80659c1897dcbd87-runapi.ai-veo-3-keyboard.webm)

A hand pressing colorful keys, generated with Veo 3.

1080p · 8s
### Seedance 2.5

[Seedance 2.5](https://cdn.runapi.ai/public/homepage/media-showcase/5b88daada1d55565-runapi.ai-seedance-2-5.mp4)

Fire choreography from the Seedance 2.5 showcase.

540p · 20s
### Hailuo 02

[Hailuo 02](https://filecdn.minimax.chat/public/e2830468-9739-49d5-9df9-3e6c362b756f.mov)

An edited short film made from Hailuo 02 video clips.

1080p · 54.1s

## Everything the video endpoint can do

- **Text to Video** — Describe a shot and get finished footage. Prompt, duration, and aspect ratio on one endpoint.
- **Image to Video** — Animate a still frame. Pass a reference image and a motion prompt for controlled camera moves.
- **Video Editing** — Re-cut, restyle, or replace regions in an existing clip without re-rendering the whole shot.
- **Video Upscale** — Take a 480p draft to 1080p or 4K once the edit is locked. Cheaper than generating at full resolution.
- **Lip Sync** — Drive a talking head from an audio track. Works with generated or uploaded footage.
- **AI Avatar** — Render a consistent presenter from a single reference image and a script.

## Video models on one key

| Model | Provider | Price |
| --- | --- | --- |
| Seedance/seedance-2.0 | Bytedance | $0.27-$2.20 / second |
| Kling/kling-3.0 | Kuaishou | $0.18-$0.91 / second |
| Veo 3.1/veo-3.1 | Google | $2.50 / video |
| Gemini Omni/gemini-omni-character | Google | Free / video |
| Grok Imagine | xAI | $0.10-$0.30 / video |
| Hailuo/hailuo-02-image-to-video-pro | MiniMax | $0.57 / video |
| HappyHorse/happyhorse-1.0-i2v | Alibaba | $0.24-$0.41 / second |
| InfiniteTalk/infinitetalk-from-audio | MeiGen-AI | $0.03-$0.12 / second |


[View all 76 video models](https://runapi.ai/models?modality=video.md)


## Sign in to generate

- **Seedance/seedance-2.0** — $0.27-$2.20 / second
- **Kling/kling-3.0** — $0.18-$0.91 / second
- **Veo 3.1/veo-3.1** — $2.50 / video


Quickstart

## Create a video task

POST /api/v1/gemini_omni/text_to_video

#### curl

```bash
curl https://runapi.ai/api/v1/gemini_omni/text_to_video \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gemini-omni-flash-1-1","prompt":"A presenter walks through a bright studio.","duration_seconds":4}'
```

#### Python

```python
import json
import os
import requests

response = requests.post(
    "https://runapi.ai/api/v1/gemini_omni/text_to_video",
    headers={"Authorization": f"Bearer {os.environ['RUNAPI_API_KEY']}"},
    json=json.loads("{\"model\":\"gemini-omni-flash-1-1\",\"prompt\":\"A presenter walks through a bright studio.\",\"duration_seconds\":4}")
)
response.raise_for_status()
print(response.json())
```

#### Node.js

```javascript
const response = await fetch("https://runapi.ai/api/v1/gemini_omni/text_to_video", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + process.env.RUNAPI_API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({"model":"gemini-omni-flash-1-1","prompt":"A presenter walks through a bright studio.","duration_seconds":4})
});
console.log(await response.json());
```

#### Go

```go
package main

import (
    "io"
    "net/http"
    "os"
    "strings"
)

func main() {
    payload := strings.NewReader("{\"model\":\"gemini-omni-flash-1-1\",\"prompt\":\"A presenter walks through a bright studio.\",\"duration_seconds\":4}")
    request, err := http.NewRequest("POST", "https://runapi.ai/api/v1/gemini_omni/text_to_video", payload)
    if err != nil { panic(err) }
    request.Header.Set("Authorization", "Bearer "+os.Getenv("RUNAPI_API_KEY"))
    request.Header.Set("Content-Type", "application/json")
    response, err := http.DefaultClient.Do(request)
    if err != nil { panic(err) }
    defer response.Body.Close()
    io.Copy(os.Stdout, response.Body)
}
```

#### Response

```json
{
  "id": "tsk_example",
  "status": "processing"
}
```


## Four Steps to Your First Generation

**How it works**

1. **Get Your API Key** - Sign up and copy your key from the dashboard.
2. **Choose a Model** - Pick the model that fits your input and output needs.
3. **Send a Request** - POST to /api/v1/kling/text_to_video with your prompt, model, and parameters.
4. **Get Your Video** - Poll the task or use a webhook, then download your generated video.



## Why Developers Choose RunAPI

- **One Key, All Models** - Stop juggling API keys. One integration gives you access to 76 video models across all providers.
- **15-25% Cost Savings** - Our volume agreements with providers mean lower prices than going direct. No markup on top.
- **Automatic Failover** - If a provider goes down, we route to the next best option. Your app stays up.
- **OpenAI-Compatible** - Drop-in replacement for OpenAI SDK. Change one line of code to access any model.
- **Real-Time Billing** - Pay only for what you use. Per-request pricing with no minimums. Track costs per model, per project.
- **Data Privacy** - Our Privacy Policy explains how request data and generated content are processed and retained.



### Explore

## More AI APIs

- [Image API](https://runapi.ai/image.md) - Generate, edit, upscale, and remove backgrounds with image models through one API. [Learn more](https://runapi.ai/image.md)
- [Music API](https://runapi.ai/music.md) - Create full tracks, instrumentals, and stems through one AI music generation API. [Learn more](https://runapi.ai/music.md)
- [Audio API](https://runapi.ai/audio.md) - Text to speech, voice cloning, transcription, and sound effects through one public audio API. [Learn more](https://runapi.ai/audio.md)
- [LLM API](https://runapi.ai/llm.md) - Access RunAPI language models through one OpenAI-compatible API endpoint. [Learn more](https://runapi.ai/llm.md)



## What teams build with it

**Marketing Content**

Spin up ad variants per audience segment. One prompt template, one key, per-second billing.

**Social Media**

Vertical clips at volume. Queue hundreds of tasks and collect results over webhooks.

**Product Demos**

Animate product stills into motion loops without a shoot or a motion designer.

**Agent Workflows**

Let an agent call video generation as a tool through the MCP server with no custom API code.




## RunAPI vs alternatives

| Feature | RunAPI | Runway Direct | Replicate |
|---|---|---|---|
| Video models | 76 | 1 provider | ~15 |
| Pricing | 15-25% below official | Official rate | Market rate |
| Async + webhooks | ✓ | Partial | ✓ |
| Unified credits | ✓ | ✗ | ✓ |
| MCP server | ✓ | ✗ | ✗ |
| Provider failover | ✓ | ✗ | ✗ |



## Video API questions

### Which video models can I access?

Access Kling, Seedance, Veo, Runway, Hailuo, and more with one API key. Browse the model catalog for available versions, capabilities, and prices.
### Can I animate images, edit videos, or extend clips?

Yes, with a model that supports the relevant endpoint. Image-to-video, video editing, extension, upscaling, and lip sync have different input requirements; check the selected model’s documentation.
### How is video billed?

Rates and billing units vary by model and endpoint. Duration, resolution, and other options can affect the price. Check the catalog rate and request parameters before submitting a task.
### How do I receive the generated video?

Video generation runs asynchronously. Submit a request, save the returned task ID, then poll the task endpoint or configure a webhook. The completed task contains the video result.
### Which durations and resolutions are supported?

Supported durations, resolutions, and aspect ratios depend on the model and operation. Use the options listed in the endpoint documentation; settings shown in the playground are not available on every model.
### How do I start using the Video API?

Sign in, create an API key, and choose a video model. Use the quickstart code or an SDK to submit a request, then retrieve the result by polling or webhook.


## Ship video generation this week

One API key for video generation, editing, and extension. Choose a model, check its price, and start building.

- [Get API Key](https://runapi.ai/login)
- [Read the docs](https://runapi.ai/docs/guides)

---

## More from RunAPI

- [Home](https://runapi.ai/.md)
### Product
- [Model Catalog](https://runapi.ai/models.md)
- [Pricing](https://runapi.ai/pricing.md)
- [Providers](https://runapi.ai/models#all-models)
### Developers
- [Documentation](https://runapi.ai/docs/guides)
- [SDKs](https://runapi.ai/sdk.md)
- [CLI](https://runapi.ai/cli.md)
- [MCP Server](https://runapi.ai/mcp.md)
### Guides
- [Claude Code vs Cursor](https://runapi.ai/claude-code-vs-cursor.md)
- [Cursor API Setup](https://runapi.ai/cursor-api-setup.md)
- [RunAPI vs OpenRouter](https://runapi.ai/openrouter-alternative.md)
### Company
- [Enterprise](https://runapi.ai/contact.md)
- [Contact](https://runapi.ai/contact.md)
### Legal
- [Terms](https://runapi.ai/terms.md)
- [Privacy](https://runapi.ai/privacy.md)
- [Site index for agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/icon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "SoftwareApplication",
    "name": "AI Video Generation API",
    "applicationCategory": "DeveloperApplication",
    "description": "Generate video with Kling, Seedance, Veo, Runway, and more through one video generation API. One API key. Pay-as-you-go.",
    "url": "https://runapi.ai/video"
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Which video models can I access?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Access Kling, Seedance, Veo, Runway, Hailuo, and more with one API key. Browse the model catalog for available versions, capabilities, and prices."
        }
      },
      {
        "@type": "Question",
        "name": "Can I animate images, edit videos, or extend clips?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Yes, with a model that supports the relevant endpoint. Image-to-video, video editing, extension, upscaling, and lip sync have different input requirements; check the selected model’s documentation."
        }
      },
      {
        "@type": "Question",
        "name": "How is video billed?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Rates and billing units vary by model and endpoint. Duration, resolution, and other options can affect the price. Check the catalog rate and request parameters before submitting a task."
        }
      },
      {
        "@type": "Question",
        "name": "How do I receive the generated video?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Video generation runs asynchronously. Submit a request, save the returned task ID, then poll the task endpoint or configure a webhook. The completed task contains the video result."
        }
      },
      {
        "@type": "Question",
        "name": "Which durations and resolutions are supported?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Supported durations, resolutions, and aspect ratios depend on the model and operation. Use the options listed in the endpoint documentation; settings shown in the playground are not available on every model."
        }
      },
      {
        "@type": "Question",
        "name": "How do I start using the Video API?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sign in, create an API key, and choose a video model. Use the quickstart code or an SDK to submit a request, then retrieve the result by polling or webhook."
        }
      }
    ]
  }
]
```
