REST API · Video Generation

i2v API vs Runway: Image-to-Video API Comparison

When evaluating the i2v API vs Runway for programmatic photo animation, the difference comes down to price and simplicity. PixelAPI's image-to-video API turns a still photo into a 1080p MP4 clip with one multipart POST — no GUI, no subscription credits that reset monthly, no per-second billing surprises. $0.055 per 5-second clip — 4.5× cheaper than Runway Gen-4 Turbo and more than 10× cheaper than Runway Gen-4 — with automatic credit refunds for any failed generation. The same API key that animates photos also handles background removal, image editing, audio, and 3D — one account, one dashboard.

$0.055 / 5s clip 4.5× cheaper than Runway Turbo 720p & 1080p MP4 Image-to-video + Text-to-video Flat per-clip pricing Paid plans from $10/mo
Get an API key Quick start See pricing API docs
Video generation is available on Starter ($10/mo), Pro ($50/mo), and Scale ($200/mo) paid plans. Free accounts have access to all image, audio, and 3D APIs. Compare plans →

i2v API vs Runway — why teams switch to PixelAPI

Runway is a capable video platform with a well-documented REST API. The gap opens at pricing and billing model. Runway Gen-4 Turbo charges $0.05 per second of generated video — that is $0.25 for a 5-second clip, before any subscription overhead. Runway Gen-4 runs $0.12/second ($0.60/5s). At PixelAPI's flat $0.055 per 5-second MP4, you generate the same video for a fraction of the cost and with no per-second variance affecting your budget projections.

Flat per-clip billing — no per-second math

Runway bills by the second of generated video. A 5-second clip at Gen-4 Turbo costs $0.25 regardless of queue time; at Gen-4 it costs $0.60. PixelAPI's flat $0.055 per clip means your cost scales predictably — no surprises when renders run long or resolution affects throughput.

4.5× cheaper on comparable quality

At $0.055 versus Runway Gen-4 Turbo's $0.25 per 5-second clip, a batch of 1,000 animated product photos costs $55 on PixelAPI versus $250 on Runway Turbo — a $195 difference that compounds fast at scale. Compare plans to see the full volume pricing.

One key for the whole pipeline

The same PixelAPI key that animates a photo also removes its background, upscales it, restores faces, generates audio, and builds 3D assets. Engineering teams managing multiple AI providers often consolidate onto PixelAPI to simplify vendor management and billing.

Async by design — no blocked servers

Video renders take 90–150 seconds. The endpoint returns immediately with a job ID so your server never blocks. Poll or register a webhook. Python and Node SDKs handle the polling loop automatically with built-in retry on 429.

Quick start — animate a photo in one call

Sign up, upgrade to a paid plan, and POST your image with a text prompt. The endpoint returns a generation ID immediately; poll GET /v1/seedance/{id} until status=completed, then download the MP4 from output_url.

# Step 1: Submit image-to-video job
curl -X POST https://api.pixelapi.dev/v1/seedance/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "prompt=Slow cinematic zoom, warm golden-hour lighting, subtle parallax motion" \
  -F "resolution=1080p" \
  -F "duration=5" \
  -F "camera_fixed=false" \
  -F "[email protected]"
# Response: {"generation_id":"uuid","status":"processing","estimated_seconds":120,...}

# Step 2: Poll until completed (every 5 seconds)
curl https://api.pixelapi.dev/v1/seedance/UUID \
  -H "Authorization: Bearer YOUR_API_KEY"
# Response: {"status":"completed","output_url":"https://cdn.pixelapi.dev/videos/uuid.mp4"}
pip install pixelapi
---
import time
from pixelapi import PixelAPI

client = PixelAPI(api_key="YOUR_API_KEY")

# Submit image-to-video job
job = client.video.animate(
    image="product.jpg",
    prompt="Slow cinematic zoom, warm golden-hour lighting, subtle parallax motion",
    resolution="1080p",
    duration=5,
)
print(f"Job started: {job.generation_id}")

# Poll until done — SDK handles this automatically
result = client.video.wait(job.generation_id)
result.save("product_animated.mp4")
print(f"Video saved: product_animated.mp4")
npm install pixelapi
---
import { PixelAPI } from "pixelapi";
import { readFileSync } from "fs";

const client = new PixelAPI({ apiKey: process.env.PIXELAPI_KEY });

const result = await client.video.animate({
  image: readFileSync("product.jpg"),
  prompt: "Slow cinematic zoom, warm golden-hour lighting, subtle parallax motion",
  resolution: "1080p",
  duration: 5,
});

await result.save("product_animated.mp4");
console.log("Video saved:", result.outputUrl);
composer require pixelapi/pixelapi
---
<?php
use PixelAPI\Client;

$client = new Client(getenv("PIXELAPI_KEY"));

$job = $client->video()->animate([
    "image"      => "product.jpg",
    "prompt"     => "Slow cinematic zoom, warm golden-hour lighting",
    "resolution" => "1080p",
    "duration"   => 5,
]);

$result = $client->video()->wait($job->generation_id);
file_put_contents("product_animated.mp4", $result->download());
gem install pixelapi
---
require "pixelapi"

client = PixelAPI::Client.new(api_key: ENV["PIXELAPI_KEY"])

job = client.video.animate(
  image:      "product.jpg",
  prompt:     "Slow cinematic zoom, warm golden-hour lighting",
  resolution: "1080p",
  duration:   5
)

result = client.video.wait(job.generation_id)
File.binwrite("product_animated.mp4", result.download)
go get github.com/pixelapi/pixelapi-go
---
import "github.com/pixelapi/pixelapi-go"

client := pixelapi.New("YOUR_API_KEY")

job, err := client.Video.Animate(pixelapi.I2VRequest{
    Image:      "product.jpg",
    Prompt:     "Slow cinematic zoom, warm golden-hour lighting",
    Resolution: "1080p",
    Duration:   5,
})
if err != nil { panic(err) }

result, err := client.Video.Wait(job.GenerationID)
if err != nil { panic(err) }
result.Save("product_animated.mp4")

Pricing comparison — i2v API vs Runway, Pika, and Kaiber

ProviderAPI typePer 5-second clipResolutionsPlans
PixelAPI REST API (developer-first) $0.055 720p · 1080p Starter $10/mo · Pro $50/mo · Scale $200/mo
Runway Gen-4 Turbo REST API $0.25 ($0.05/sec × 5s) Varies by model Credits at $0.01/credit; subscription tiers from $15/mo
Runway Gen-4 REST API $0.60 ($0.12/sec × 5s) Varies by model Credits at $0.01/credit; same subscription tiers
Pika Subscription (limited API beta) see pika.art/pricing 480p · 720p · 1080p Subscription-only; limited free tier
Kaiber Subscription (web + beta API) see kaiber.ai/pricing Varies by model Paid from $29/mo; no per-call API pricing

Pricing verified from each rival's public pricing page May 2026. Runway credits priced at $0.01/credit from the Runway developer portal; Gen-4 Turbo costs 5 credits/second and Gen-4 costs 12 credits/second, making a 5-second clip $0.25 and $0.60 respectively. Pika and Kaiber use subscription credit models without transparent per-call API pricing — see their pricing pages for current rates. PixelAPI's per-clip price is set at exactly half the cheapest comparable i2v API rate per our pricing principle.

What you get back

MP4 video — CDN-hosted download URL

The completed response includes an output_url pointing to an MP4 on our CDN. Download it, push it to your own storage bucket, or embed it directly in your application. No expiry on the download link within 24 hours of generation.

720p or 1080p resolution

Set resolution=720p for fast rendering and smaller file sizes, or resolution=1080p for production-quality social and catalog videos. Both cost the same: 55 credits ($0.055) per generation.

Fixed 5-second clip

Each generation produces a 5-second MP4. Chain multiple generations for longer sequences, or merge clips programmatically using downstream tooling. The async job pattern makes batching straightforward.

Camera control parameter

Pass camera_fixed=true to lock the virtual camera and animate only the subject — ideal for product photos and portraits. Pass false (default) for natural camera drift, zoom, and parallax — great for cinematic establishing shots.

Common workflows using the i2v API vs Runway

The Image-to-Video API powers these production-grade workflows. Each links to a setup guide:

Social media content

Animate product photos into short-form clips for Instagram Reels, TikTok, and YouTube Shorts — triggered automatically on every new image upload.

Marketing agencies

Batch-animate client product shoots into video ads. Integrate with CMS upload events for hands-free video production at scale.

E-commerce catalogs

Turn static product photos into looping MP4s for product detail pages. Compatible with Shopify, BigCommerce, and WooCommerce storefronts.

AI content pipelines

Chain image generation → background removal → image-to-video in a single pipeline. One API key, one billing account, one rate-limit tier.

Campaign automation

Trigger video generation from a webhook on content approval. Fire-and-forget async job completes in the background without blocking your server.

Product catalog video

Convert an entire product image database into a video library overnight with a simple batch loop and the Python SDK.

Integrations

Connect the Image-to-Video API to the tools your team already uses:

Zapier

Trigger video animation from any Zapier-connected app — Google Drive, Dropbox, Airtable — with no code and no server required.

Make.com

Build multi-step scenarios that animate images, post to social channels, and update databases in one automated flow.

Shopify

Auto-animate product images on upload via a Shopify webhook and write the MP4 URL back to the product metafield.

Webflow

CMS-driven video generation for collection items. Animate the hero image and embed the MP4 directly on the product page.

Next.js

Server-side route handler that submits an i2v job and streams the output URL back to the browser via SSE or polling endpoint.

WooCommerce

WordPress plugin pattern for animating product images on publish and storing the result in the WP media library.

Comparison vs alternatives

vs Kaiber

Kaiber is consumer-first with a beta API on subscription pricing. PixelAPI is developer-first with flat per-clip pricing, no monthly seat fees, and SDKs for 6 languages.

vs Replicate

Replicate charges per-second of compute time with variable billing. PixelAPI charges a flat $0.055 per 5-second clip regardless of render duration — no billing surprises.

vs fal.ai

fal.ai offers raw model access. PixelAPI adds a managed async layer: job queuing, auto-refunds on failure, polling SDKs, and a single billing dashboard for all media types.

vs Replicate image models

The same PixelAPI key covers image and video — no second account or second billing setup when you expand from image editing to video generation.

Rate limits & error handling

Default 60 requests/minute on Starter, 600 on Pro and Scale. Exceeding the limit returns HTTP 429 with a Retry-After header. Recommended: exponential backoff starting at 5s, doubling on each retry up to 60s. The Python and Node SDKs handle this automatically.

# Python SDK auto-retries 429 with backoff
from pixelapi import PixelAPI
client = PixelAPI(api_key="...", max_retries=4)

# Image-to-video — auto-retries on 429, auto-refunds credits on failure
job = client.video.animate(image="product.jpg", prompt="cinematic zoom, warm light")
result = client.video.wait(job.generation_id)
result.save("output.mp4")

If a video generation fails for any reason, the job transitions to status=failed and your credits are automatically refunded. Retrying is always safe — each submission creates an independent job with its own generation ID. Contact [email protected] for volume arrangements above the default limits.

Frequently asked questions

How does the i2v API compare to Runway for programmatic video generation?

Both PixelAPI and Runway offer REST APIs for image-to-video generation. The key differences are price and billing model. PixelAPI charges a flat $0.055 per 5-second clip — 4.5× cheaper than Runway Gen-4 Turbo ($0.25/5s at $0.05/sec) and more than 10× cheaper than Runway Gen-4 ($0.60/5s at $0.12/sec). PixelAPI also bundles image editing, background removal, audio, and 3D under the same API key, eliminating multiple accounts and billing setups for teams building multi-modal AI pipelines.

What does the Image-to-Video API cost compared to Runway?

$0.055 per 5-second MP4 video (55 credits at $0.001/credit). Runway Gen-4 Turbo costs $0.25/5s and Gen-4 costs $0.60/5s. At 1,000 clips/month: PixelAPI = $55, Runway Turbo = $250, Runway Gen-4 = $600. Paid plans start at $10/month (10,000 credits ≈ 181 videos).

How long does it take to generate a video from an image?

Most image-to-video generations complete in 90–150 seconds. The API is async: POST your image and prompt, get back a generation ID immediately, then poll GET /v1/seedance/{id} every 5 seconds until status=completed. The Python and Node SDKs handle this polling loop automatically.

What resolution and duration can I generate?

Supported resolutions are 720p and 1080p. Duration is fixed at 5 seconds per clip. Pass resolution=720p or resolution=1080p. Both resolutions cost the same: 55 credits ($0.055) per generation. There is no additional charge for higher resolution.

What output format does the Image-to-Video API return?

The API returns an output_url pointing to an MP4 file hosted on our CDN. Download it, transfer it to your own S3 bucket, or serve it directly from your application. The URL is available in the GET /v1/seedance/{id} response once status=completed.

Does the i2v API require a paid plan?

Yes. Video generation is available on paid plans: Starter ($10/month, 10,000 credits), Pro ($50/month, 60,000 credits), and Scale ($200/month, 300,000 credits). Free accounts have full access to all image, audio, and 3D APIs. Upgrade at pixelapi.dev/app.

Is there a Python SDK for the Image-to-Video API?

Yes — pip install pixelapi. Official SDKs are available for Python, Node.js (npm install pixelapi), PHP (Composer), Ruby (Gem), Go (go get github.com/pixelapi/pixelapi-go), and a Java/Kotlin client. All SDKs handle authentication, async polling, retry-on-429, and file download automatically.

Can I lock the camera position during animation?

Yes. Pass camera_fixed=true in your request to lock the virtual camera — preventing any pan, zoom, or drift. Useful for product photos and portraits where you want subject motion but not camera movement. Pass false (default) for natural cinematic camera behavior.

What are the rate limits for the i2v API?

Default: 60 requests/minute on Starter, 600 requests/minute on Pro and Scale. Video generation jobs are processed concurrently. Exceeding limits returns HTTP 429 with a Retry-After header. Contact [email protected] for higher-volume arrangements.

What happens if video generation fails?

Failed generations are auto-detected and credits are automatically refunded — you never pay for an empty or broken result. The response shows status=failed with an error_message, and your credits_remaining is restored to its pre-generation value. Each retry is a new independent job.

Get started — image APIs free, video on paid plans Read full API docs Compare all plans