Overview and quickstart
Sketchie turns a prompt or a document into a whiteboard explainer video, and hands you back both the rendered video and its editable scene graph. This is the reference for the HTTP API, the CLI, the TypeScript SDK, and the MCP server.
API access is included on every paid plan. Create an API key from Settings in the app once you are on a plan. API generations draw from your plan minutes at the same rate as the app. There is no separate API price.
Authentication
Every request is authenticated with your API key as a Bearer token. Create a key in the app under Settings, then send it on the Authorization header:
Authorization: Bearer sk_... The key is shown once, at creation. Keep it secret. The base URL for every endpoint is https://sketchie.ai/api.
Quickstart
1. Create an explainer
Send your topic as input and an optional target length as length (a friendly "M:SS" string like "0:30" or "1:00", in 30-second steps). Omit length for automatic length.
curl -X POST https://sketchie.ai/api/v1/explainer \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"input": "Explain how DNS resolves a domain name",
"length": "0:30"
}' The call returns 202 Accepted immediately with a queued record. Rendering runs in the background and takes a few minutes.
{
"id": "10f00eee-d2d6-4a1b-b708-f0391faaa85b",
"status": "queued",
"prompt": "Explain how DNS resolves a domain name",
"lengthSeconds": 30,
"voice": "sketchie:sulafat",
"language": "en",
"aspect": "16:9",
"videoUrl": null,
"sceneGraph": null
} 2. Poll for the result
Fetch the explainer by id until its status reaches a terminal state. The lifecycle is queued then generating then rendering then ready (done) or failed.
curl https://sketchie.ai/api/v1/explainer/10f00eee-d2d6-4a1b-b708-f0391faaa85b \
-H "Authorization: Bearer sk_..." When it is ready, the record carries the video URL and the editable scene graph:
{
"id": "10f00eee-d2d6-4a1b-b708-f0391faaa85b",
"status": "ready",
"videoUrl": "https://sketchie.ai/media/....mp4",
"sceneGraph": { "scenes": [ ... ] }
} Friendly and classic field names. input and length are the friendly request fields. The older prompt (string) and lengthSeconds (a number, a positive multiple of 30) are still accepted as aliases, so existing integrations keep working. When both are sent, the friendly field wins.
Where to go next
- API reference . Every endpoint, with request and response shapes.
- Voices . The default narrator, the six-voice catalog, and playable previews.
- Languages . The 34 supported narration languages.
- CLI and SDK . The
sketchiecommand line and the@sketchie/sdkTypeScript client. - MCP setup . Use Sketchie as tools in Claude Desktop, Claude Code, and the Claude app.