Agency video captioning API: every client in their own style
White-label client presets. Webhook delivery into your portal. Per-minute billing
Every client wants their own caption look, and every deliverable has a deadline. ZapCap is the white-label caption-rendering API behind your agency workflow: store a style preset per client, render against it on demand, and deliver finished MP4s straight into your client portal over a webhook.
Many clients, many styles, one deadline at a time
Agency captioning is a multi-tenant problem. Each client has a brand look, a turnaround expectation, and a place they want files delivered. Done in an editor, every clip is a manual ticket; the work scales with headcount, not with the API call it should be.
- Style fragmentation — a different caption look per client, remembered by hand.
- Manual deliverables — every clip exported and uploaded by an editor.
- Client tenancy — keeping one client's files and styling out of another's.
- Portal delivery — finished files have to land in the right client space.
- Approval loops — transcript review before render, per client.
- Margin pressure — caption labour eats the margin on volume work.
Where the agency video captioning API sits in your stack
Drop the API behind your white-label portal. Each client maps to a stored style preset; your backend renders against it and routes the finished file back into that client's space.
Per-client presets, delivered to your portal
Look up the client's stored templateId, render against it, and let the webhook drop the finished file into that client's portal space. The agency holds one API key behind a white-label workflow; clients never see ZapCap.
{
"eventId": "evt_8kQ2...",
"taskId": "tsk_2hP4...",
"event": "render.completed",
"renderUrl": "https://cdn.zapcap.../acme-clip.mp4"
}- Map taskId → client when you create the task.
- Verify the x-signature header before fetching renderUrl.
- Dedupe webhook deliveries on eventId.
Lifecycle of a client deliverable
Map each ZapCap status onto the delivery state your portal shows the client — and route the finished file to the right tenant on completion.
Agency video captioning API onboarding checklist
A short list to keep a multi-tenant captioning workflow clean. Tenancy, presets, and delivery in one place.
- Client → templateId mapping Store each client's saved caption preset (a templateId from GET /templates).
- taskId → client mapping So the webhook files every render into the right tenant's portal space.
- White-label server-only API key One agency key, never exposed to clients or client-side code.
- Optional transcript-approval step Let clients review the transcript before render where the brief needs it.
- Portal delivery hook On the webhook, drop the file into the client space and notify the account owner.
- Webhook signature verified Check x-signature on every payload; dedupe on eventId.
- Per-client usage reporting Track render minutes per client for billing and margin.
The agency captioning stack, honestly
In-house multi-tenant pipeline
- 1ASR vendor wiring — accuracy, retries, language coverage.
- 2Per-client style engine — reproduce each brand's caption look.
- 3Tenancy & isolation — keep one client's assets out of another's.
- 4Render workers — ffmpeg / libass, autoscaling for deadlines.
- 5Job tracking — taskId → client, retries, observability.
- 6Portal delivery — route files to the right client space.
- 7Usage reporting — per-client minute counters for billing.
Captioning as a primitive
- 1Stored templateId per client — render against it on demand.
- 2POST /videos/:id/task — one call per deliverable.
- 3Webhook → portal — verify, file by client, notify.
A creative agency wired the ZapCap API into its client portal and now renders each client's captions in their own saved style, delivered automatically over a webhook.
Captioning stopped being an editor ticket per clip and became a stored preset plus an API call. Finished deliverables land in the right client space without a human moving files between folders.
For agencies
Store a templateId per client in your own database — each is a saved caption preset from GET /templates. When you render a deliverable, look up that client's templateId and pass it on the task, so every clip comes back in the right brand look without anyone remembering it by hand. The templateId is just a field on the task you send to ZapCap’s video captioning API.
Map the returned taskId to the client when you create the task. The webhook payload includes that taskId, so on delivery you look up the client and file the renderUrl into their portal space — no manual sorting between folders.
No. This is a white-label setup: the agency holds a single server-side API key, clients interact only with your portal, and ZapCap sits behind your backend like any other vendor API you wrap.
Yes. Read the transcript off the task once transcription completes, surface it for approval in your portal, edit it if needed, and trigger the render against the approved version. The same transcript can be re-rendered into a different style if the brief changes.
ZapCap bills you per render minute on usage-based credits. Track minutes per client using your taskId → client mapping, then mark up, bundle into a retainer, or pass through — your call. Check the credit balance before queueing heavy weeks.
Use ZapCap for captioning and pair it with a video automation API for scene assembly from briefs or templates. Our honest comparison pages map out who beats us on which dimension.
Build the rest of the agency workflow
AI video SaaS captioning API
The same backend pattern, framed for product teams.
Multilingual subtitle rendering API
Offer clients captions in their markets — per-script layout for CJK, Thai, and beyond.
E-commerce video localization API
For agency clients selling cross-border: one master clip, a localized cut per market.
Performance creative localization API
Spin a winning ad into per-language caption variants fast enough to test.
TikTok Shop video localization API
The 9:16, safe-zone-aware localization workflow for cross-border TikTok Shop.
Caption every client from one integration
Backend-only API, webhook-native, from $0.10/min base usage pricing. Per-client presets in, branded deliverables in your white-label portal out.