Skip to main content
POST

Authorizations

Authorization
string
header
required

Motion API key (motion_ prefix), authenticated as its owner. Account and engine permissions still apply.

Body

application/json

Creates a durable video job owned by the API key user. Requires available Motion credits on that user's account. Credits and auto top-ups are managed at https://motion.so, not through the API.

prompt
string
required
Required string length: 1 - 12000
aspect_ratio
enum<string>

Target video aspect ratio.

Available options:
16:9,
9:16,
1:1,
4:5,
21:9
duration
enum<string>

Target video duration bucket.

Available options:
<10s,
10-30s,
30s-1min,
1-5min
design_system_id
enum<string>

Pro/Max built-in DESIGN.md preset to apply.

Available options:
mosaic,
apple,
claude,
cursor,
linear,
vercel,
stripe,
figma,
notion,
spotify,
supabase,
raycast,
framer,
resend,
mintlify,
sentry,
tesla,
nike,
shopify,
airbnb,
posthog
design_md

Pro/Max custom DESIGN.md content, optionally with a companion style extraction JSON artifact. If both design_system_id and design_md are sent, design_md content is used.

Required string length: 1 - 200000
style_reference_url
string<uri>

Optional YouTube style reference URL.

Maximum string length: 2048
attachments
object[]
Maximum array length: 100
engine
string

Video engine. New jobs default to gva. Motion Legacy requires eligible account access. Use GET /engines for available choices. Omitting engine selects GVA even with the deprecated mode field. Existing projects retain their engine.

effort
enum<string>

GVA: standard (default) or extended. Motion: light, medium (default), or high. Legacy GVA light/medium map to standard; high maps to extended. Follow-ups retain the current effort when omitted.

Available options:
standard,
extended,
light,
medium,
high
mode
enum<string>
deprecated

Alias for effort. Mode-only creation selects GVA. Existing projects retain their engine. Must resolve to the same effort if both are supplied. For GVA, light/medium map to standard and high maps to extended.

Available options:
light,
medium,
high
template
string

Identifier from the selected engine template catalog. Set at creation; requires Pro or Max.

Pattern: ^[a-z0-9][a-z0-9-]{0,39}$

Response

Job accepted

job_id
string
required
status
enum<string>
required
Available options:
queued
status_url
string<uri>
required

Authenticated public API polling URL for GET /sessions/{job_id}. This is not a Motion app page.

chat_url
string<uri> | null

Motion app chat URL for a human to open, inspect, or continue the run. Null only for legacy flows where no chat is available.

engine
string | null

Null when engine details are unavailable to this account.

effort
enum<string> | null

Null when engine details are unavailable to this account.

Available options:
standard,
extended,
light,
medium,
high,
null
template
string | null