Create a personal API key in Settings → API keys, then send it as a Bearer token on every request:
Authorization: Bearer mv_live_…
All responses are JSON. Errors return { "error": "…" } with a clear message (402 = out of credits, 401 = bad key, 400 = bad input).
/api/public/v1/charactersList your characters (includes signed image URLs).
/api/public/v1/charactersUpload a character. consent must be true — you must own the image or have permission to animate the likeness.
{ "name": "Ava", "kind": "character", "image_data_url": "data:image/png;base64,…", "consent": true }/api/public/v1/audioList your audio assets (songs, recordings, TTS).
/api/public/v1/audioUpload an audio asset.
{ "name": "My song", "audio_data_url": "data:audio/mpeg;base64,…", "duration_seconds": 212.5 }/api/public/v1/jobsCreate an avatar / shot / lipsync / tts job. Same engines and credit rules as the web app. Returns { id, status }.
{ "engine_id": "hedra-character-3", "character_id": "…", "audio_asset_id": "…", "seconds": 10, "ratio": "16:9", "prompt": "singing, warm smile" }/api/public/v1/jobs?id=<jobId>Poll a job. When status is succeeded, output_url is a signed download URL (valid 1 hour). Failed jobs refund credits automatically.
/api/public/v1/libraryList finished clips and exports with signed URLs.
/api/public/v1/download?job_id=<id>Get a fresh signed download URL for a job output (or pass export_id for an export).
/api/public/v1/ttsText to speech. engine is "maxvoice" (default); "elevenlabs" and voiceId are owner-only (403 for other accounts). emotion 0.25–1.0, pace 0.2–0.8. Max 5000 characters per request; 1 credit per 200 characters, rounded up (minimum 1). Daily limit: 50,000 characters per UTC day, configurable; owner exempt. Over-limit requests do not charge. Max Voice failures refund credits and never fall back to ElevenLabs for normal users. Only the owner can use fallback. Returns { audio: "data:audio/wav;base64,…", engine, characters, creditsUsed } (ElevenLabs returns audio/mpeg).
{ "text": "Hello from Max Voice", "engine": "maxvoice", "emotion": 0.5, "pace": 0.5 }/api/public/v1/voicesList Max Voice presets (Natural, Energetic, Dramatic, Calm with emotion/pace values). ElevenLabs voices are included only for the owner account.
Engine ids and prices are listed in the app (project editor → engine picker). Credits are charged at the estimate shown before generation and refunded if a job fails.