White-Label Video Generation API for Agencies

First video free, no card

Use Case

Your clients want UGC video content inside your platform, not on someone else's. The agent-media API lets you embed video generation directly into your agency dashboard. TypeScript SDK, multi-tenant client isolation, batch generation for campaigns, and webhook callbacks when videos are ready. White-label output with zero agent-media branding. Plans start at $39/month. See pricing.

The Problem: Building Video Generation Is Hard

Your agency platform already manages campaigns, creatives, and client accounts. Now clients are asking for AI-generated UGC videos. Building a video pipeline from scratch means stitching together text-to-speech, lip sync, avatar rendering, and video compositing. That is 6 to 12 months of engineering work and a team of ML specialists you do not have.

Redirecting clients to a third-party tool breaks the experience. They leave your platform, create another account, learn another interface. Your agency loses control of the workflow and the relationship. Worse, the client starts wondering why they need you at all.

What you need is an API that handles the entire video pipeline behind the scenes while your platform stays front and center. One integration, multi-tenant isolation per client, and output that arrives with no third-party branding attached.

The Solution: Embed Video Generation via API

agent-media exposes a REST API and TypeScript SDK that your engineering team can integrate in a single sprint. Wrap the SDK in a branded service layer, generate videos on behalf of any client, and deliver finished mp4 files through your own UI. The client never sees agent-media.

Multi-tenant support means you isolate actors, scripts, and brand assets per client. Batch endpoints let you kick off entire campaign variants in one call. Webhooks notify your system when each video completes so your client dashboard updates in real time.

Use credits to generate videos inside your own platform, then deliver the finished files through your client dashboard. Video generation becomes a built-in workflow, not a separate production queue. Get your API key.

Integration Examples

Wrap the SDK in your branded service. Generate videos for any client with their brand assets.

Initialize the SDK once and expose your own interface. Your
 platform calls{' '}
 videoService.generate(){' '}, clients never see the underlying API.
import{' '}
 {'{ agent-media }'}{' '}
 from{' '}
 '@agent-media/sdk'
const client ={' '}
 new{' '}
 agent-media({'{'} apiKey: process.env.AGENT_MEDIA_KEY {'}'})
export async function{' '}
 generateForClient(
{' '}clientId: string,
{' '}script: string,
{' '}actorId: string,
{' '}brandAssets: {'{ logoUrl: string; colors: string[] }'}
{')'} {'{'}
{' '}const video ={' '}
 await client.videos.create({'{'}
{' '}script,
{' '}actor: actorId,
{' '}metadata: {'{ clientId, ...brandAssets }'},
{' '}webhook: `https://your-app.com/hooks/video/${clientId}`
{' })'}
{' '}return video
{'}'}
Submit an array of video jobs in one API call. Each job can
 target a different actor, script variant, or client. The
 batch endpoint returns a job ID you can poll or receive via
 webhook.
const batch ={' '}
 await client.videos.createBatch({'{'}
{' '}jobs: [
{' '}{'{'} script: "This serum changed my skin...", actor: "sofia", metadata: {'{ clientId: "skincare-co" }'} {'}'},
{' '}{'{'} script: "Best pre-workout I've tried...", actor: "jake", metadata: {'{ clientId: "fit-supps" }'} {'}'},
{' '}{'{'} script: "We saved 5 hours per week...", actor: "marcus", metadata: {'{ clientId: "saas-app" }'} {'}'},
{' '}],
{' '}webhook: "https://your-app.com/hooks/batch"
{'}'})
{'// batch.id → poll or wait for webhook'}
When a video finishes rendering, agent-media sends a POST to
 your webhook URL with the video URL, status, and metadata.
 Use it to update your client dashboard in real time.
export async function{' '}
 POST(req: Request) {'{'}
{' '}const{' '}
 {'{ videoId, status, url, metadata }'} ={' '}
 await req.json()
{' '}{"// Update your client's dashboard"}
{' '}await db.videos.create({'{'}
{' '}clientId: metadata.clientId,
{' '}videoUrl: url,
{' '}status,
{' })'}
{' '}{'// Notify the client'}
{' '}await{' '}
 notifyClient(metadata.clientId, "Your video is ready")
{'}'}

Pricing at Scale

A talking ad is 28 credits per second, plus 15 credits for captions, so a 10-second ad with captions is 295 credits. An Extreme plan at $129/month gives you 12,900 credits a month. Seedance 2.0 clips run 30, 60 or 150 credits per second at 480p, 720p or 1080p. Need more? Extra credits start at $5 for 500, on any plan. Credits you buy never expire.

For high-volume agencies, the workflow is straightforward. Generate campaign variants through the API, route finished videos back to your platform, and keep client delivery in one place.

View full pricing.

Why agent-media for Agency Platforms

Integration Architecture

Service layer pattern. Wrap the agent-media SDK in a service class inside your backend. Your API routes call the service, the service calls agent-media. If you ever need to swap providers, you change one file.

Client metadata for multi-tenancy. Every API call accepts a metadata object. Store the client ID, brand colors, logo URL, and any custom fields. This metadata flows through to webhooks, so your handler knows exactly which client to notify.

Webhook-driven updates. Video rendering takes 2 to 5 minutes. Instead of polling, register a webhook URL per client or per batch. agent-media POSTs the finished video URL, status, and your metadata back to your server. Update the client dashboard and send a notification.

Credit management at scale. Use credit packs to pre-purchase volume. Track usage per client in your own billing system. Bill clients per video, per month, or as part of a retainer. The API returns credit balance so you can enforce limits in your platform.

Related Pages

Last updated: April 2026

What do you sell?

First video free, no card