- Home
- Developers
Developers
Build video production into your product
Everything Azimo does is available through a REST API, Python and TypeScript SDKs, a command line and MCP: upload material, review a plan, confirm it, and receive a video only once it passes QA.
Documentation
Quickstart
Get a key, upload material, create a plan, confirm it and download the film: your first video in five steps.
Read →Workflows and video types
What each of the six workflows is for, what material it needs and what it delivers.
Read →CLI and MCP
Produce videos with the azimo command line, or connect Azimo to Claude, Cursor and other AI assistants.
Read →Advanced usage
Webhooks, batches, idempotent retries, pagination and error handling.
Read →API reference
Parameters, request body, response fields and a curl example for every endpoint, generated from the live API definition.
Read →Your first request
Four steps: upload, plan, confirm, fetch the result. Set $AZIMO_API_KEY to your key.
# 1. Upload material (PDF / PPTX / TXT / MD / PNG / JPG, up to 60 MB)
curl -X POST "https://azimo.ai/v1/assets" -H "Authorization: Bearer $AZIMO_API_KEY" -F file=@product.pdf
# 2. Create a plan: see the workflow, specs and anything missing; nothing is produced yet
curl -X POST "https://azimo.ai/v1/plans" -H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: launch-plan-001" -H "Content-Type: application/json" \
-d '{"prompt":"In 30 seconds, show a warehouse manager how our inventory platform prevents stock-outs","assets":["<asset id>"]}'
# 3. Confirm the plan and start production → 202
curl -X POST "https://azimo.ai/v1/videos" -H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: launch-video-001" -H "Content-Type: application/json" -d '{"plan_id":"<plan id>"}'
# 4. Follow progress; download links arrive when it is complete
curl "https://azimo.ai/v1/videos/<video id>" -H "Authorization: Bearer $AZIMO_API_KEY"
import os
from vidgen_sdk import Vidgen
with Vidgen("https://azimo.ai", os.environ["AZIMO_API_KEY"]) as api:
asset = api.upload_asset("product.pdf")
plan = api.create_plan({"prompt": "In 30 seconds, show a warehouse manager how our inventory platform prevents stock-outs",
"assets": [asset["id"]]}, idempotency_key="launch-plan-001")
if plan["data"]["status"] == "ready":
job = api.create_video(plan_id=plan["id"], idempotency_key="launch-video-001")
video = api.wait(job["id"]) # returns on needs_input too: check video["status"]
else:
print(plan["data"]) # the plan says what is missing
import {readFile} from "node:fs/promises";
import {Vidgen} from "@vidgen/sdk";
const api = new Vidgen("https://azimo.ai", process.env.AZIMO_API_KEY!);
const asset = await api.upload(new Blob([await readFile("product.pdf")]), "product.pdf");
const plan = await api.plan({prompt: "In 30 seconds, show a warehouse manager how our inventory platform prevents stock-outs", assets: [asset.id]}, "launch-plan-001");
if (plan.data.status === "ready") {
const job = await api.create({plan_id: plan.id}, "launch-video-001");
const video = await api.wait(job.id); // returns on needs_input too: check video.status
}
Install the SDK and CLI
# The Python SDK, the azimo command line and the MCP server ship in one package (Python 3.9+)
pip install ./sdk/python
azimo login # paste your API key; it is saved only after the server accepts it
The TypeScript SDK lives in sdk/typescript: zero dependencies, Node.js 22+ or a modern browser.
Connect an AI assistant (MCP)
Create plans, start production and check progress from Claude, Cursor and other MCP clients. Run it locally or use the remote server:
claude mcp add azimo -- azimo mcp
claude mcp add --transport http azimo https://azimo.ai/mcp --header "Authorization: Bearer $AZIMO_API_KEY"Give the docs to an AI assistant
Every page has a “Copy for LLM” button that copies it as Markdown with a short Azimo context header. You can also point AI tools at:
https://azimo.ai/llms.txt— an index of the docshttps://azimo.ai/llms-full.txt— every guide and the API reference in one file