Skip to main content
Base URL:

Create a video job

Creates a video job with the selected engine from a prompt. The response returns a job_id immediately. API initiated runs:
  • Are owned by the user who owns the API key.
  • Use the default returned by engine discovery. Eligible Legacy accounts can select Motion explicitly with engine: "motion".
  • Auto approve planning stages where possible.
  • Require available Motion credits on the API key owner’s account.
  • Can target an aspect ratio and duration bucket.
  • Pro/Max accounts can use a preset design system or inline custom DESIGN.md content.
  • Can include one optional YouTube style reference.
  • Can include up to 100 public signed URL attachments.
Credits, purchases, and auto top-ups are managed 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. They are not managed through this API.

Engines, effort, and templates

Only prompt is required. New video jobs use the default returned by engine discovery for your account. Read GET /engines for your available choices. Set engine: "motion" to choose Motion explicitly. Engine access, templates, and legacy aliases follow the shared engine contract.

Request body

Custom DESIGN.md object

Credit requirements

Creating and running a job requires available Motion credits. The API key owner is the billing and ownership subject for API initiated runs. Actual usage varies by video length, engine, effort, generated media, and follow-up edits. If credits are insufficient, the API can return 402 with an insufficient_credits error. Purchase credits or configure auto top-ups from motion.so, then retry when credits are available.

Attachment object

Example request (Pro or Max design features)

Custom DESIGN.md example (Pro or Max)

Example response

status_url is the authenticated public API polling endpoint. Call it with the same Authorization: Bearer motion_... header to get status and the eventual output.download_url. chat_url is the Motion app chat link for a human to open, inspect, or continue the run.

Discover engines

Returns the engines available to the authenticated account, with their supported efforts, default_effort, default, and templates capability. Use this result to build engine choices and select a valid effort. Access rules.

Discover templates

Returns published templates available to the account for that engine. Omit engine to use the account default. Use a returned identifier as template on creation; templates require Pro or Max. Engines without template support return an empty catalog. Template selection.

Create a followup

Creates a followup run on an existing video job. Existing Motion jobs keep using Motion, including jobs created before engine metadata was introduced. GVA jobs keep GVA; set effort: "standard" or effort: "extended" to change effort for the next turn. Followups use the same request body as POST /sessions, including optional format and DESIGN.md config. Followups are allowed when the current job status is completed (refine the finished video) or awaiting_user_input (answer the question the agent is waiting on; send your reply as the prompt). If the job is still queued, created, running, or failed, the API returns 409.

Example request

Example response

Get job status

Returns status for a job owned by the API key user.

Path parameters

Example response

When the video output is ready, the same status endpoint includes a signed download URL and any source assets currently used in the composition:
There is no separate public output or download endpoint. Keep polling GET /sessions/{job_id} until output.status is completed and output.download_url is non-null.

Response fields

Automations

Use the automation guide and automation API reference to manage scheduled and channel-triggered work, run history, and analytics. Automation creation defaults to GVA standard.