Developers

Personalized ambassador video in your workflow

Enable any campaign for the API, trigger personalized renders of your ambassador from your stack, and get the finished video back via signed webhook. Sync or async, single or bulk.

Endpoints

POST/v1/campaigns/{id}/generate

Render a personalized ambassador video from a values map.

POST/v1/campaigns/{id}/bulk

Render a batch — one personalized video per customer row.

GET/v1/jobs/{id}

Poll a job's status and fetch the video URL.

POST/v1/keys

Issue, scope, rotate, and revoke API keys.

  • Signed webhooks with retries
  • Per-render usage & ₹ cost in the payload
  • Scoped, rotatable API keys
  • Idempotency keys + rate limits
generate.ts
// 1. Trigger a render
const res = await fetch(
  "https://api.synthlogix.ai/v1/campaigns/cmp_8f2/generate",
  {
    method: "POST",
    headers: { Authorization: "Bearer sk_live_••••" },
    body: JSON.stringify({
      values: { name: "Priya", city: "Mumbai" },
      webhook: "https://your.app/hooks/video",
    }),
  }
);
// → 202 { job_id: "job_a91", status: "queued" }

// 2. Receive the finished video on your webhook
// POST https://your.app/hooks/video
// { "job_id": "job_a91", "status": "done",
//   "video_url": "https://cdn.synthlogix.ai/...",
//   "usage": { "tts_chars": 18, "lipsync_seconds": 0.7, "cost_inr": 18.9 } }