A production REST API that animates any static image into a 5-second MP4 video — one multipart POST, no proprietary SDK required. The open source i2v api api that fits into any pipeline: self-hosted apps, open source repos, SaaS products, and batch automation. $0.20 per 5-second video. 5,000 free trial credits, no credit card required.
Image-to-video (I2V) is the task of generating a short video clip from a single still image. The source image provides the scene: composition, subjects, colors, lighting. The API infers and renders realistic motion — camera drift, environmental movement, subtle subject animation — producing an MP4 that looks like the image came to life.
PixelAPI's I2V endpoint wraps this capability in a simple REST interface with no proprietary client required. POST your image and a text prompt describing the motion. Poll for the result. Download the MP4. It integrates cleanly into open source Python scripts, Node.js servers, PHP back-ends, and any language that can issue an HTTP request.
Sign up, copy your key, and POST your image as multipart/form-data. The endpoint queues the job and returns a generation_id. Poll GET /v1/seedance/{generation_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 "[email protected]" \ -F "prompt=Gentle ocean waves rolling across the beach" \ -F "resolution=720p" \ -F "duration=5" \ -F "camera_fixed=true" # Response: {"generation_id":"uuid","status":"processing","credits_used":200} # Step 2 — poll until completed curl https://api.pixelapi.dev/v1/seedance/UUID \ -H "Authorization: Bearer YOUR_API_KEY" # Response: {"status":"completed","output_url":"https://...mp4"}
pip install pixelapi
---
import time
from pixelapi import PixelAPI
client = PixelAPI(api_key="YOUR_API_KEY")
# Submit image-to-video job
job = client.image_to_video(
image="photo.jpg",
prompt="Gentle ocean waves rolling across the beach",
resolution="720p",
)
# SDK polls automatically; or poll manually:
while job.status != "completed":
time.sleep(10)
job.refresh()
job.save("output.mp4") # download the 5-second MP4
npm install pixelapi
---
import { PixelAPI } from "pixelapi";
import fs from "fs";
const client = new PixelAPI({ apiKey: process.env.PIXELAPI_KEY });
const job = await client.imageToVideo({
image: fs.createReadStream("./photo.jpg"),
prompt: "Gentle ocean waves rolling across the beach",
resolution: "720p",
});
// SDK polls and resolves when completed
await job.save("output.mp4");
console.log("Video saved:", job.outputUrl);
composer require pixelapi/pixelapi
---
<?php
use PixelAPI\Client;
$client = new Client(getenv("PIXELAPI_KEY"));
$job = $client->imageToVideo([
"image" => "photo.jpg",
"prompt" => "Gentle ocean waves rolling across the beach",
"resolution" => "720p",
]);
// Poll until done
while ($job->status !== "completed") {
sleep(10);
$job->refresh();
}
file_put_contents("output.mp4", $job->download());
gem install pixelapi
---
require "pixelapi"
client = PixelAPI::Client.new(api_key: ENV["PIXELAPI_KEY"])
job = client.image_to_video(
image: "photo.jpg",
prompt: "Gentle ocean waves rolling across the beach",
resolution: "720p"
)
job.wait_until_complete # polls with backoff
File.binwrite("output.mp4", job.download)
go get github.com/pixelapi/pixelapi-go
---
import "github.com/pixelapi/pixelapi-go"
client := pixelapi.New("YOUR_API_KEY")
job, err := client.ImageToVideo(pixelapi.I2VRequest{
Image: "photo.jpg",
Prompt: "Gentle ocean waves rolling across the beach",
Resolution: "720p",
})
if err != nil { panic(err) }
result, err := job.Wait() // polls until completed or error
if err != nil { panic(err) }
result.Save("output.mp4")
| Provider | Free tier | Per 5-second video | API access |
|---|---|---|---|
| PixelAPI | 5,000 credits (trial), no card | $0.20 | REST · multipart · any language |
| Runway | Limited watermarked exports | ~$0.48 (Max plan, Gen-4.5 model) | Web UI + limited API beta |
| Pika | Credits via paid packs only | ~$1.35 (Creator plan, 720p) | Web UI primarily |
| Kaiber | — | see kaiber.ai/pricing | Web UI |
Pricing verified from each rival's public pricing page October 2026. Runway ~$0.48 calculated at Max plan ($76/month, 9,500 credits) for a Gen-4.5 60-credit 5-second clip. Pika ~$1.35 calculated at Creator plan ($35/month, 3,150 credits) for a 122-credit Seedance 2.5 720p video. PixelAPI's per-video price is cost-plus at $0.20 — no subscription required, pay per generation.
The output is a standard H.264 MP4 file — compatible with every browser, video editor, social media platform, and CDN. No proprietary format conversion needed.
Pass resolution=720p (default) or resolution=1080p to control output quality. Note: I2V jobs are capped at 720p to preserve subject identity.
The output_url in the completion response is a direct HTTPS link to the MP4. Download it, pipe it to your CDN, or serve it directly. URLs are valid for 48 hours.
Each response includes generation_id, processing_ms, and credits_used for billing reconciliation and audit logs.
| Parameter | Type | Default | Description |
|---|---|---|---|
image | file (multipart) | — | Source image (JPEG or PNG). Required for I2V mode. |
prompt | string | required | Text describing the motion to apply (max 2,000 chars). |
resolution | string | 720p | 720p or 1080p. I2V is capped at 720p. |
duration | integer | 5 | Clip length in seconds. Currently fixed at 5. |
camera_fixed | boolean | true | Lock camera position. Recommended for products and portraits. |
The I2V API is the foundation for these production workflows. Each links to a setup guide:
Animate product photos and brand images for Reels, TikTok, and Shorts — without a video team.
Convert client still photography into animated ad creatives at scale.
Chain image generation + I2V in a single pipeline: generate the image, then animate it automatically.
Turn flat product photos into short lifestyle clips for listing pages and ads.
Animated thumbnails lift click-through rates on product marketplaces.
Process hundreds of client assets overnight via the REST API.
More use-case guides: all industries →
Trigger I2V jobs from any Zapier workflow — no code required.
Drag-and-drop image-to-video automation in Make scenarios.
Animate product images on upload via Shopify webhook + REST.
Generate animated hero videos for Webflow CMS pages.
pip install pixelapi — handles upload, polling, and retry automatically.
npm install pixelapi — TypeScript types included, works in Next.js and Express.
Predictable $0.20/video vs Replicate's per-second compute billing. No cold-start wait. Fixed output format.
PixelAPI I2V is a dedicated image-to-video endpoint vs Replicate's general-purpose model runner — simpler integration, one price.
PixelAPI at $0.20/video vs Runway Max plan at ~$0.48/video. PixelAPI offers a clean REST API; Runway is primarily a web product with a limited API beta.
PixelAPI at $0.20/video vs Pika at ~$1.35/video on the Creator plan. PixelAPI charges per generation with no monthly subscription required.
20 requests/minute on the free trial, 60 on Starter, 120 on Pro, and 300 on Scale. Parallel concurrent jobs: 3 / 10 / 20 / 50 respectively (see pixelapi.dev/docs/parallel-processing.html). Exceeding the rate limit returns HTTP 429 with a Retry-After header. Recommended: exponential backoff starting at 10s, doubling on each retry up to 120s. The Python and Node.js SDKs handle this automatically.
Video generation is an asynchronous operation. Never poll more frequently than every 10 seconds — the job takes 2–3 minutes minimum and aggressive polling wastes rate-limit quota.
# Python SDK with automatic retry on 429
from pixelapi import PixelAPI
client = PixelAPI(api_key="...", max_retries=4)
job = client.image_to_video(image="photo.jpg", prompt="sunrise timelapse")
# SDK polls with 10s interval and handles 429 backoff automatically
job.wait_until_complete()
job.save("output.mp4")
Common error codes:
| HTTP status | Error code | Meaning |
|---|---|---|
| 400 | invalid_image | Image could not be decoded — check format and file integrity. |
| 400 | content_policy | Prompt or image was rejected by the content safety filter. |
| 402 | paid_plan_required | Video generation requires at least the Starter plan. |
| 402 | insufficient_credits | Balance too low. Top up at pixelapi.dev/pricing. |
| 429 | rate_limit_exceeded | Too many requests. Retry after the Retry-After header value. |
| 503 | service_unavailable | Transient upstream error. Retry after 30s. |
An I2V (image-to-video) API converts a static image into a short animated video via a REST endpoint. "Open source-compatible" means you can integrate it into open source projects, self-hosted apps, and public repositories — no proprietary runtime or vendor-specific CLI needed. PixelAPI's I2V API accepts any JPEG or PNG and returns a 5-second MP4 with natural motion applied to the scene.
$0.20 per 5-second video (200 credits at $0.001/credit). New accounts get 5,000 free trial credits — enough for 25 test videos — with no credit card required. After the trial, upgrade to Starter ($10) or any paid plan to continue. Credits never expire.
POST your image and a motion prompt to https://api.pixelapi.dev/v1/seedance/generate as multipart/form-data. The API returns a generation_id. Poll GET /v1/seedance/{generation_id} every 10–15 seconds until status=completed, then download the MP4 from output_url. Full code examples in 6 languages are in the Quick Start section above.
JPEG and PNG are supported. The API automatically converts RGBA or palette-mode PNGs to RGB before processing. Maximum recommended input resolution is 4096×4096 pixels. Very small images (under 256px on either side) may produce lower-quality motion.
The output is a 5-second MP4 (H.264) at 720p or 1080p. The video applies natural motion to the scene — camera movement, environmental effects, subtle subject animation — while preserving the identity of faces, brands, and objects from the source image. No watermark is added to paid-plan outputs.
Typical generation time is 2–3 minutes for a 720p 5-second clip. The API is asynchronous: submit the job, then poll for results every 10–15 seconds. There is no cold-start delay — the endpoint stays warm. The Python and Node.js SDKs poll automatically.
Video generation requires at least the Starter plan ($10/month or a one-time $10 credit top-up). New accounts get 5,000 free trial credits — enough for 25 test videos — before any payment is needed. The trial requires no credit card and starts automatically on your first API call.
20 requests/minute on the free trial, 60 on Starter, 120 on Pro, and 300 on Scale, with 3 / 10 / 20 / 50 concurrent parallel jobs respectively. Exceeding the limit returns HTTP 429 with a Retry-After header. Higher limits are available for batch workflows — email support@pixelapi.dev with your expected volume.
Yes — pip install pixelapi. The SDK handles image upload, asynchronous polling, retry on 429, and MP4 download in a single method call. Official SDKs are also available for Node.js (npm install pixelapi), PHP (Composer), Ruby (Gem), and Go (go get).
Yes. PixelAPI's terms permit commercial use and integration into open source projects, SaaS products, mobile apps, and enterprise pipelines. GST invoices are issued for all paid accounts — 18% IGST for international clients, CGST/SGST for domestic.
PixelAPI costs $0.20 per 5-second video. Runway's cheapest plan (Max, $76/month) works out to approximately $0.48 per Gen-4.5 5-second clip. Pika's Creator plan ($35/month) is approximately $1.35 per 720p video. PixelAPI also offers a straightforward REST API with no subscription lock-in — pay per generation once you've used the free trial.
Failed jobs are detected automatically. Credits are refunded to your account — you never pay for a video that did not complete successfully. The polling endpoint returns an error_message with details so you can diagnose the issue and retry.