Poko API
Make videos with the Poko app, and read and change a workspace's brand kit, settings, voices and usage.
Every route here is also a tool in the Poko MCP server: AI apps such as Claude, ChatGPT and Cursor can add https://mcp.poko.video/mcp, sign in, and use them all (steps in Poko Motion → Settings → API → MCP).
How videos are made
Videos are made by the Poko app on the person's computer, with the app's own AI, in the workspace open in the app. The API keeps each video and sends it to the app through the person's own Poko address. While the app is closed, new videos wait in a queue and start when it opens; GET …/app-status says whether it is online.
Before your first video:
- Get your Poko address: in the Poko app, open Settings → API → Local desktop, type a short name under Public URL and click Save. Until then, video calls answer
409with these steps. - Keep the Poko app open and signed in.
Authentication
Send an API key as a Bearer token on every request:
Authorization: Bearer poko_live_…
Make a key in Poko Motion → Settings → API → Local desktop → API keys. It works in the workspace it was made in. The secret is shown once; revoke a key there if it leaks. Apps that sign in to Poko over MCP get a key that works in every workspace the person belongs to.
Workspaces
Most paths take {workspaceId}; the usage routes take workspace_id in the query. GET /api/me returns the key's default workspace, and GET /api/workspace/mine lists the workspaces the key can use, with the one open in the app marked openInApp. Videos are only made in the workspace open in the app.
Making a video
- Optional: pick a template with
GET /motion-templatesand pass itsidastemplateId. POST /api/workspaces/{workspaceId}/videosqueues the video and returns itsrequestId: the{videoId}for the calls below.- Poll
GET /api/workspaces/{workspaceId}/videos/{videoId}every few seconds untilstatusiscompletedorfailed. A video takes a few minutes. POST …/videos/{videoId}/exportsrenders it; pollGET …/exports/{exportId}untilfile.downloadUrlis there.
For a file on your computer, call POST …/uploads, PUT the file to uploadUrl with uploadHeaders, and pass fileUrl as sourceUrl.
To retry a request that starts work (create, continue, export) without starting it twice, send the same Idempotency-Key header.
Responses and errors
Responses are JSON. A success is { "success": true, "data": … }; the examples show data for each route. A failure is { "success": false, "msg": "…" }, where msg says what went wrong:
| Status | Meaning |
|---|---|
| 400 | The input is not valid. |
| 401 | The API key is missing, revoked or wrong. |
| 403 | The key can't use this route or this workspace, the person isn't allowed (changing settings is for the workspace owner), or there are no credits left. |
| 404 | Not found in this workspace. Owner-only brand kit and voice changes also answer 404 to members. |
| 409 | The Poko app has no Poko address yet, or the video isn't in a state for this call. |
| 429 | Too many requests for your plan, or too many videos waiting. Try again after Retry-After seconds (also retryAfter in the body). |
| 502 | The Poko app or a generation service could not be reached. |
| 503 | Rate limiting is briefly unavailable. Try again shortly. |
Older automation API
Before this API, n8n and Make called the Poko app directly at https://<your-slug>.isthebest.poko.video/automations/v1. That still works for existing setups (older automation API); use this API for anything new.