Open to every creator. Built for developers.

AI generation API.
Video, images & more.

Build with one API for AI video generation, image generation and editing, music and 3D. Use text-to-video or image-to-video in your app, discover live models, estimate each request and pay with the same credits you use on the website.

Available to every account · Same wallet & generation prices

VideoImagesAudio3DUpscale

Build your integration

AI API guides for developers.

The model library

One key. Every medium.

Live models and settings from MotionLab. Available models appear here and in API discovery as the catalog evolves.

From idea to first request

A few lines.
A lot of possibility.

  1. 01

    Create your key

    Sign in, name a key, choose permissions and save it securely.

  2. 02

    Choose a model

    Read /api/v1/models for live durations, resolutions and reference inputs. Select a model above to generate its example.

  3. 03

    Estimate, create, retrieve

    Get a credit estimate, submit with a saved idempotencyKey, then poll motionlab_get_job for your result.

Create API key
Seedream V5 Pro
// Run on your server. Persist the key below before submitting.
const response = await fetch("https://www.motionlab.art/api/v1/actions/motionlab_generate_image", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.MOTIONLAB_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "seedream-v5-pro",
    "prompt": "A sculptural glass pavilion in the desert, golden hour",
    "aspectRatio": "1:1",
    "idempotencyKey": "REPLACE_WITH_A_SAVED_UNIQUE_REQUEST_ID"
  }),
});
const data = await response.json();
if (!response.ok) throw new Error(data.error?.message);
console.log(data.result);

Replace every YOUR_OWNED_* placeholder using motionlab_create_upload. Save a unique idempotencyKey before each new creation and reuse it for retries. The example does not send a request.

Know what you spend

Same models.
See where you save.

Your website credits work through the API. Compare active models where MotionLab costs less than Higgsfield or fal.ai at matching settings. Dollar equivalents below use the Pro credit pack.

API cost in USD = estimated credits × pack price ÷ pack credits. Compare the same model version, duration, resolution and audio settings. Read the API pricing and migration comparison.

4 models · 7 options with savings against at least one provider, based on the Pro credit pack. Select a model to see its comparable options.

Model / settingsMotionLab · ProHiggsfield · USDfal.ai · same settings
$0.1505$0.8100Not verified
$0.3755$1.5680$1.2000
$0.0251$0.0500Not verified
$0.4066$0.6500Not verified

Source dates appear beside each price. Higgsfield’s published API prices ↗

The practical details

Your first integration.

Discover before you create

Send Authorization: Bearer YOUR_API_KEY on every request. GET /api/v1/models returns live model IDs and supported settings in result.models. GET /api/v1/actions returns every available operation and its input and output JSON schemas.

Use the model’s actual settings

Video uses duration in seconds, resolution and aspectRatio. MotionLab tiers have duration limits per resolution. Provider models have their own ranges and audio/reference controls. Image models can expose resolution, quality and output format. Suno settings belong inside suno; Lyria controls are top-level fields.

Upload your references

Call motionlab_create_upload with filename, contentType and fileSizeBytes (the actual file size). PUT the bytes to the returned uploadUrl using the same Content-Type. Pass the returned key into the model’s reference fields. Inputs must belong to your account.

1. Estimate without spending

POST /api/v1/actions/motionlab_estimate_cost

{ "kind": "video", "model": "MODEL_ID_FROM_DISCOVERY",
  "duration": 5, "resolution": "720p", "aspectRatio": "16:9" }

2. Create the video

POST /api/v1/actions/motionlab_generate_video

{ "model": "MODEL_ID_FROM_DISCOVERY",
  "prompt": "Your creative direction",
  "duration": 5, "resolution": "720p", "aspectRatio": "16:9",
  "idempotencyKey": "YOUR_SAVED_UNIQUE_REQUEST_ID" }

3. Poll for your result

POST /api/v1/actions/motionlab_get_job

{ "jobId": "JOB_ID_FROM_RESULT" }

Safe retries

Every spending request needs an 8–120 character idempotencyKey. Persist it before submitting and reuse it if a response is lost. Use a new key for a new creation, never for a retry.

Asynchronous results

Creation returns result.jobId. Poll every few seconds with backoff, stopping at a terminal status. Successful jobs include output URLs. Download results before their signed links expire.

Predictable limits

Up to five active keys per account. 60 requests per minute per account and a separate 10-per-minute spending-action limit, plus model service limits. A 429 means back off. JSON bodies are limited to 2 MiB; media uses uploads.

A few good questions.

Who can use the API?

Every signed-in account can create a personal API key. Generation uses your available credits at the same prices as the website.

Will new models appear automatically?

New models become available through the API as they are integrated and enabled in MotionLab. Refresh /api/v1/models to get the current catalog and supported settings.

What happens when a model is switched off?

Disabled models disappear from discovery and new requests are rejected. Always refresh the catalog instead of relying on a hardcoded model list.

How do I get started?

Create an API key, choose a model from the live catalog, estimate the credit cost and submit your first request. Poll the returned job ID to retrieve the result.

Your next idea, connected.

Make something
only you would make.

Get your API key