1. Create an API key
Create an API key in the app at motion.so, under Settings → API → API keys. API keys start withmotion_.
Keep the key secret. It authenticates as the user who created it, and jobs created with the key are owned by that user.
AI agents usually connect to the MCP server by authorizing in the browser (no key needed). This key also works as an MCP fallback credential — set it as the connector’s bearer token.
2. Check credits
API jobs require Motion credits on the API key owner’s account. Purchase credits and configure auto top-ups in the Motion web app at motion.so. Flex packs and standard manual top-ups cost $6 per 200 credits (3¢ per credit). See Credits for subscriptions and saved billing terms. Credit purchases and auto top-up settings are not available through the API. Actual usage varies by video length, engine, effort, generated media, and follow-up edits. If the account does not have enough credits, job creation or execution can fail with an insufficient credits error.3. Create a job
status_url is the authenticated API polling URL. It is not a Motion app page. Use chat_url when a human needs to open the Motion chat for this run.
4. Poll job status
output.download_url. The response can also include sources, an additive array of source assets currently used in the composition:
sources can include licensed libraries, article media, web/image search results, connector assets, uploads, generated assets, or unknown local sources. Internal storage paths, filenames, and GCS URIs are not exposed.
Optional inputs
Onlyprompt is required. You can add:
engine:gva, ormotionif your account has Legacy access. Omit it to use the default returned by engine discovery.effort: Motionlight,medium(default), orhigh. GVA supportsstandard(default) orextendedwith the GVA engine.template: an identifier from the selected engine’s template catalog.aspect_ratio:16:9,9:16,1:1,4:5, or21:9.duration:<10s,10-30s,30s-1min, or1-5min.design_system_id: a Pro/Max presetDESIGN.md, such asmosaic,stripe,apple,linear, ornotion.design_md: Pro/Max customDESIGN.mdcontent, either as a string or as{ "filename": "DESIGN.md", "content": "..." }.style_reference_url: a YouTube URL to analyze as a style reference.attachments: up to 100 publicly accessible signed URLs.
Revise or resume a job
Create a follow-up against the samejob_id when the job is completed or awaiting_user_input.
completed or awaiting_user_input. Reply to a pending question, or add credits and continue the same credit-paused job.
New jobs use your account’s configured default engine. Eligible Legacy accounts can choose Motion with medium effort. Set engine: "motion" to choose Motion explicitly. Engine access and compatibility.