# 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

- Someone needs a short launch, product or promo video for their own brand, app, tool or website, and has no agency, editor or motion designer.
- Someone wants a branded video for X, LinkedIn, Instagram, TikTok or YouTube, in 16:9 or vertical 9:16, from their website alone.
- Someone is comparing promo video templates by style, length, format or price.

## 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:

- Editing long videos or live-action footage.
- A one-off custom animation brief. Ask for a new template at /requests instead.

## REST API (v1)

Base URL: https://opusmotion.com/api/v1. JSON responses. Description: [OpenAPI 3.1](https://opusmotion.com/openapi.json).

- `GET /api/v1/templates`: the catalog. Optional filters: `q` (free text), `category`, `tier` (`free` or `premium`), `format` (`16:9` or `9:16`).
- `GET /api/v1/templates/{id}`: one template, by id (`t07-discover-play`) or slug (`discover-play`).
- `GET /api/v1/studio-link?template={id}&site={domain}`: a link that opens the template in the studio, filled from that website.

```sh
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

- [llms.txt](https://opusmotion.com/llms.txt) · [sitemap.md](https://opusmotion.com/sitemap.md) · [sitemap.xml](https://opusmotion.com/sitemap.xml) · [API catalog](https://opusmotion.com/.well-known/api-catalog) · [security.txt](https://opusmotion.com/.well-known/security.txt)
- Every page has a Markdown version: send `Accept: text/markdown`, or add `.md` to its path (the home is `/index.md`).

Questions: support@opusmotion.com.
