VoxVane docs
VoxVane is one API for text to speech, speech to text, turn detection and real-time voice agents. Text to speech is specified in the OpenAPI document. The other products are still preview placeholders.
Quickstart
Make your first audio file in two minutes.
API reference
Every endpoint, parameter and response.
Voice Agents
How sessions, tools and handoff work.
Product guides
Guides for each product are on their way. Each link below opens a placeholder until its guide is published.
Quickstart
Get an API key
See API keys below. Export it so the examples can read it:
export VOXVANE_API_KEY="your-key-here"Make some speech
Send text and a voice id. The response is audio, not JSON.
Preview APIcurl -X POST https://api.voxvane.com/v1/text-to-speech/aria \ -H "Authorization: Bearer $VOXVANE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"text": "Hello from VoxVane.", "output_format": "mp3"}' \ --output hello.mp3import os from voxvane import VoxVane client = VoxVane(api_key=os.environ["VOXVANE_API_KEY"]) audio = client.text_to_speech("aria", "Hello from VoxVane.", output_format="mp3") open("hello.mp3", "wb").write(audio)import { writeFile } from "node:fs/promises"; import { VoxVane } from "voxvane"; const client = new VoxVane({ apiKey: process.env.VOXVANE_API_KEY }); const audio = await client.textToSpeech("aria", "Hello from VoxVane.", { outputFormat: "mp3" }); await writeFile("hello.mp3", audio);curl -X POST https://api.voxvane.com/v1/text-to-speech/aria/stream \ -H "Authorization: Bearer $VOXVANE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"text": "Hello from VoxVane.", "output_format": "mp3"}' \ --output hello.mp3import os from voxvane import VoxVane client = VoxVane(api_key=os.environ["VOXVANE_API_KEY"]) with open("hello.mp3", "wb") as audio: for chunk in client.stream("aria", "Hello from VoxVane.", output_format="mp3"): audio.write(chunk)import { writeFile } from "node:fs/promises"; import { VoxVane } from "voxvane"; const client = new VoxVane({ apiKey: process.env.VOXVANE_API_KEY }); const chunks = []; for await (const chunk of client.stream("aria", "Hello from VoxVane.", { outputFormat: "mp3" })) chunks.push(chunk); await writeFile("hello.mp3", Buffer.concat(chunks.map(chunk => Buffer.from(chunk))));List voices
GET /v1/voicesreturns the ids you can pass in that path. Usage for the key isGET /v1/usage.
API keys
During the private preview, API keys are issued by invitation. There is no self-serve sign-up yet; this page will link to it when there is.
- Send the key as
Authorization: Bearer …on every request. - Keep it on your server. Never put it in browser or mobile code.
- Store it in the
VOXVANE_API_KEYenvironment variable, not in source control.
SDKs
Python and JavaScript clients call this HTTP API and return audio bytes. They do not include a model or a pronunciation table. The curl example above is the same contract the clients use. Package install steps ship with the public SDK.
Errors and limits
Errors return JSON: { "error": { "code": "invalid_request", "message": "…" } } with a 4xx or 5xx status. A 429 response includes Retry-After. Speech is $0.012 per 1,000 characters. GET /v1/usage reports characters, audio seconds and the customer charge.