Get started

Introduction

manimotion turns a topic into a narrated lecture video. Send a prompt like “Explain Bayes theorem with a medical test”, and a few minutes later you get an MP4 with a script, voice-over and animated visuals timed together.

How it works

Making a video takes a few minutes, so the API works in two steps instead of one long request:

  • Create a job. POST /video/request with your prompt. You get a job_id back right away.
  • Check on it. GET /video/status/{job_id} every few seconds. The message field says what’s happening (“Planning the lesson…”, “Generating narration…”).
  • Get the video. When status is completed, video_url points to the MP4 in your storage bucket.

Key concepts

ConceptWhat it means
API keyYour chalk_live_sk_v1_… key from Settings → API keys. Sent in the x-api-key header. Keep it on your server.
StorageFinished videos upload to your S3-compatible bucket (Cloudflare R2, AWS S3, MinIO…). See Storage.
ModelThe AI model that writes the lesson. Your plan includes a set of models; see Models.
Your own keyConnect your own AI provider key to use any model on any plan. See Bring your own key.
Stylemath for equations and graphs, graphics for charts and timelines, or auto. See Styles.

Endpoints

The whole API is four endpoints on https://api.manimotion.dev:

MethodPathPurpose
POST/video/requestStart a video
GET/video/status/{job_id}Progress, then the video URL
GET/modelsModels you can use
GET/healthIs the API up? (no key needed)

A first request

Here’s what creating a job looks like. Use the tabs to switch language; the JSON underneath is the response.

create.sh
curl -sS -X POST "$MANIMOTION_API/video/request" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $MANIMOTION_KEY" \
  -d '{
    "prompt": "Explain Bayes theorem with a medical testing example",
    "style": "auto"
  }'
RESPONSEresponse.json
{
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "queued",
  "cached": false,
  "video_url": null,
  "eta_seconds": 150,
  "eta_display": "~2–3 min",
  "message": "Queued…",
  "tier": "tier2",
  "model": "anthropic/claude-haiku-5.5",
  "key_source": "platform"
}

Where to next