API reference
Base URL https://api.voxvane.com. Authenticate with Authorization: Bearer $VOXVANE_API_KEY. This page is generated from the OpenAPI document (1.0.0).
GET/v1/healthPreview
Liveness
The service is up. status is disabled until the API is turned on. aria_rev is the 40-character label of the voice package when one is configured.
Response
The service is up. status is disabled until the API is turned on. aria_rev is the 40-character label of the voice package when one is configured.
GET/v1/voicesPreview
List voices
Voices this key can request.
Response
Voices this key can request.
POST/v1/text-to-speech/{voice_id}Preview
Create speech
Audio bytes. mp3 is audio/mpeg, wav is audio/wav, pcm is audio/L16 at 24000 Hz, mulaw_8000 is audio/basic at 8000 Hz.
| Field | Type | Description |
|---|---|---|
voice_id | string | A voice id from GET /v1/voices, such as aria. |
output_format | string | Optional. The JSON body field wins when both are set. |
text | string | Required. Text to speak. Every character counts, including spaces. |
output_format | string | mp3 (default), wav, pcm (16-bit little-endian, 24000 Hz, mono), or mulaw_8000 (8-bit mu-law, 8000 Hz, mono). |
Response
Audio bytes. mp3 is audio/mpeg, wav is audio/wav, pcm is audio/L16 at 24000 Hz, mulaw_8000 is audio/basic at 8000 Hz.
curl -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);POST/v1/text-to-speech/{voice_id}/streamPreview
Stream speech
Same request as create speech. The body is chunked audio of the same format, so a client can start playback before the response ends.
| Field | Type | Description |
|---|---|---|
voice_id | string | A voice id from GET /v1/voices. |
text | string | Required. Text to speak. Every character counts, including spaces. |
output_format | string | mp3 (default), wav, pcm (16-bit little-endian, 24000 Hz, mono), or mulaw_8000 (8-bit mu-law, 8000 Hz, mono). |
Response
Chunked audio. Headers match create speech.
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))));GET/v1/usagePreview
Usage for this key
Characters and audio seconds recorded for this key. Text to speech is $0.012 per 1,000 characters (price_version 2026-10-03).
Response
Characters and audio seconds recorded for this key. Text to speech is $0.012 per 1,000 characters (price_version 2026-10-03).