Post data. Get a video back.
One REST call turns a price feed, a listing, a report or a leaderboard into a short narrated video in your brand, with every number traced to your payload. Run it per event, on a schedule, or as a show that makes itself.
What it does
Data to video
Send JSON facts. Monkeygun writes the script, the voice reads the numbers correctly, and the renderer draws every figure itself, so nothing is made up.
Shows that run themselves
Give it a data URL and a cadence. A new episode is designed, voiced, rendered and posted (or held for your OK) every day.
Your brand, locked
Colors, fonts, logo, disclaimers and banned words set once on a channel and enforced on every video, API or not.
Three lines
curl -X POST https://api.monkeygun.com/v1/videos/from-data \
-H "Authorization: Bearer $MK_KEY" -H "Content-Type: application/json" \
-d '{"title":"BTC today","data":{"priceUsd":64210,"change24hPct":3.4},"targetSeconds":30}'That returns a video id right away and renders in 30 to 60 seconds. Poll GET /v1/videos/{id} or add a webhook and we call you when the file is ready. Full quickstart.
Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /v1/videos/from-data | Structured facts in, a narrated video out. Every number on screen comes from your payload. |
| POST | /v1/videos | Make a video from a brief, a link or a source you already read. |
| GET | /v1/videos/{id} | Status, media links and the watch page. Poll it, or take the webhook. |
| POST | /v1/videos/{id}/edit · /render · /publish | Change the script or look, re-render, post to the channels you connected. |
| POST | /v1/quote | Price a video before you make it. Free. |
| POST | /v1/sources | Read a URL, feed or JSON into a source pack the narrator can quote. |
| POST | /v1/autopilot/suggest · /start | Point at a data URL and get a show that makes an episode on a schedule. |
| POST | /v1/library/upload | Put your own logo, clip or audio in the library to use in videos. |
| POST | /v1/webhooks | video.created, video.rendered and video.render_failed, signed with HMAC-SHA256. |
| GET | /v1/jobs/{id} | Long creations run async: send async: true and poll the job. |
| GET | /v1/billing/balance | Credits left on the account the key belongs to. |
| POST | /v1/tools/{name} | Every tool the Monkeygun agent has, one call each. The list is at GET /v1/tools. |
Bearer auth with an mk_live_… key. Machine-readable: OpenAPI spec. Errors are JSON with a plain-English error; 402 means the account is out of credits and pay-as-you-go could not top it up.
MCP server
Give Claude, Cursor or any MCP client every Monkeygun tool: read a source, quote, make, edit, render and publish videos, run shows. Same key, same credits.
{
"mcpServers": {
"monkeygun": {
"command": "npx",
"args": ["-y", "@monkeygun/mcp"],
"env": { "MONKEYGUN_API_KEY": "mk_live_…" }
}
}
}Pricing: the same credits
The API spends the same credits as the studio. One credit is one cent. A plain 30-second narrated video is 60 credits; AI clips, presenters and generated music add to it, and every paid call returns what it charged. Failed steps are refunded. Planning is free.
Add a card and your first videos are free (500 credits). With a card on file, pay-as-you-go tops up $10 at a time when a call would run short, so an integration never stalls on a 402. Automatic charges are capped per day, and you can turn them off. See pricing.
Make your first video from data in five minutes.
Sign up, create a key in Settings → API, paste the curl. The key is prefilled there for you.
Get an API key