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
Build your integration
AI API guides for developers.
AI generation API quickstart
Create an API key, discover models, estimate credits and submit your first image with Node.js and cURL.
AI video generation API
Integrate text-to-video and image-to-video with model discovery, owned uploads, cost estimates and asynchronous results.
AI image generation and editing API
Build image generation and reference-image editing with live model settings and fractional-credit pricing.
fal.ai vs Higgsfield API: Pricing and Workflows
Compare fal.ai, Higgsfield and MotionLab APIs: model pricing, authentication, polling, webhooks and migration. Match settings before comparing costs.
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.
- 01
Create your key
Sign in, name a key, choose permissions and save it securely.
- 02
Choose a model
Read /api/v1/models for live durations, resolutions and reference inputs. Select a model above to generate its example.
- 03
Estimate, create, retrieve
Get a credit estimate, submit with a saved idempotencyKey, then poll motionlab_get_job for your result.
// 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.
Starter
$10 for 100 credits
$0.100 per credit before tax
Creator
$39 for 500 credits
$0.078 per credit before tax
Pro
$99 for 1,500 credits
$0.066 per credit before tax
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 / settings | MotionLab · Pro | Higgsfield · USD | fal.ai · same settings |
|---|---|---|---|
| $0.1505 | $0.8100 | Not verified | |
| $0.3755 | $1.5680 | $1.2000 | |
| $0.0251 | $0.0500 | Not verified | |
| $0.4066 | $0.6500 | Not 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.