Or jump from this list on a smaller screen.
This is a page from the Audivra documentation. Developer exports — index: http://127.0.0.1:3000/docs/llms.txt, full corpus: http://127.0.0.1:3000/docs/llms-full.txt, OpenAPI: http://127.0.0.1:3000/docs/openapi.json, Postman: http://127.0.0.1:3000/docs/postman.json. Press ⌘K to search docs.
POST /api/v1/generate
Unified generate endpoint — async video jobs, fast-path local TTS/LLM, and GPU cluster offload.
Try it
Submit a real request to POST /api/v1/generate — sync TTS on the fast path or async video with live job status.
Generate playground
Returns 200 for local fast-path TTS or 202 with job_id for GPU video renders.
Checking session…
Browse voice library — play samples and copy voice_id
/api/v1/generateValidates credits, routes to local_worker or gpu_cluster, deducts routing credits atomically, and logs to job_ledger.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| text | string | No | Script for TTS→avatar (omit when using input[]) |
| video | file | No | Multipart video (with audio file or audio_url) |
| audio | file | No | Multipart audio (with video file or video_url) |
| options.sync_mode | string | No | cut_off · loop · bounce · silence · remap |
| voice_id | string | No | Preset voice ID or ready clone UUID |
| avatar_id | string | No | Avatar preset (default: default) |
| taskType | string | No | tts · llm_inference · lip_sync · unified |
| forceCloud | boolean | No | Skip local worker and use GPU cluster |
| model | string | No | TTS model (default: kokoro-82m) |
| video_model | string | No | Lip-sync model (default: musetalk) |
Request body
{
"text": "Habari from Audivra",
"voice_id": "zuri-sw",
"avatar_id": "studio-host",
"taskType": "unified"
}Response
// Async (202) — video / heavy jobs
{
"success": true,
"job_id": "abc123",
"status": "PROCESSING",
"poll": "/api/v1/jobs/abc123",
"meta": { "executedBy": "gpu_cluster", "routingCreditsDeducted": 3 }
}
// Sync (200) — local fast-path TTS or LLM
{
"success": true,
"data": "…",
"meta": { "executedBy": "local_worker", "creditsDeducted": 1 }
}Errors
| Status | Meaning |
|---|---|
| 401 | Invalid or missing API key |
| 402 | Insufficient routing or plan credits |
| 409 | Voice clone still training |
| 502 | Local worker or gateway unavailable |
Video + audio lipsync
curl -X POST http://127.0.0.1:3000/api/v1/generate \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"input": [
{ "type": "video", "url": "http://127.0.0.1:3000/api/docs/samples/example-video.mp4" },
{ "type": "audio", "url": "http://127.0.0.1:3000/api/docs/samples/example-audio.wav" }
],
"options": { "sync_mode": "cut_off" }
}'curl -X POST http://127.0.0.1:3000/api/v1/generate \ -H "Authorization: Bearer sk_live_…" \ -F "video=@presenter.mp4" \ -F "audio=@take.wav" \ -F "sync_mode=cut_off"
Examples
curl -X POST http://127.0.0.1:3000/api/v1/generate \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{"text":"Hello","taskType":"tts","voice_id":"aurora"}'curl -X POST http://127.0.0.1:3000/api/v1/generate \
-H "Authorization: Bearer sk_live_…" \
-d '{"text":"Long script…","forceCloud":true}'Voice IDs: Voice library — play samples and copy voice_id · See also: Processing nodes · Batch generate · Estimate