Overview

Runway API

The same API generates millions of videos a month for some of the world's largest consumer technology companies. It costs $10 to start.

Two minutes to first frame
Generate your first video today

Create an organization, add credits, and run the quickstart below — no sales call, no waitlist.

Start here#

Quickstart#

Install the SDK:

npm install --save @runwayml/sdk

Export your key, then generate a five-second video from a text prompt with Gen-4.5:

import RunwayML, { TaskFailedError } from '@runwayml/sdk';
 
const client = new RunwayML();
 
try {
  const task = await client.imageToVideo
    .create({
      model: 'gen4.5',
      promptText: 'A serene mountain landscape at sunrise with mist rolling through the valleys',
      ratio: '1280:720',
      duration: 5,
    })
    .waitForTaskOutput();
 
  console.log('Video URL:', task.output[0]);
} catch (error) {
  if (error instanceof TaskFailedError) {
    console.error('The video failed to generate.', error.taskDetails);
  } else {
    throw error;
  }
}

That call costs 60 credits — 12 credits per second of Gen-4.5 output, or $0.60. See pricing for every model's rate.

What you can generate#

You want Use Starting cost
Cinematic video up to 30 seconds seedance2_5 20 credits/second at 480p
Best-in-class motion and prompt adherence gen4.5 12 credits/second
The cheapest usable video gen4_turbo 5 credits/second
Edit an existing video with a prompt aleph2 28 credits/second
A production-grade still image gen4_image 5 credits per 720p image
A real-time conversational avatar gwm1_avatars 2 credits per 6 seconds
Speech or sound effects seed_audio 0.25 credits/second

Not sure which model to pick? A model router chooses one per request based on your cost, latency or quality preference — at no extra charge.

How the API works#

Every generation is a task. You create it, and it runs asynchronously:

  1. POST /v1/image_to_video (or any generation endpoint) returns a task id immediately.
  2. The task moves through PENDINGRUNNINGSUCCEEDED, FAILED or CANCELED.
  3. GET /v1/tasks/{id} returns the current status, and on success an output array of URLs.

The SDKs collapse steps 2 and 3 into .waitForTaskOutput(), which polls correctly for you — with backoff, jitter and a timeout. See SDKs and task polling for when to use it and when to store the task ID instead.

Output URLs are ephemeral and expire 24–48 hours after the task completes. Download and re-host anything you show to users — see Outputs.

Scale#

Every organization starts at Tier 1: one concurrent generation, 50 per day. Tiers rise automatically as you purchase credits, with no waiting period — $100 purchased puts you on Tier 3 (5 concurrent, 1,000/day) the moment it clears.

Beyond Tier 5 there are enterprise partnerships: guaranteed concurrency, Slack support, earliest access to new models, and custom payment terms. File an exception request from the usage page of the developer portal, or contact enterprise@runwayml.com.

See usage tiers for the full table.

Ready to build?

A $10 minimum purchase unlocks the API — the same endpoints that serve production traffic at consumer scale.

Updated

Was this page helpful?