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.
Assets
Reusable media library — upload or register a URL, then pass asset_id into generate, dub, and batch.
POST
/api/v1/assetsAuth required
Multipart file or JSON { url, kind, name }. Returns asset_id and a fetch URL.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file | file | No | Multipart field file (video, audio, or image) |
| url | string | No | Public https URL (SSRF-checked) |
| kind | string | No | video · audio · image |
| name | string | No | Display name |
Request body
JSON
{ "url": "http://127.0.0.1:3000/api/docs/samples/example-video.mp4", "kind": "video", "name": "Presenter" }Response
JSON
{
"id": "a1b2c3d4",
"kind": "video",
"url": "/api/v1/assets/a1b2c3d4/file",
"name": "Presenter"
}Errors
| Status | Meaning |
|---|---|
| 400 | Unsupported media or unsafe URL |
| 401 | Unauthorized |
List, update, delete
GET /api/v1/assets lists your library. GET/PATCH/DELETE /api/v1/assets/{id} manage one record. GET /api/v1/assets/{id}/file streams bytes.
Upload then lipsync
curl -X POST http://127.0.0.1:3000/api/v1/assets \
-H "Authorization: Bearer sk_live_…" \
-F "file=@presenter.mp4" -F "kind=video"
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","asset_id":"…"},{"type":"audio","url":"http://127.0.0.1:3000/api/docs/samples/example-audio.wav"}],"options":{"sync_mode":"cut_off"}}'