# Vidmoat developer documentation

> The engine behind the Vidmoat editor, as 36 REST endpoints, an MCP server, signed webhooks and Telegram bots. Create a project, apply edit commands, render it, read the result.

Vidmoat is a hosted video editor. Everything a person can do on its timeline, your code can do too: the API runs every edit through the same command reducer the editor uses, so there is no second definition of what an edit means. A command that works today keeps working.

The base URL is `https://api.vidmoat.com/v1`. Requests and responses are JSON, except media upload (multipart) and preview frames (JPEG). Every request carries `Authorization: Bearer <token>`.

- [Quickstart](https://developer.vidmoat.com/developer/docs/quickstart): A first render in five minutes, with a free test key.
- [API reference](https://developer.vidmoat.com/developer/docs/api): Every endpoint, with parameters, examples in curl, Node and Python, and the response.
- [MCP server](https://developer.vidmoat.com/developer/docs/mcp): Connect Claude, ChatGPT or Cursor and let an agent edit on a real timeline.
- [Telegram bots](https://developer.vidmoat.com/developer/docs/telegram): Connect your own bot. Your users edit video in chat, billed to your app.

## How it fits together

1. **Mint a key** in the [console](https://developer.vidmoat.com/developer/apps). Test keys are free on every plan.
2. **Create a project** with `POST /v1/projects`. A project is one timeline document.
3. **Edit it with commands** through `POST /v1/projects/{id}/commands`: add clips, text, captions, effects, keyframes.
4. **Look before you render.** `GET /v1/projects/{id}/preview` returns layout lint and exact frames, for free.
5. **Render** with `POST /v1/renders`, then wait for the `render.completed` webhook or poll the job.

- [Projects and commands](https://developer.vidmoat.com/developer/docs/concepts/projects-and-commands): The document, the reducer, and why every edit is a command.
- [Renders and previews](https://developer.vidmoat.com/developer/docs/concepts/renders-and-previews): Jobs, statuses, frames and when to use which.
- [Credits and plans](https://developer.vidmoat.com/developer/docs/concepts/credits-and-plans): What costs credits, what uses quota, and what is free.
- [Test and live keys](https://developer.vidmoat.com/developer/docs/concepts/test-and-live-keys): What a test key really does, and what it does not fake.
- [Webhooks](https://developer.vidmoat.com/developer/docs/webhooks): Signed events, verification in Node and Python, retries.
- [Errors and retries](https://developer.vidmoat.com/developer/docs/errors): Stable error codes and what is safe to retry.

> **Note.** Test keys do not spend credits or queue real renders, but project creation and timeline edits are real and persist on your account. Use a dedicated test project. Live keys need a plan with live API access (Studio, Team or Enterprise) and an app approved in review.

## What is deliberately not in the API

Only the documented `v1` routes are a supported public contract. Internal routes carry no versioning promise. These are the ones people ask about:

- **Browser recorder.** Holds a CPU core for about three minutes on the machine that serves the API. Per-app allowlist only.
- **Inpainting.** One global CPU worker capped at 1/user, a single API caller would starve everyone else.
- **Flows.** An orchestration product built on these primitives, not a primitive itself.
- **Vidmoat Social.** Posting to a public feed as a third party is a moderation liability with no revenue. No scope grants it, and none will.
- **Channels, CDS, admin, billing.** Internal surfaces with no versioning promise. They will be refactored without notice.

## Versioning

Additive changes ship into `v1`: new fields, new endpoints, new enum values. **Ignore unknown fields**; a client that rejects them can break on a routine release. The `Vidmoat-Version` request header defaults to `2026-08-01` and is echoed back on every response. It is reserved for future versioning and does not select different behaviour today. Changes are listed in the [changelog](https://developer.vidmoat.com/developer/docs/changelog).

## For agents and assistants

Every page has a Markdown twin: add `.md` to its URL. [/llms.txt](https://developer.vidmoat.com/llms.txt) is the index and [/llms-full.txt](https://developer.vidmoat.com/llms-full.txt) is the whole documentation in one file.

---

Source: https://developer.vidmoat.com/developer/docs
Next: [Quickstart](https://developer.vidmoat.com/developer/docs/quickstart.md)
All documentation: https://developer.vidmoat.com/llms-full.txt
