Skip to content

REST API, MCP server and Telegram bots

The video editing API with a real editor behind it

Create projects, edit them with commands and render video on the same engine as the Vidmoat editor. Anything your code makes, a person can open and keep editing.

Free test keys on every plan. Test calls never spend credits.

quickstart.shapi.vidmoat.com
  1. POST/v1/projectsanswers 201
    {"name":"Hello, Vidmoat API"}
  2. POST/v1/projects/{id}/commandsanswers 200
    {"commands":[{"op":"addTextClip","text":"Hello","start":0,"duration":3}]}
  3. POST/v1/rendersanswers 202
    {"projectId":"$ID"}
render.status COMPLETEDrender.url
Arc, a concept film. Assembled and rendered in Vidmoat, the engine the API drives.

How it works

Three steps from key to video

  1. Get a test key

    Register an app in the console and mint a test key. Test keys are free on every plan and never spend credits.

    export VIDMOAT_KEY="vmk_test_..."
  2. Edit with commands

    Send clips, text, captions, effects and keyframes as commands. A preview returns layout lint and the exact frame, for free.

    GET /v1/projects/{id}/preview?format=image&at=1
  3. Render, then get told

    Queue an export and let the render.completed webhook tell your server when the video is ready.

    POST /v1/renders

Quickstart

A first render in one script

Create a project, put a three-second title on it, queue a render and poll it. With a test key the render comes back at once as a sample file and nothing is charged.

  • Stops on the first HTTP error
  • Never queues the same render twice
  • The same script as the docs, in curl, Node and Python
quickstart.sh
# Requires Bash, curl and jq. Keep the key on your server.
set -euo pipefail
export VIDMOAT_KEY="YOUR_TEST_OR_LIVE_KEY"
BASE="https://api.vidmoat.com/v1"

# Test keys still create and edit real projects. Renders are sample fixtures.
ID=$(curl --fail-with-body -sS -X POST "$BASE/projects" \
  -H "Authorization: Bearer $VIDMOAT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Hello, Vidmoat API"}' | jq -er '.project.id')

curl --fail-with-body -sS -X POST "$BASE/projects/$ID/commands" \
  -H "Authorization: Bearer $VIDMOAT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"commands":[{"op":"addTextClip","text":"Hello","start":0,"duration":3}]}'

JOB=$(curl --fail-with-body -sS -X POST "$BASE/renders" \
  -H "Authorization: Bearer $VIDMOAT_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"projectId\":\"$ID\"}" | jq -er '.render.id')

# Stop on errors; do not retry a render POST after an uncertain timeout.
for i in $(seq 1 120); do
  RESULT=$(curl --fail-with-body -sS "$BASE/renders/$JOB" \
    -H "Authorization: Bearer $VIDMOAT_KEY")
  STATUS=$(printf '%s' "$RESULT" | jq -er '.render.status')
  case "$STATUS" in
    COMPLETED) printf '%s' "$RESULT" | jq -er '.render.url'; exit 0 ;;
    FAILED|CANCELLED) printf '%s\n' "$RESULT" >&2; exit 1 ;;
  esac
  sleep 5
done
echo "Still processing after 10 minutes. Resume polling $JOB; do not queue it again." >&2
exit 1

Use cases

What people build on it

Each one lists the calls it makes, so you can see the shape of the integration before you write it.

Social clips from a product feed

For each new product, import its video, switch the canvas to 9:16, put the name and price on screen and render a vertical clip, with no person in the loop.

  • POST/v1/media/import
  • POST/v1/projects
  • POST/v1/projects/{id}/commands
  • POST/v1/renders
How to build it

Captions inside your app

Your users upload a video, you transcribe it with word timings and feed the words straight into an addCaptions command, then render.

  • POST/v1/media/uploads
  • POST/v1/ai/transcriptions
  • POST/v1/projects/{id}/commands
  • POST/v1/renders
How to build it

An editing bot for your community

Give a Telegram group its own video bot under your name. Members of your groups can use it, each with a daily cap, and you manage people from your server.

  • GET/v1/telegram/users
  • PATCH/v1/telegram/users/{user}
How to build it

An agent that edits video

Point Claude, ChatGPT or your own agent at the MCP server. It imports footage, edits, looks at a frame to check its work, and renders.

  • MCPimport_media
  • MCPedit_project
  • MCPpreview_frame
  • MCPrender_project
How to build it

Telegram bots

A video editor in your community's chat

Connect a bot you made with BotFather. We run the editing agent behind it, limited to editing tools, and you stay in charge of who uses it and what it may spend.

Your bot, your name
It keeps its own name and photo, and speaks with your instructions, welcome and help text.
No sign-up for your users
People just message the bot. They never create a Vidmoat account.
You decide who and how much
Anyone, members of your groups, an allowlist or group admins, with daily caps per person and per app.
Billed to your app
Every credit comes out of your balance at normal prices. Sell access with your own checkout; your users never pay Vidmoat.
Your botbot

clip.mp4
Add captions to this

On it. Adding captions and exporting.

Your video is ready.

Illustration. Your bot replies under its own name and photo.

MCP server

Give your agent an editing timeline

REST suits code that decides every step. MCP lets an agent choose tools as it works: inspect footage, edit, look at the frames it made, fix what is wrong and export.

  • Claude and ChatGPT connectors only need the URL and an OAuth sign-in, on every plan
  • Claude Code, Cursor and your own agents use an API key
  • Listed on the official MCP registry as com.vidmoat/vidmoat

Claude Code

Terminal
claude mcp add --transport http vidmoat https://api.vidmoat.com/api/mcp \
  --header "Authorization: Bearer $VIDMOAT_KEY"

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "vidmoat": {
      "url": "https://api.vidmoat.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_VIDMOAT_KEY" }
    }
  }
}

Pricing

Build for free. Pay when it is live.

The API is billed like the editor: your plan sets what you can reach, and generation spends credits at the same prices. Reading, editing with commands, previews and stock search are free.

BuildHobby

$0test keys on every plan

  • Projects, edits, uploads and previews are real
  • Renders return a sample file, so nothing is charged
  • 20 requests a minute on Hobby
Get a test key

Go liveStudio

$49a month, or $39 a month billed yearly

  • Live keys and Telegram bots, once your app is approved
  • 6,000 AI credits a month
  • 600 requests a minute, 5 renders at once
See plans

TeamsTeam and Enterprise

$29a seat a month for Team; Enterprise by agreement

  • Everything in Studio, for everyone on the team
  • 600 requests a minute on Team; Enterprise rate set by contract
  • Up to 10 renders at once on Enterprise
Talk to us

Generation costs and allowances, call by call: credits and plans. Every limit: rate limits.

Security

Careful with your keys and your users

  • Keys are shown once

    We store only a SHA-256 hash. A leaked key is revoked and replaced, never looked up.

  • Scoped keys

    Each key carries only the scopes you give it: projects, media, renders, each kind of generation.

  • Signed webhooks

    HMAC-SHA256 over a timestamp and the raw body, and the timestamp lets you refuse replays.

  • Bot tokens encrypted

    A Telegram token is stored encrypted and never shown again, not even to you.

  • Fails closed

    If the rate limiter cannot be reached, the API answers 503 and nothing runs or is charged.

  • Test is per key

    Test and live are a property of each key, never a hidden account mode.

FAQ

Questions developers ask first

Can I try the API for free?

Yes. Test keys are free on every plan, including the free Hobby plan. They create and edit real projects and return real previews, but renders come back as a sample file and no credits are spent.

What do I need to go live?

A plan with live API access (Studio, Team or Enterprise) and an app approved in review. Studio is $49 a month, or $39 a month billed yearly, with 6,000 AI credits a month.

What costs credits?

Generation: transcription, speech, images, stickers, video and the editing agent, at the same prices as in the editor. Reading, editing with commands, validating, previews and stock search are free. Renders use your plan's export allowance.

How is this different from a template rendering API?

Every edit runs through the same command reducer the Vidmoat editor uses. A project your code creates is an ordinary project: a person can open it in the editor and keep working, and your code can keep editing it after them.

Can an AI agent use Vidmoat?

Yes. The MCP server at https://api.vidmoat.com/api/mcp gives Claude, ChatGPT, Cursor or your own agent 88 tools. Clients that support OAuth only need the URL and work on every plan; API keys need Studio.

Do the people using my Telegram bot need a Vidmoat account?

No. They message your bot and never sign up. What they do is billed to your app, inside the daily caps you set per person and per app.

What are the rate limits?

Per key, per minute: 20 on Hobby, 120 on Creator, 600 on Studio and Team, and on Enterprise whatever the agreement sets (600 by default). Responses carry X-RateLimit headers so you can back off in time.

Is there an SDK?

Not yet. The API is plain JSON over HTTPS, every reference page has curl, Node and Python examples, and the editor starter is a complete React app built on it.

Make your first render today

Free test keys on every plan. Swap in a live key when it works.