// features

Everything in one API.

One key, two ways to make video — deterministic JSON-to-video rendering at the core, AI generation when you need footage — plus the captions, templates and automation tooling around it.

// core · the product

JSON-to-video rendering

Send a JSON payload — media, voice-over, captions and timing — and get a finished MP4 back. It is deterministic: the same input renders the same video every time, so it drops straight into n8n, Make or your own backend without a human in the editor.

  • media_list — sequence video and image clips in one call
  • voice_over — sync narration to the timeline
  • captions — word- or line-level subtitles, baked in
  • timing — exact start/end control over every element
JSON render MP4
POST /api/function/video-generation/mix-video
{
  "media_list": [{ "type":"video", "url":"clip.mp4" }],
  "voice_over_url": "vo.mp3",
  "captions": [{ "start":0, "end":2, "words":"Ship it" }],
  "settings": { "aspect_ratio":"9:16" }
}
# → { "task_id":"a1b2", "status":"queued" }
# poll progress or receive a webhook → store the MP4
// add-on · when you have no footage

AI video & image generation

Don't have source clips? Generate them on the same key. Dozens of video and image models sit behind one endpoint, from budget options for prototyping up to premium tiers for the final render — then composite the result with JSON-to-video.

  • One endpoint, one key — switch model with a single model_id
  • Budget → premium tiers so you can test cheap and ship premium
  • Text-to-video, image-to-video, lip-sync and avatar models
  • Exact credit cost is in GET /api/ai/models before you call
36
video models
16
image models
// same payload, swap the tier
Liteprototype the prompt
Standardreview the cut
Premiumproduction render

cheap to test  →  premium to ship

// captions

AutoCaptions

Turn a transcript or script into burned-in subtitles in 25+ languages. Captions are rendered into the MP4 itself, so they survive re-uploads and play everywhere without a separate subtitle file.

  • Word- and line-level timing from a transcript
  • Styling control — font, position, highlight
  • Built for silent autoplay on social feeds
Explore AutoCaptions →
transcript burned-in subtitles
"captions": [
  { "start": 0.0, "end": 1.4, "words": "Render once," },
  { "start": 1.4, "end": 3.2, "words": "caption everywhere." }
],
"caption_style": { "position": "bottom", "highlight": true }
# 25+ languages, baked into the MP4
// reuse

Templates

Save a render as a reusable template, then feed it new data on every call. Browse the marketplace for a starting point or publish your own — the layout stays fixed while the content changes.

Save & reuse

Lock a layout once, then drive it with fresh media, text and voice-over each run.

Marketplace

Start from a ready-made template instead of a blank payload.

Publish your own

Share or reuse your render recipes across projects and clients.

Browse the template marketplace →
// automation

Automation & integrations

The API is built to run without a human in the loop. Submit a render asynchronously, get a task id back, then poll for progress or let a webhook push the finished URL into your stack. Plain REST, so it fits n8n, Make and any backend.

  • Async submit → task id → status polling or webhook callback
  • Native fit for n8n and Make no-code workflows
  • REST endpoints you can call from any language
# 1 · submit, get a task id back
POST /api/function/video-generation/mix-video
# → { "task_id": "a1b2", "status": "queued" }

# 2 · poll progress …
GET /api/function/video-generation/progress/a1b2
# → { "status": "done", "video_url": "…/out.mp4" }

# … or let the webhook push it
"callback_url": "https://your.app/hooks/video"
// localization

Multi-language & localization

Build a render once, then output it in many languages. Swap the voice-over and caption track per locale while the visuals, timing and template stay identical — the deterministic core makes every language version line up.

  • Reuse one template across every locale
  • Per-language voice-over and burned-in captions
  • Identical timing, so versions stay frame-aligned
See multi-language rendering →
// one render · many outputs
EN English NL Nederlands DE Deutsch FR Français ES Español PT Português + 19 more

same payload · localized voice + captions

// in practice

Use cases

Three common ways teams put the API to work. Each one runs on the same JSON-to-video core, with AI generation added only where source footage is missing.

One API. Two ways to make video.

Deterministic JSON-to-video at the core, AI generation when you need it, and the tooling around both — all on a single key.