List Models
List the five voice models you can pass as model, with their prices in dinars
curl https://api.voice213.com/api/v1/models \
-H "Authorization: Bearer $VOICE213_API_KEY"import os
import requests
response = requests.get(
"https://api.voice213.com/api/v1/models",
headers={"Authorization": f"Bearer {os.environ['VOICE213_API_KEY']}"},
timeout=30,
)
for model in response.json()["models"]:
print(model["id"], model["name"], model["pricePer1kChars"], "DA per 1,000 characters")const response = await fetch("https://api.voice213.com/api/v1/models", {
headers: { Authorization: `Bearer ${process.env.VOICE213_API_KEY}` },
});
const { models, currency } = await response.json();
for (const m of models) console.log(m.id, `${m.pricePer1kChars} ${currency} / 1,000 characters`);{
"success": true,
"currency": "DZD",
"defaultModel": "voice213-lite",
"minBillableChars": 100,
"models": [
{
"id": "voice213-lite",
"name": "Voice213 Lite",
"quality": "standard",
"description": "Fast & reliable",
"descriptionAr": "سريع وموثوق",
"pricePer1MChars": 9000,
"pricePer1kChars": 9,
"default": true,
"priceChanges": []
},
{
"id": "voice213-lite-2",
"name": "Voice213 Lite 2",
"quality": "lite2",
"description": "New generation, fast",
"descriptionAr": "الجيل الجديد، سريع",
"pricePer1MChars": 8000,
"pricePer1kChars": 8,
"default": false,
"priceChanges": [{ "from": "2027-01-01", "pricePer1MChars": 15000 }]
},
{
"id": "voice213-pro",
"name": "Voice213 Pro",
"quality": "pro",
"description": "Higher quality",
"descriptionAr": "جودة أعلى",
"pricePer1MChars": 20000,
"pricePer1kChars": 20,
"default": false,
"priceChanges": []
},
{
"id": "voice213-pro-1.5",
"name": "Voice213 Pro 1.5",
"quality": "pro1.5",
"description": "Most natural",
"descriptionAr": "الأكثر طبيعية",
"pricePer1MChars": 39000,
"pricePer1kChars": 39,
"default": false,
"priceChanges": []
},
{
"id": "voice213-pro-2",
"name": "Voice213 Pro 2",
"quality": "pro2",
"description": "Newest & most expressive",
"descriptionAr": "الأحدث والأكثر تعبيراً",
"pricePer1MChars": 12000,
"pricePer1kChars": 12,
"default": false,
"priceChanges": [{ "from": "2027-01-01", "pricePer1MChars": 24000 }]
}
]
}{
"error": "Invalid or inactive API key"
}Returns the voice models you can pass as model to Text to Speech, with the price each one charges today, in dinars, and any price change already scheduled. It's free, and it doesn't count toward your rate limits.
Read it when your app starts rather than hard-coding prices: when a price changes, this list has it first. A scheduled change shows up in priceChanges before it happens, and the new price becomes pricePer1MChars on its date, at midnight UTC.
A model can be paused for the API for a while. It stays in the list, with "available": false, and Text to Speech refuses it with 503 MODEL_DISABLED until it's back. Pick another model meanwhile.
Authorizations
Your API key as a Bearer token: Bearer sk_live_.... See Authentication.
Response
application/jsontrue.
DZD: every price is in Algerian dinars.
The model a request uses when it names none: voice213-lite.
The fewest characters a request is billed for: 100.
The five models, always in the same order.
Work out a price yourself
A voice-over costs its billable characters times the model's price:
cost = max(characters, minBillableChars) × pricePer1MChars ÷ 1,000,000rounded to four decimals, in dinars. Characters are counted without tone directions of up to 100 characters (a longer one counts like the rest of the text), with runs of spaces counted once. To skip the arithmetic, ask Estimate Cost: it counts the characters of your text for you.
Was this page helpful?