TTS
Audio TTS API
Access ElevenLabs and Minimax text-to-speech through a unified API -- multilingual, expressive, and high-quality audio synthesis.
Quick Start
1
Get your API key from Console2
Choose an audio provider below3
POST to create a TTS task4
Poll GET to retrieve the audio URLAuthentication
Add Authorization header to all requests:
Authorization: Bearer YOUR_API_KEY
Endpoints
POST
/api/v1/audio/ttsCreate a TTS task
GET
/api/v1/audio/tts?task_id=xxxQuery task status and get audio URL
API Reference
Select a provider to see its parameters and examples
11labs
ElevenLabs
Industry-leading text-to-speech from ElevenLabs. Ultra-low latency, 70+ languages, and highly expressive voice synthesis.
Models
ElevenLabs TTS Flash
eleven-tts-flash$0.0295/1K chars
Ultra-fast, 32 languages
ElevenLabs TTS Turbo
eleven-tts-turbo$0.0295/1K chars
Low latency, 32 languages
ElevenLabs TTS Multilingual
eleven-tts-multilingual$0.0589/1K chars
High quality, 29 languages
ElevenLabs TTS v3
eleven-tts-v3$0.0736/1K chars
Most expressive, 70+ languages
Parameters
modelrequired
stringeleven-tts-flash / eleven-tts-turbo / eleven-tts-multilingual / eleven-tts-v3textrequired
stringThe text content to convert to speechvoice_idrequired
stringVoice ID to use for synthesis. See popular voices below.language_code
stringLanguage hint, e.g. "en", "zh", "ja". Improves accuracy for multilingual models.callback_url
stringWebhook URL called when task completesPopular Voice IDs
Rachel
Conversational female
21m00Tcm4TlvDq8ikWAMAdam
Deep male
pNInz6obpgDQGcFmaJgBBella
Warm female
EXAVITQu4vr4xnSDxMaLNotes
- -eleven-tts-flash is recommended for real-time applications
- -eleven-tts-v3 supports audio tags for emotional control
- -Voice IDs are stable -- save them once, reuse across requests
Code Example
# Step 1: Create TTS task
curl -X POST https://apimodels.app/api/v1/audio/tts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "eleven-tts-v3",
"text": "Hello, this is a test of ElevenLabs text-to-speech.",
"voice_id": "21m00Tcm4TlvDq8ikWAM",
"language_code": "en"
}'
# Step 2: Poll status
curl "https://apimodels.app/api/v1/audio/tts?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"Response Format
Create Task Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "clxxx...",
"state": "pending"
}
}Success Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "clxxx...",
"state": "completed",
"result": "https://cdn.example.com/audio.mp3",
"createTime": 1705123450000,
"completeTime": 1705123460000
}
}Failed Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "clxxx...",
"state": "failed",
"failMsg": "Invalid voice_id"
}
}Task States
pendingQueued, waiting to startprocessingAudio is being synthesizedcompletedDone -- audio URL available in result fieldfailedSynthesis failedError Codes
400Bad Request -- invalid or missing parameters401Unauthorized -- invalid API key402Payment Required -- insufficient credits404Not Found -- task ID not found500Internal Server ErrorImportant Notes
- -Audio files are stored for 7 days -- download promptly
- -Poll every 3-5 seconds for status updates
- -Use callback_url for production workloads
- -Keep your API key secure