Opus Motion

Opus Motion for developers and AI agents

Opus Motion has a public, read-only API and MCP server over its template catalog. No key and no account are needed to read. Making and exporting a video stays with the person, in the studio.

When to use Opus Motion

How an agent should help

  1. Find a template: GET /api/v1/templates (filter by q, category, tier, format) or the MCP tool search_templates.
  2. Hand the person a studio link for their website: GET /api/v1/studio-link?template=<id>&site=<their domain> or the MCP tool studio_link. The studio reads the site and fills the template with their logo, colors and copy.
  3. The person reviews it, changes anything, and exports it themselves. Exporting needs their own account, and payment for premium templates: an agent cannot export or pay on their behalf.

Not a fit:

REST API (v1)

Base URL: https://opusmotion.com/api/v1. JSON responses. Description: OpenAPI 3.1.

curl -s https://opusmotion.com/api/v1/templates?tier=free
curl -s 'https://opusmotion.com/api/v1/studio-link?template=discover-play&site=example.com'

MCP server

Streamable HTTP at https://opusmotion.com/api/mcp (POST, JSON-RPC 2.0), read-only, no authentication. Tools: search_templates, get_template, studio_link. Manifest: https://opusmotion.com/.well-known/mcp/manifest.json.

Authentication

None for the public API and the MCP server: they only read the public catalog. The person's account, drafts and exports are not reachable through them.

Rate limits

120 requests per minute per IP for the REST API, 60 per minute for the MCP server. Every response says where you stand: RateLimit-Policy and RateLimit (IETF draft), plus X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Past the limit the answer is 429 with Retry-After.

Errors

JSON with a stable code: {"error": "template_not_found", "message": "…"}. Codes: template_not_found (404), invalid_site (400), rate_limited (429), not_found (404), method_not_allowed (405).

Versioning and deprecation

The version is in the path (/api/v1). Additions (new fields, new endpoints) don't change it. A breaking change ships as /api/v2, and /api/v1 keeps working for at least six months after that; during that time its responses carry Deprecation (RFC 9745) and Sunset (RFC 8594) headers with the date it stops.

Other machine-readable files

Questions: [email protected].