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 / 851 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

AI Palm Reading with GPT-image-2 — Generate Professional Palmistry Analysis from a Single PhotoTutorial

AI Palm Reading with GPT-image-2 — Generate Professional Palmistry Analysis from a Single Photo

Use GPT-image-2 via Crazyrouter API to generate stunning palm reading infographics. Complete code in Python, curl, and Node.js.

May 1
ITutorial

Ideogram AI Guide 2026: Brand Design Automation, API Workflows, and Alternatives

If you searched for **Ideogram AI guide**, you probably do not need another shallow feature list. You need to know what Ideogram AI is, how it compares with alternatives, how to use it in a developer ...

May 26
Seedream 4.0 API Tutorial 2026: Batch Image Pipelines for Marketing TeamsTutorial

Seedream 4.0 API Tutorial 2026: Batch Image Pipelines for Marketing Teams

Learn how to build Seedream 4.0 API image generation pipelines for product mockups, ad creatives, retries, and cost-aware routing.

Jun 5
How to Get a Claude API Key in 2026: Official Setup, Alternatives, and Tested ExamplesTutorial

How to Get a Claude API Key in 2026: Official Setup, Alternatives, and Tested Examples

"Learn how to get a Claude API key in 2026 from Anthropic or through Crazyrouter. Includes official setup steps, tested API examples, common problems, and a direct-vs-gateway comparison."

Mar 15
AI API Latency Optimization: 10 Proven Strategies to Make Your AI Apps FasterTutorial

AI API Latency Optimization: 10 Proven Strategies to Make Your AI Apps Faster

"Reduce AI API latency by 50-80% with these proven optimization strategies. From streaming responses and edge routing to model selection and connection pooling."

Mar 4
Kimi K2 Thinking Model: Complete Developer Guide for Reasoning WorkflowsTutorial

Kimi K2 Thinking Model: Complete Developer Guide for Reasoning Workflows

"Complete guide to Moonshot's Kimi K2 Thinking model. Learn chain-of-thought reasoning, benchmark comparisons, API integration, and cost optimization for production."

May 5