https://app.yuzulabs.io/api/v1
All endpoints require Bearer authentication and a workspace with at least one ready avatar, a configured voice, and remaining quota.
Lifecycle
Endpoint summary
POST Create flow
POST /v1/flows/sales-email-video
Creates a flow and starts script generation. The response returns immediately with a flowId you can poll.
Body parameters
string
required
Sales-call summary in plain text. Minimum 50 words. Becomes the input for script generation.
boolean
default:"true"
When
true, the flow proceeds straight from generating_script to segmenting. When false, it stops at pending_approval until you call the /approve endpoint.string
Convex ID of the avatar to render. Defaults to the first ready 16:9 avatar in your workspace.
string
ElevenLabs voice ID. Defaults to the workspace’s configured voice.
string
Prospect’s first name. Used in the script’s greeting.
string
Prospect’s company name.
string
Sender’s name. Defaults to the API key’s owner.
string
Sender’s company. Defaults to the workspace name.
string
Video title shown in the dashboard. Auto-generated from the prospect name when omitted.
Response
boolean
required
true on accepted requests.string
required
Convex ID. Use this to poll status, approve, or cancel.
string
required
Always
pending for newly created flows.string
Human-readable confirmation.
GET List flows
GET /v1/flows/sales-email-video
Returns flows visible to the API key, most recent first. Useful for dashboards and reconciliation jobs.
Query parameters
number
default:"20"
Page size. Maximum 100.
string
Continuation cursor from a previous response.
string
Filter by a single status (e.g.
completed, pending_approval).Response
boolean
required
object[]
required
Array of flow summaries. Each entry contains
flowId, status, createdAt, title, and videoUrl (when completed).string
Present when more results are available.
GET Get flow
GET /v1/flows/sales-email-video/{flowId}
Returns the current status of a single flow. Poll this every few seconds while the flow is in progress.
Path parameters
string
required
The flow ID returned from the create endpoint.
Response
string
required
string
required
One of the lifecycle states above.
string
required
ISO-8601 timestamp.
string
ISO-8601 timestamp. Only present once
status is completed.string
Direct CDN URL to the rendered MP4. Only present once
status is completed.number
Duration in seconds.
string
Final script. Available from
pending_approval onwards.object[]
Per-scene breakdown:
index, text, durationEstimate. Available from segmenting onwards.string
Failure reason. Only present when
status is failed.POST Approve, edit, or reject script
POST /v1/flows/sales-email-video/{flowId}/approve
Only valid while the flow is in pending_approval. Use it to advance, edit, or kill a draft script.
Path parameters
string
required
Body parameters
string
required
Either
"approve" or "reject".string
Replacement script. Honored only when
action: "approve". If omitted, the draft script proceeds unchanged.Response
boolean
required
string
required
string
required
After approval, transitions to
segmenting. After rejection, transitions to cancelled.DELETE Cancel flow
DELETE /v1/flows/sales-email-video/{flowId}
Cancels a flow in any non-terminal state. Already-rendered videos are kept; in-flight rendering is aborted.
Path parameters
string
required
Response
boolean
required
string
required
string
required
Always
cancelled on success.