> ## Documentation Index
> Fetch the complete documentation index at: https://askeditor.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Build with AskEditor

> The video editing API for AI agents. Raw footage in, a finished edit out: plus an editable timeline, every time.

AskEditor turns raw video into finished, directed edits through one API.
An agent (or your code) names a **template**, hands over **material**, and
gets back a finished edit. What "finished" means is stated on every template
as its **`delivery`**:

* **`delivery: "file"`** — an **mp4** at `finalUrl`, plus **`canvasUrl`**: the
  same edit as an **editable timeline** in the AskEditor editor. Not a
  screenshot of the result: the layers, trims, animations and audio, live and
  adjustable.
* **`delivery: "canvas"`** — the **editable timeline is the deliverable**, and
  there is no mp4. These templates sell an arrangement rather than pixels —
  which word, when, in what layer order — and it stays adjustable. Export it
  yourself when you want a file.

No other video API returns the second one, and the `canvas` templates exist
*because* of it. [How delivery works](/docs/concepts/the-editable-canvas).

## Start here

<CardGroup cols={2}>
  <Card title="Quickstart for agents (MCP)" icon="robot" href="/docs/quickstart/agents">
    One config block connects Claude, Cursor, or any MCP client. Most
    integrations start (and finish) here.
  </Card>

  <Card title="Quickstart (REST)" icon="terminal" href="/docs/quickstart/rest">
    Key → upload → run → poll, in curl, JavaScript, or Python.
  </Card>

  <Card title="Templates" icon="clapperboard" href="/docs/templates/overview">
    The catalog. Each template is a finished edit with a typed input
    contract: what to record, the knobs, the price, the ETA.
  </Card>

  <Card title="The editable canvas" icon="film" href="/docs/concepts/the-editable-canvas">
    Why every response carries a timeline, and what your users can do
    with it.
  </Card>
</CardGroup>

## The shape of every call

```bash theme={null}
POST /v1/run/{template_id}    # material + spec  → job_id
GET  /v1/jobs/{job_id}        # queued → running → { finalUrl?, canvasUrl }
                              # finalUrl only when delivery is "file"
```

Templates are addresses, not endpoints: the API surface never grows as the
catalog does. List them at [`GET /v1/templates`](/docs/api-reference/overview) or
via the [`list_templates`](/docs/mcp/tools) MCP tool.
