MAX VIDEO

API for Max Desktop

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).

GET/api/public/v1/characters

List your characters (includes signed image URLs).

POST/api/public/v1/characters

Upload 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 }
GET/api/public/v1/audio

List your audio assets (songs, recordings, TTS).

POST/api/public/v1/audio

Upload an audio asset.

{ "name": "My song", "audio_data_url": "data:audio/mpeg;base64,…", "duration_seconds": 212.5 }
POST/api/public/v1/jobs

Create 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" }
GET/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.

GET/api/public/v1/library

List finished clips and exports with signed URLs.

GET/api/public/v1/download?job_id=<id>

Get a fresh signed download URL for a job output (or pass export_id for an export).

POST/api/public/v1/tts

Text 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 }
GET/api/public/v1/voices

List 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.