We use cookies. Cookies and browser storage keep you signed in and remember your preferences. With your permission we also measure how the site is used. You can any time. See our cookie policy.
Video generation API
Submit a prompt (and optionally a first frame), poll the job and download the result. Choose duration, resolution, aspect ratio and audio per request. You are charged once, when the video is completed.
- Short ads and social clips
- Animating product images
- Storyboards and previews
- B-roll for content
Settings
Video generation API · 30 models
How to call the Video generation API API
- Create an API key in your dashboard.
- Install the official openai SDK for your language.
- Set baseURL to https://api14.com/api/v1 and model to "alibaba/wan-3.0-prime".
Is video generation synchronous?
No. POST /api/v1/videos returns a job id; poll GET /api/v1/videos/{id} until it is completed.
How is video priced?
Per second of output, depending on resolution and audio. The estimate is shown before you generate.
What happens if a video job fails?
You are only charged for completed videos. A failed or cancelled job costs nothing.
Can I start from an image?
Yes, for models that accept image input. Pass the image as the first frame and describe the motion in the prompt.
Which plans include video?
Video generation is included in the Pro, Team and Enterprise plans.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
// Video generation is asynchronous: submit, then poll until completed.
let job = await client.post("/videos", { body: {
"model": "alibaba/wan-3.0-prime",
"prompt": "A drone shot over turquoise ocean waves at sunrise",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9"
} });
while (!["completed", "failed"].includes(job.status)) {
await new Promise((r) => setTimeout(r, 5000));
job = await client.get(`/videos/${job.id}`);
}
console.log(job.status, job.unsigned_urls);