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.
Changelog & API versioning
Product evolution for paying API customers — v1 stability promise, additive changes, and deprecation policy.
Version policy
Current API
Production URL prefix
All routes under /api/v1/* are stable for production integrations. Breaking changes ship only under /api/v2 with a minimum 12-month v1 deprecation window.
OpenAPI release
Documentation semver
New optional fields, endpoints, and webhook event types are additive — existing clients keep working without code changes.
- Deprecated fields remain functional for at least 12 months. Sunset dates appear in this changelog and in OpenAPI operation descriptions.
- Machine-readable changelog:
GET /api/v1/changelog X-Audivra-Api-Version: 1 (optional response header on gateway routes)OpenAPI info.version tracks documentation releases — not every doc patch bumps the URL prefix
Release history
Studio layout no longer crashes when local RBAC roles are unseeded.
Fixed
- JSON-store Super Admin bootstrap seeds roles in the same write as the assignment
- Operator emails still enter Studio if rbac_roles is empty
Development operator is never locked out of dashboard sign-in.
Fixed
- info.commgad@gmail.com and ADMIN_EMAILS skip failed-login lockouts and the auth IP rate limit
- First sign-in creates the operator account when it does not exist yet
Local signup works without an invitation code; GET /api/me is safe while signed out.
Changed
- Non-production hosts default to open registration and automatic approval until platform settings are saved
- GET /api/me returns { user: null } with 200 when there is no dashboard session
Fixed
- POST /api/auth maps signup and validation failures to 400 instead of 401
Development operator receives the Developer API plan.
Added
- info.commgad@gmail.com and ADMIN_EMAILS operators are granted Developer API quotas on login (Super Admin + approved studio access)
Development operator Super Admin for info.commgad@gmail.com.
Added
- info.commgad@gmail.com is always Super Admin (studio + /admin) even when ADMIN_EMAILS is empty
Marketing homepage and docs match Studio APIs, credit pool, and voice types.
Changed
- Homepage hero, product pillars, Studio links, and voice-type cards source HOME_PRODUCT_* / docs voice types
- Architecture copy covers generate, batch, estimate, fast-path, and webhooks
- Competitive generate path is POST /api/v1/generate; dub languages match the STT allowlist
- Docs overview, Studio dashboard (usage/analytics/settings), quickstart credit-pool step, llms.txt pipeline
PWA service worker no longer intercepts App Router navigations.
Changed
- Next.js request proxy lives in src/proxy.ts (middleware file convention retired).
Fixed
- /signup and other App Router pages: service worker returned a non-Response and aborted RSC
- getPlatformSettings falls back to defaults when the local JSON store is unwritable
- Local JSON-store accounts still sign in when Supabase Auth rejects the same email
Signup and session auth no longer write the local JSON store on serverless hosts.
Fixed
- Dashboard signup no longer mkdir .data under /var/task on AWS Lambda
- Supabase-backed createUser / authenticate / getSessionUser skip store.json dual-write
- POST /api/auth returns 503 when the local store is unavailable instead of 401 ENOENT
Admin security hardening — TOTP 2FA, login lockouts, CSRF, and security alerts.
Added
- TOTP two-factor authentication at /app/settings with backup codes
- Admin /admin/security dashboard for brute-force and lockout alerts
- CSRF tokens on all admin mutating API routes
- Session-bound cookies — revoked sessions invalidate immediately
- Configurable password policy and admin 2FA requirement in /admin/settings
Expanded STT and dub language catalog to 35+ ISO 639-1 codes with regional TTS routing.
Added
- STT / dub allowlist: German, Italian, Dutch, Zulu, Twi, Chinese, Japanese, Korean, and more
- Grouped language picker in docs try-it, STT studio, and dubbing studio
- Preset voices klara-de, marco-it, lotte-nl, thando-zu with Edge-TTS routing
Multipart generate uploads and gateway lipsync (audio_url + skip_tts).
Added
- POST /api/v1/generate accepts multipart video+audio files
- Gateway /v1/video/generate skip_tts, audio_url, and sync_mode
- Committed sample MP4 at public/docs-samples/example-video.mp4
Video+audio generate, sync_mode, media assets, JSONL batch dry_run, lipsync estimates, sample media.
Added
- POST /api/v1/generate accepts input[] (video + audio URL or asset_id) with options.sync_mode
- POST /api/v1/assets CRUD and GET /api/v1/assets/{id}/file
- JSONL / dry_run / batch.completed webhook on POST /api/v1/generate/batch
- Estimate kind lipsync; hosted sample MP4/WAV under /api/docs/samples/
- Docs: at-a-glance table, media tips, formats, generation times
Paid media scale: 30-minute caps, generate rate bucket, batch queue, neural lip-sync fail-closed.
Added
- POST /api/v1/generate/batch — paid queued jobs (plan max 50 / 200 / 500)
- POST /api/v1/estimate — credit and cap preview
Changed
- Free Trial stays at 3 minutes / 15 MB / 60 rpm / no batch
- Paid generate/avatar/dub use a 100 req/min bucket; GPU lip-sync required (no silent FFmpeg mux)
Installable PWA with responsive shells for phone, tablet, and desktop.
Added
- Web app manifest, 192/512 icons, and /sw.js shell cache
- /docs/get-started/install — add to home screen
Pricing product rails: speech, recognition, music, and sound effects on one prepaid pool.
Added
- Homepage / billing product tabs — Text to speech, Speech to text, Music, Sound effects
- Homepage playground — Play samples and Get API key
- POST /api/v1/music and POST /api/v1/sfx — score beds and cues from the prepaid pool
- GET /api/docs/try-preview — rate-limited hearable samples
- Credit rates for music seconds and SFX clips in the usage calculator
- Homepage payments grid — Stripe cards, wallets, and Checkout beside local rails
Speech-to-text API and dubbing jobs (STT → translate → TTS → lip-sync).
Added
- POST /api/v1/stt — multipart audio or SSRF-checked audio_url, billed per second
- GET /api/v1/stt — allowlisted languages and upload caps
- POST /api/v1/dub — async dubbing job; poll GET /api/v1/jobs/{id}
- Studio /app/stt and /app/dub
- Inference POST /v1/stt (Whisper / faster-whisper)
Launch readiness: legal pages, consent records, marketplace KYC/payouts, Supabase credit metering, and fail-closed GPU weights.
Added
- GET /legal, GET /privacy, GET /docs/legal — versioned terms, privacy, and voice consent
- Consent records on signup, clone create, and marketplace publish
- GET/POST /api/voices/kyc and /api/voices/payouts — seller KYC and credit payouts
- GET/POST /api/admin/moderation — listing queue, KYC verify, hide reviews
- GET /api/health — production readiness probe
- npm test — Node test runner for billing, payouts, and legal constants
Changed
- Next.js metering writes Supabase profiles when configured
- Paid marketplace listings require KYC and wait for moderation in production
- Clone and remix fail closed when REQUIRE_MODEL_WEIGHTS or ENVIRONMENT=production and GPU weights are missing
- Voice design builds a prompt-styled speaker then reclones; remix applies DSP then neural restyle when weights exist
- Deploy docs list migrations through the latest timestamped files
Production billing locks, avatar source SSRF, and inbound webhook hardening.
Changed
- Checkout and PAYG top-up refuse unpaid demo upgrades when the runtime is production
- Paystack accepts HMAC-SHA512 only in production (shared-secret fallback is local-dev)
- GET /api/docs/voice-preview is rate-limited and sends the GPU worker secret
- Avatar source_url and job webhooks reject private, loopback, and metadata hosts on Next.js and the gateway
Fixed
- setPlan writes plan quotas to Supabase profiles
- Signup strips initial_api_key from user_metadata after one-time delivery
- profiles UPDATE cannot raise plan or credits via JWT; webhook_events and payg_topups have RLS
- Gateway Stripe webhooks dedupe on event.id; WebSocket worker auth uses a timing-safe compare
Clone rename/preview in studio, marketplace seller share, reviews, and featured ranking.
Added
- PATCH /api/voices/clone/{id} — rename a clone you own
- Clone studio Preview and Rename on /app/voices
- POST /api/v1/voices/community/{id}/reviews — licensed-buyer ratings
- Featured marketplace sort (uses + ratings)
- Seller credit share on paid listings (70% of price_credits)
- SDK: renameClone, previewClone, reviewCommunityVoice, listCommunityReviews
Changed
- GET /api/v1/voices/community accepts sort=featured|popular|recent
- Marketplace listings expose ratingAvg, reviewCount, and sellerEarningsCredits
Fail-closed payment webhooks, signed sessions, marketplace metering, and outbound URL SSRF guards.
Changed
- Paystack, Flutterwave, and dLocal return 503 when the signing secret is missing — unsigned billing webhooks are rejected
- Dashboard sessions are HMAC-signed; Secure cookie flag is set in production
- Community voice previews require a session or API key
- Outbound job/clone/design webhooks reject private, loopback, and metadata hosts
Fixed
- Marketplace per-use fees now settle on gateway TTS, Next.js gateway TTS, and stream paths
- WORKER_SECRET default is refused in production for internal and GPU worker routes
Video-first public pricing — compare matrix, Private GPU, studio grants, local-rail plan cards.
Added
- Homepage pricing surface: annual toggle, rail on every plan card, talking-head headlines
- Plan compare table from PRICING_TIERS (resolution, watermark, commercial, clones, fast-path)
- Studio / Team and Private GPU SKUs — seats and bring-your-own GPU, not extra volume tiers
- Studio grants for African and LATAM creator studios and campus labs
- /docs/concepts/pricing — FAQ and compare matrix stay in sync with the homepage
Usage calculator for audio characters, avatar minutes, and local-rail checkout.
Added
- Pricing calculator driven from PRICING_TIERS — homepage, /app/billing, and /docs/concepts/credits
- Outputs shared-credit mix as audio characters + talking-head minutes
- Checkout on Pix, UPI, M-Pesa, and other local rails from the recommended plan
Professional cloning, voice remix, and community marketplace.
Added
- Professional multi-sample cloning (kind=professional, Creator Pro+) — 5–25 files, 2–30 minutes
- POST /api/v1/voices/{id}/remix — prompt-conditioned clone variants
- Community marketplace — publish, browse, license, and preview listings
- Studio tabs: Remix and Marketplace at /app/voices
- SDK: remixVoice, listCommunityVoices, acquireCommunityVoice, publishClone
Changed
- POST /api/voices/clone accepts kind=instant|professional and larger professional sample sets
- GET /api/v1/voices includes published community listings for authenticated callers
- Clone training reports progress while status is training
Voice design API, three-type docs restructure, and studio tabs.
Added
- POST /api/voices/design — prompt-based custom voices on paid plans
- POST /api/voices/design/preview — sync preview before saving
- Voice design studio tab at /app/voices
- Docs: three voice types (preset, clone, design) with concept and API pages
- SDK: createDesign, previewDesign, listDesigns, waitUntilDesignReady
- Webhooks: design.ready and design.failed
Changed
- GET /api/v1/voices returns source field and designs array for authenticated callers
- Custom voice slots count clones + designs together
- /docs/concepts/voices redirects to /docs/overview/voices
v1 public API stability release — unified generate, self-hosted fast-path, Global South billing.
Added
- POST /api/v1/generate — unified TTS, LLM, lip-sync, and async video in one endpoint
- POST /api/v1/tts/stream — chunked Opus streaming for low-bandwidth mobile networks
- Voice library docs with audio preview and copyable voice_id
- Webhook reference — Stripe, Paystack, Flutterwave, dLocal payloads + idempotency
- Errors & limits reference — 401/402/429/502, routing credits, plan caps
- Rate limiting enforced on Next.js /api/v1/* (60 req/min per API key)
- GET /api/v1/changelog — machine-readable release history and v1 policy
- X-Audivra-Api-Version: 1 response header on all /api/v1/* routes
- Air-gapped deployment mode (AIR_GAPPED / DEPLOYMENT_MODE=air_gapped)
- Thin TypeScript + Python SDKs (sdk/typescript, sdk/python)
- Voice clone API-key auth, DELETE, multi-sample upload, clone.ready webhooks
- Guides, docs search (⌘K), and try-it playgrounds on TTS + generate pages
Changed
- 402 returned when API key is valid but credit wallet is exhausted (was 401)
- Video seconds quota enforced before async job creation
Beta — async avatar jobs, voice cloning, processing-node routing.
Added
- POST /api/v1/avatar — async lip-synced MP4 jobs with SSE status stream
- Voice cloning (F5-TTS / XTTS) on Starter+ plans
- Fast-path routing — local_worker, gpu_cluster, external_api with routing credits
- Global South checkout — Paystack, Flutterwave, dLocal alongside Stripe
- Self-hosted local worker (Ollama + Kokoro + MuseTalk on :11435)
Early access — TTS API, dashboard, and metering foundation.
Added
- POST /api/v1/tts — WAV output with Kokoro and XTTS engines
- Audivra Studio dashboard — playground, keys, billing, usage
- Credit metering — 1 character = 1 credit, 1 video second = 10 credits
- OpenAPI 3.0 spec and Postman collection export
OpenAPI spec: Download openapi.json · API versioning policy on this page applies to all /api/v1/* routes.