Engineering & product

A rendered video from one POST

Zvid is a JSON REST API for video and image rendering. POST a project, get back a 202 with a job id, and let a per-request webhook tell you when your hosted file is done — all on a deterministic FFmpeg engine, not a headless browser.

For developers

Video rendering as a REST call

At its core, Zvid is a REST API: authenticate with an API key, POST a JSON project (or a stored template id plus variables), and get back a 202 with a job id, your place in the queue, and the credits reserved. Every render runs through FFmpeg rather than a headless browser, so output is frame-accurate and reproducible, and the finished file comes back as an absolute cdn.zvid.io URL you can hand straight to a client.

You wire it into your stack the way you already work. Pass an idempotency key so retries never double-charge, register a per-request webhookUrl so render.completed and render.failed events reach you instead of a polling loop, and reach for the Python or TypeScript SDK when you'd rather not hand-roll HTTP. Templates, conditionals, and array iteration all resolve server-side before validation, and a free pre-flight validator lets you catch a bad payload without spending a credit.

What you get

Built for your workflow

One POST, one job

Send an inline JSON project or a template id and get back a 202 with a job id, your queue position, and the credits reserved.

Webhooks, not polling

Register a per-request webhookUrl for render.completed and render.failed events, HMAC-SHA256 signed with 5 retries on exponential backoff.

Safe retries

Idempotency keys turn a repeated POST into the original job instead of a double render, so network hiccups never cost you credits.

Two auth modes

Use an API key (zvid_...) for server-to-server calls, or JWT/cookie auth for the dashboard and editor sessions.

Typed SDKs and MCP

Reach the same API from a Python or TypeScript SDK, or expose 30 tools to AI agents through the MCP server with a free pre-flight validator.

Hosted FFmpeg output

Renders run on FFmpeg for reproducible, frame-accurate results and return as an absolute cdn.zvid.io URL, so there is no storage to manage.

FFmpeg

Render engine

30

MCP agent tools

500

Bulk per call

1,200 free

Credits to start

FAQ

Frequently asked questions

How do I know when a render is finished? +

Register a per-request webhookUrl and Zvid sends render.completed or render.failed events, HMAC-SHA256 signed over the timestamp and body, with 5 retries on exponential backoff. There is no need to poll the job.

Are retries safe if my request times out? +

Yes. Pass an idempotency key and a repeated POST returns the original job instead of starting a second render, so retries never double-charge credits.

Can I validate a payload before spending credits? +

Yes. A free pre-flight validator resolves templates, conditionals, and iteration server-side and applies your plan limits without spending a credit, so you catch errors before you render. In a bulk call, invalid items come back in itemErrors by index.

Explore more: see every roles

Ready to ship video at scale?

Start free — your first render is only a JSON payload away.