Azimo
  1. Home
  2. 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.

Get an API key Five-minute quickstart Copies every guide and the API reference as Markdown, ready to paste into ChatGPT, Claude or another assistant.

Documentation

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:

Feedback