Image-to-video API

Pass image_url with your prompt. VideoGenAPI switches to image-to-video automatically. 16 models currently advertise this mode.

How image-to-video works

Image-to-video uses your image as the first frame and generates the motion described in your prompt. The request is the same as text-to-video with one extra field, so you can add it to an existing integration in minutes.

1. Host the image

Upload a JPG, PNG, GIF or WebP anywhere it is reachable by URL: your CDN, S3, or a signed link.

2. Send image_url + prompt

POST to /api/v1/generate with the model, a motion prompt and image_url. You get a generation_id back immediately.

3. Poll and download

Call GET /api/v1/status/{id} until the status is completed, then download the MP4 from video_url.

Which model for which image?

Your imageRecommended modelWhy
Product shot, packshot, fashion lookbookKling 3Clean 1080p motion, strong on people and products, renders in about half a minute.
Scene with water, fabric, smoke or actionMiniMax H3Physics-accurate motion, synced audio, clips up to 15 seconds, optional end frame.
Hero visual for a campaign, needs soundVeo 3.1 FastMost polished textures and lighting with native audio, 8-second clips.
Many quick variants of one imageSeedance 2Fast renders and a wide style range, included in every plan.

Side-by-side specs and measured generation times: Kling 3 vs MiniMax H3, Kling 3 vs Veo 3.1, all comparisons.

Writing a good motion prompt

  • Describe the motion, not the image. The model already sees the picture. Say what moves: "the camera slowly orbits the bottle", "she turns her head and smiles".
  • Name one camera move. Dolly in, pan left, slow orbit or static shot. Several moves in one clip tend to fight each other.
  • Keep the subject consistent. Avoid asking for new objects or people that are not in the image; the first frame anchors the result.
  • Match the aspect ratio. Use a vertical image for 9:16 social video and a landscape image for 16:9.

Python and JavaScript

import os, time, requests

API = "https://videogenapi.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['VIDEOGEN_API_KEY']}"}

job = requests.post(f"{API}/generate", headers=H, json={
    "model": "kling-3",
    "prompt": "The camera slowly orbits the sneaker, soft studio light",
    "image_url": "https://example.com/sneaker.jpg",
    "duration": 5,
}).json()

while True:
    s = requests.get(f"{API}/status/{job['generation_id']}", headers=H).json()
    if s["status"] in ("completed", "failed"):
        break
    time.sleep(5)
print(s.get("video_url"))
const API = "https://videogenapi.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.VIDEOGEN_API_KEY}`, "Content-Type": "application/json" };

const job = await (await fetch(`${API}/generate`, { method: "POST", headers, body: JSON.stringify({
  model: "minimax-h3",
  prompt: "Waves roll onto the beach, foam catching the light",
  image_url: "https://example.com/beach.jpg",
  duration: 6,
}) })).json();

let s;
do {
  await new Promise(r => setTimeout(r, 5000));
  s = await (await fetch(`${API}/status/${job.generation_id}`, { headers })).json();
} while (!["completed", "failed"].includes(s.status));
console.log(s.video_url);

More in the Python and JavaScript guides.

Image-to-video API FAQ

What is an image-to-video API?

An image-to-video API turns a still image into a short video clip. You send the image URL and a prompt describing the motion, and the API returns a video in which the image comes to life: a product rotates, a person turns, water starts to flow.

Which image formats can I send?

JPG, PNG, GIF and WebP, passed as a public URL in the image_url field. The model keeps the composition of your image as the first frame and animates it according to your prompt.

How much does image-to-video cost on VideoGenAPI?

Image-to-video is billed exactly like text-to-video: one video per request. Models such as Kling 3, MiniMax H3 and Seedance 2 are included in every plan, about $0.011 per video on Starter; Veo models are billed per video.

Which model is best for animating product photos?

Kling 3 is the usual choice for product and fashion images: clean 1080p motion and fast renders, around half a minute on our API. For shots that need sound or physics such as liquids and fabric, try MiniMax H3; for premium output with native audio, Veo 3.1 Fast.

Can I control the last frame?

Yes, on models that support it. MiniMax H3 accepts an end_image_url so the clip moves from your first image to your second. Veo 3.1 also accepts reference images through reference_image_urls. See the generate reference for the full list of parameters.

Reviewed by Enzo Lanne · Founder, VideoGenAPI ·