Login
Back to Blog
EnglishTutorial

AI Video Generation APIs Guide 2026 - Sora 2, Veo3, Kling, Luma, and Runway Compared

Complete guide to AI video generation APIs including OpenAI Sora 2, Google Veo3, Kling 2.5, Luma Dream Machine, and Runway Gen-4. Code examples and pricing included.

C
Crazyrouter Team
January 22, 2026 / 1929 views
Share:
AI Video Generation APIs Guide 2026 - Sora 2, Veo3, Kling, Luma, and Runway Compared

AI video generation has reached production quality. This guide covers all major video generation APIs available through Crazyrouter, with code examples and best practices.

Supported Video Generation Models#

ProviderModelsPriceStrengths
OpenAIsora-2, sora-2-pro$0.30-0.50Consistency, physics
Googleveo3, veo3.1, veo3-pro$0.30-0.50Quality, audio
Kuaishoukling-v2-5-turbo, kling-v2-6$0.30Speed, quality
Lumaluma_video_api$0.30Creativity
Runwayrunwayml-gen4_turbo$0.30Control, editing

OpenAI Sora 2 API#

Sora Models Available#

ModelPriceUse Case
sora-2$0.30Standard video
sora-2-pro$0.50High quality
sora-2-landscape$0.3016:9 format
sora-2-portrait$0.309:16 format
sora-2-landscape-hd$0.40HD landscape
sora-2-portrait-hd$0.40HD portrait
sora-2-characters$0.35Character reference

Create Video (Unified Format)#

bash
curl -X POST "https://crazyrouter.com/v1/video/create" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "model": "sora-2",
    "prompt": "A cinematic shot of a golden retriever running through a field of sunflowers at sunset, slow motion, 4K quality",
    "duration": 10,
    "aspect_ratio": "16:9"
  }'

Query Video Status#

bash
curl "https://crazyrouter.com/v1/video/query?task_id={task_id}" \
  -H "Authorization: Bearer sk-your-api-key"

OpenAI Native Format#

bash
# Create video
curl -X POST "https://crazyrouter.com/v1/videos" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "model": "sora-2",
    "prompt": "A timelapse of a flower blooming in a garden"
  }'

# Query status
curl "https://crazyrouter.com/v1/videos/{video_id}" \
  -H "Authorization: Bearer sk-your-api-key"

# Download video
curl "https://crazyrouter.com/v1/videos/{video_id}/content" \
  -H "Authorization: Bearer sk-your-api-key" \
  -o output.mp4

Sora with Character Reference#

bash
# First create a character
curl -X POST "https://crazyrouter.com/sora/v1/characters" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "name": "Hero Character",
    "image_url": "https://example.com/character.jpg"
  }'

# Then use in video
curl -X POST "https://crazyrouter.com/v1/videos" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "model": "sora-2-characters",
    "prompt": "The character walks through a futuristic city",
    "character_id": "char_abc123"
  }'

Google Veo3 API#

Veo3 generates high-quality videos with native audio:

Veo Models Available#

ModelPriceUse Case
veo3$0.30Standard
veo3.1$0.35Latest version
veo3-pro$0.50High quality
veo3-fast$0.20Quick generation
veo3.1-fast$0.25Fast latest
veo3-frames$0.25Frame control

Text-to-Video#

bash
curl -X POST "https://crazyrouter.com/fal-ai/veo3" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "A drone shot flying over the Grand Canyon at sunrise, cinematic, 4K"
  }'

Veo3 Fast (Quicker Generation)#

bash
curl -X POST "https://crazyrouter.com/fal-ai/veo3/fast" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "Ocean waves crashing on a rocky shore"
  }'

Image-to-Video#

bash
curl -X POST "https://crazyrouter.com/fal-ai/veo3/image-to-video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "The person in the image starts walking forward",
    "image_url": "https://example.com/person.jpg"
  }'

Check Veo3 Status#

bash
curl "https://crazyrouter.com/fal-ai/veo3/requests/{request_id}" \
  -H "Authorization: Bearer sk-your-api-key"

Kling API#

Kling offers excellent quality with fast generation:

Kling Models Available#

ModelPriceUse Case
kling-v2-5-turbo$0.30Fast, quality
kling-v2-6$0.35Latest version
kling-v2-master$0.40Best quality
kling-v1-6$0.25Stable
kling-video-o1$0.35Reasoning

Text-to-Video#

bash
curl -X POST "https://crazyrouter.com/kling/v1/videos/text2video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "A cat playing with a ball of yarn in a cozy living room",
    "duration": "5",
    "aspect_ratio": "16:9"
  }'

Image-to-Video#

bash
curl -X POST "https://crazyrouter.com/kling/v1/videos/image2video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "The landscape comes alive with moving clouds",
    "image_url": "https://example.com/landscape.jpg",
    "duration": "5"
  }'

Multi-Image Reference#

bash
curl -X POST "https://crazyrouter.com/kling/v1/videos/multi-image2video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "These characters meet and shake hands",
    "image_urls": ["https://example.com/char1.jpg", "https://example.com/char2.jpg"]
  }'

Video Extension#

bash
curl -X POST "https://crazyrouter.com/kling/v1/videos/video-extend" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "video_url": "https://example.com/original.mp4",
    "prompt": "Continue the scene with the character walking away"
  }'

Lip Sync#

bash
curl -X POST "https://crazyrouter.com/kling/v1/videos/lip-sync" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "video_url": "https://example.com/face.mp4",
    "audio_url": "https://example.com/speech.mp3"
  }'

Luma Dream Machine API#

Generate Video#

bash
curl -X POST "https://crazyrouter.com/luma/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "A magical forest with glowing mushrooms and fireflies at night"
  }'

Extend Video#

bash
curl -X POST "https://crazyrouter.com/luma/generations/{task_id}/extend" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "prompt": "The camera slowly zooms out to reveal more of the forest"
  }'

Runway Gen-4 API#

Runway Models#

ModelPriceDuration
runwayml-gen4_turbo-5$0.305 seconds
runwayml-gen4_turbo-10$0.5010 seconds
runwayml-gen3a_turbo-5$0.255 seconds
runwayml-gen3a_turbo-10$0.4010 seconds

Image-to-Video#

bash
curl -X POST "https://crazyrouter.com/runwayml/v1/image_to_video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "promptImage": "https://example.com/image.jpg",
    "promptText": "The scene comes to life with gentle movement"
  }'

Pricing Comparison#

ModelPrice per Video
sora-2$0.30
sora-2-pro$0.50
veo3$0.30
veo3-pro$0.50
veo3-fast$0.20
kling-v2-5-turbo$0.30
luma_video_api$0.30
runwayml-gen4_turbo-5$0.30

Pricing Disclaimer: The prices shown in this article are for demonstration purposes only and may change at any time. Actual billing will be based on the real-time prices displayed when you make your request.

Python Helper Class#

python
import requests
import time

# Required: User-Agent header for Cloudflare/WAF
default_headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"
}

class VideoGenerator:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https://crazyrouter.com"
        self.headers = {
            **default_headers,
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }

    def create_video(self, prompt, model="sora-2"):
        response = requests.post(
            f"{self.base_url}/v1/video/create",
            headers=self.headers,
            json={
                "model": model,
                "prompt": prompt
            }
        )
        return response.json()

    def wait_for_video(self, task_id, timeout=300):
        start_time = time.time()
        while time.time() - start_time < timeout:
            response = requests.get(
                f"{self.base_url}/v1/video/query",
                headers=self.headers,
                params={"task_id": task_id}
            )
            data = response.json()
            if data.get("status") == "completed":
                return data.get("video_url")
            elif data.get("status") == "failed":
                raise Exception(f"Video generation failed: {data}")
            time.sleep(5)
        raise TimeoutError("Video generation timed out")

# Usage
generator = VideoGenerator("sk-your-api-key")
task = generator.create_video("A beautiful sunset timelapse over the ocean")
video_url = generator.wait_for_video(task["task_id"])
print(f"Video ready: {video_url}")

Use Case Recommendations#

Use CaseRecommended Model
Marketing videosSora 2 Pro or Veo3 Pro
Social media contentKling (fast) or Veo3 Fast
Artistic/creativeLuma Dream Machine
Product demosRunway Gen-4
Talking head videosKling Lip Sync
Quick previewsVeo3 Fast

Getting Started#

  1. Sign up at Crazyrouter
  2. Get your API key from the console
  3. Choose the video model that fits your needs
  4. Start generating videos

For questions, contact support@crazyrouter.com

Implementation Guides

Related Posts

GPT Agent Mode Complete Guide: Autonomous AI Tasks in 2026Tutorial

GPT Agent Mode Complete Guide: Autonomous AI Tasks in 2026

"Learn how GPT Agent Mode works, how to use it via API, and how it compares to standard chat completions for autonomous task execution."

Feb 27
AI Meme Generator & Coloring Book Creator with GPT-image-2 — Fun Projects That Actually Make MoneyTutorial

AI Meme Generator & Coloring Book Creator with GPT-image-2 — Fun Projects That Actually Make Money

Build an AI meme generator and coloring book page creator using GPT-image-2 via Crazyrouter API. Two fun, monetizable projects with full code.

May 1
Claude Code in CI/CD: Automate Code Reviews, Tests, and Deployments in 2026Tutorial

Claude Code in CI/CD: Automate Code Reviews, Tests, and Deployments in 2026

"Learn how to integrate Claude Code into your CI/CD pipelines for automated code reviews, test generation, and deployment validation. Complete guide with GitHub Actions, GitLab CI, and Jenkins examples."

Apr 13
"Google Veo3 API Guide 2026: Async Video Jobs, Audio, Webhooks, and Cost Control"Tutorial

"Google Veo3 API Guide 2026: Async Video Jobs, Audio, Webhooks, and Cost Control"

"Learn how to integrate Google Veo3 API workflows with async jobs, webhooks, audio-aware prompts, retries, and a pricing model."

Aug 22
Unstable Diffusion API Guide: Access Advanced Image Generation ModelsTutorial

Unstable Diffusion API Guide: Access Advanced Image Generation Models

Complete guide to using Unstable Diffusion and open-source image generation models via API. Learn about model options, API integration, and how to generate uncensored AI images.

Feb 22
How to Deploy Clawdbot: Build Your Free 24/7 AI Assistant in 5 MinutesTutorial

How to Deploy Clawdbot: Build Your Free 24/7 AI Assistant in 5 Minutes

Want a personal AI assistant that runs 24/7, connects to WhatsApp, Telegram, and Discord, and costs almost nothing to host? Meet Clawdbot - an open-source project that makes this surprisingly easy.

Jan 26