Core
Media & assets
The pieces you attach to a video — avatars, voices, brand kits, and your own files.
Avatars
/v1/avatarsBrowse the avatar catalogue and your own avatars.
viewstringoptionalcharacters (default, grouped) or catalogue (flat list).searchstringoptionalgenderstringoptionalmale, female, or unspecified.limitintegeroptionalA list of avatars; owned holds the ones you created.
/v1/avatarsGenerate a new avatar. Training runs in the background.
kindstringrequired"prompt" (designed from a text description) or "photo" (built from a photo).namestringrequiredpromptstringoptionalkind: "prompt" — describe the person.file_urlstringoptionalkind: "photo" — a public https photo (from uploads).consentbooleanoptionaltrue for kind: "photo" (real-person consent).An avatar with status: "processing". Poll it below until ready, then use its id as an auto-mode avatar_id.
/v1/avatars/{id}Check avatar training status. Use it in videos once ready is true.
Voices
/v1/voicesList 100+ voices.
languagestringoptionalEnglish.genderstringoptionalsearchstringoptionallimitintegeroptional/v1/voices/speechGenerate a short TTS sample so you can preview a voice. (Cloning is not available via the API.)
voice_idstringrequiredtextstringrequiredAn audio_url and duration_seconds.
Brand kits
A brand kit is a logo, colors, fonts, motion style and identity. Apply one to auto videos with brand_kit_id.
/v1/brand-kitsCreate a brand kit.
namestringrequiredlogo_urlstringoptionalprimary_colorstringoptional#7C5CFF. Also secondary_color, accent_color.title_fontstringoptionalbody_font.motion_stylestringoptionalelevated, friendly, minimal, professional, or playful.brand_identitystringoptional/v1/brand-kits/from-urlDraft a brand kit automatically from a website. Returns an unsaved draft to review, then POST /v1/brand-kits to save.
urlstringrequired/v1/brand-kitsList your brand kits.
/v1/brand-kits/{id}Delete a brand kit.
Uploads — get a public URL
/v1/uploadsGet a presigned upload URL and the public URL it becomes. Use it for image-to-video inputs, avatar photos, and brand logos.
filenamestringrequiredframe.png.content_typestringrequiredimage/png.An upload_url (PUT your bytes there) and a public_url. Use public_url as image_url, first_frame_url, an avatar file_url, or a brand logo_url.
# 1. get a presigned URL
curl https://api.vivideo.ai/v1/uploads \
-H "Authorization: Bearer $VIVIDEO_API_KEY" \
-d '{"filename":"frame.png","content_type":"image/png"}'
# → { "upload_url": "...", "public_url": "https://vivideocdn.com/uploads/..." }
# 2. PUT the bytes
curl -X PUT "<upload_url>" -H "Content-Type: image/png" --data-binary @frame.png
# 3. use public_url as image_url in a manual videoAssets — for auto-mode references
Auto-mode file_asset_ids reference an asset (a file registered with the avatar engine). Create one, upload the bytes, complete it, then pass its asset_id.
/v1/assetsStart an asset upload.
filenamestringrequiredreference.png.content_typestringrequiredimage/png.size_bytesintegerrequiredid, asset_id, an upload_url and upload_headers. PUT the bytes to upload_url, then call complete below.
/v1/assets/{id}/completeFinalize the asset after uploading its bytes. Returns the asset, ready to use as a file_asset_ids entry.
/v1/assetsList your assets.
/v1/assets/{id}Delete an asset.
public_url (from uploads) is a plain URL that works anywhere a URL is expected. asset_id (from assets) is what the auto pipeline references via file_asset_ids.Machine-readable: interactive reference · openapi.yaml · llms-api.txt. Base URL
https://api.vivideo.ai.