ElevenLabs API : le guide développeur complet
L’API d’ElevenLabs donne un accès programmatique à toute l’infrastructure audio IA de la plateforme : text-to-speech, speech-to-text, clonage de voix, dialogue multi-locuteurs, musique, effets sonores, doublage et agents conversationnels. Accessible via REST, streaming SSE et WebSocket, avec des SDKs officiels Python et TypeScript.
ElevenLabs n’est plus seulement un outil de création : c’est une infrastructure audio IA complète. L’API permet d’intégrer la synthèse vocale dans vos applications, d’automatiser la production de contenu audio, de déployer des agents vocaux en temps réel et de construire des pipelines de localisation multilingue. Ce guide couvre l’architecture de l’API, les endpoints principaux, les SDKs, le système de crédits, les exemples de code et les bonnes pratiques de production.
- Architecture
- REST + Streaming SSE + WebSocket
- SDKs officiels
- Python, TypeScript/JavaScript, Flutter, Swift, Kotlin (Agents)
- Authentification
- Header
xi-api-key - Facturation
- Par crédits (1 caractère = 1 crédit TTS standard, 0.5 pour Flash)
- Latence TTS streaming
- < 500 ms (standard), ~75 ms (Flash v2.5)
- Documentation
- elevenlabs.io/docs/api-reference
- Plan minimum API
- Free (limité) ou Starter (5 $/mois, usage commercial)
Architecture de l’API
L’API ElevenLabs propose trois modes d’interaction, chacun adapté à un type d’intégration.
REST (requête complète)
L’endpoint REST POST /v1/text-to-speech/{voice_id} retourne le fichier audio complet en une seule réponse. C’est le mode le plus simple : vous envoyez le texte, vous recevez l’audio. Idéal pour le traitement par lots, la génération d’audiobooks, et tout scénario où l’audio est stocké ou mis en cache avant lecture.
Streaming SSE
L’endpoint streaming POST /v1/text-to-speech/{voice_id}/stream envoie l’audio par chunks au fur et à mesure de la génération. Le premier chunk arrive en moins de 500 ms (modèle standard) ou ~75 ms (Flash v2.5). C’est le mode recommandé pour les applications où l’utilisateur doit entendre la voix rapidement : assistants vocaux, lecteurs audio web, narration en temps réel.
WebSocket (input streaming)
Le WebSocket permet un échange bidirectionnel en temps réel. Vous envoyez du texte progressivement (mot par mot, phrase par phrase) et recevez l’audio correspondant en continu. C’est le mode conçu pour les agents IA conversationnels où le texte arrive depuis un LLM en streaming et doit être vocalisé immédiatement.
api-global-preview.elevenlabs.io est déprécié. Utilisez simplement api.elevenlabs.io (c’est déjà le défaut dans les SDKs).
Les endpoints principaux
Text-to-Speech
L’endpoint central de l’API. Convertit du texte en audio avec la voix et le modèle de votre choix.
POST /v1/text-to-speech/{voice_id}
POST /v1/text-to-speech/{voice_id}/stream
Paramètres principaux :
text (string, requis) : le texte à convertir. Limite par requête : 5 000 caractères (v3), 10 000 (Multilingual v2), 40 000 (Flash v2.5, Turbo v2.5).
model_id (string, optionnel) : identifiant du modèle. Valeurs courantes : eleven_v3, eleven_multilingual_v2, eleven_flash_v2_5, eleven_turbo_v2_5. Par défaut : eleven_multilingual_v2.
voice_settings (object, optionnel) : surcharge les paramètres de la voix (stability, similarity_boost, style, speed) pour cette requête uniquement.
output_format (string, optionnel) : format de sortie. Exemples : mp3_44100_128, mp3_22050_32, pcm_44100, ulaw_8000. Les formats MP3 192 kbps nécessitent le plan Creator. Le PCM/WAV 44.1 kHz nécessite le plan Pro.
language_code (string, optionnel) : code ISO 639-1 pour forcer une langue et la normalisation du texte.
seed (integer, optionnel) : pour une reproductibilité partielle des résultats.
previous_request_ids / next_request_ids (array, optionnel) : pour maintenir la continuité prosodique entre des segments consécutifs. Essentiel pour les audiobooks et les contenus longs découpés en plusieurs requêtes.
Text to Dialogue (v3)
Exclusif au modèle Eleven v3. Génère des conversations multi-locuteurs naturelles à partir d’un script avec indications de voix et audio tags.
POST /v1/text-to-dialogue
Cet endpoint gère automatiquement la prosodie entre les interlocuteurs, les transitions et les audio tags ([whispers], [excited], etc.). L’API publique pour Text to Dialogue est disponible depuis mars 2026.
Speech-to-Text (Scribe)
Transcription audio avec le modèle Scribe v2. Précision de pointe dans 90+ langues, avec timestamps au niveau du mot, diarisation des locuteurs et tagging audio dynamique.
POST /v1/speech-to-text
Facturation : par minute audio traitée. Vitesse de traitement : 20 à 50× le temps réel selon la taille du fichier.
Autres endpoints
Voice Cloning : création de clones instantanés (POST /v1/voices/add) et gestion des voix (GET /v1/voices). Voir notre guide clonage de voix.
Sound Effects : génération d’effets sonores à partir de descriptions textuelles. Voir ElevenLabs Sound Effects.
Music : génération de musique par prompt textuel, avec contrôle du genre, du style et de la structure.
Dubbing : doublage automatique de vidéos dans 29 langues. Facturation par minute audio source. Voir ElevenLabs doublage.
Voice Design : création de voix à partir de descriptions textuelles.
Agents (ConvAI) : plateforme complète de déploiement d’agents vocaux avec intégration téléphonique (Twilio, SIP), WhatsApp, bases de connaissances et outils personnalisés.
Pronunciation Dictionaries : dictionnaires de prononciation personnalisés pour contrôler la façon dont des mots ou noms spécifiques sont prononcés.
SDKs et intégration
Python SDK
Le SDK Python officiel est le plus utilisé. Installation :
pip install elevenlabs
Exemple complet de text-to-speech avec streaming :
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
load_dotenv()
client = ElevenLabs() # Utilise ELEVEN_API_KEY depuis .env
# Génération simple
audio = client.text_to_speech.convert(
text="Bonjour, ceci est un test de l'API ElevenLabs.",
voice_id="JBFqnCBsd6RMkjVDRZzb",
model_id="eleven_multilingual_v2",
output_format="mp3_44100_128",
)
play(audio)
# Streaming (pour lecture en temps réel)
audio_stream = client.text_to_speech.convert_as_stream(
text="Ce texte sera lu au fur et à mesure de la génération.",
voice_id="JBFqnCBsd6RMkjVDRZzb",
model_id="eleven_flash_v2_5",
)
# Traitez les chunks au fur et à mesure
for chunk in audio_stream:
# Envoyez au lecteur audio, enregistrez, etc.
pass
Clone instantané via l’API :
voice = client.voices.ivc.create(
name="Ma voix",
description="Voix masculine française, ton posé",
files=["./enregistrement_1.mp3", "./enregistrement_2.mp3"],
)
TypeScript / JavaScript SDK
Installation :
npm install @elevenlabs/elevenlabs-js
Exemple :
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const client = new ElevenLabsClient({
apiKey: "VOTRE_CLE_API"
});
await client.textToSpeech.convert("JBFqnCBsd6RMkjVDRZzb", {
outputFormat: "mp3_44100_128",
text: "Hello from the ElevenLabs API.",
modelId: "eleven_multilingual_v2",
});
Autres SDKs
ElevenLabs propose aussi des SDKs natifs pour Flutter, Swift et Kotlin, principalement orientés vers la plateforme Agents (agents vocaux conversationnels sur mobile et web). Pour les autres langages, l’API REST standard est accessible depuis n’importe quel client HTTP.
Modèles et limites par requête
| Modèle | model_id | Limite/requête | Crédit/caractère | Latence | Langues |
|---|---|---|---|---|---|
| Eleven v3 | eleven_v3 |
5 000 car. | 1.0 | Moyenne | 70+ |
| Multilingual v2 | eleven_multilingual_v2 |
10 000 car. | 1.0 | Moyenne | 29 |
| Flash v2.5 | eleven_flash_v2_5 |
40 000 car. | 0.5 | ~75 ms | 32 |
| Turbo v2.5 | eleven_turbo_v2_5 |
40 000 car. | 0.5 | ~250-300 ms | 32 |
| English v1 | eleven_monolingual_v1 |
10 000 car. | 1.0 | Moyenne | 1 (EN) |
Pour les contenus longs dépassant la limite par requête, découpez le texte en segments et utilisez les paramètres previous_request_ids / next_request_ids pour maintenir la fluidité prosodique entre les morceaux. Un maximum de 3 request IDs peut être envoyé par requête.
Système de crédits et facturation
L’API ElevenLabs facture en crédits. Chaque plan inclut un quota mensuel de crédits, et les dépassements sont facturés au crédit supplémentaire.
TTS : 1 caractère = 1 crédit (modèles standard), 0.5 crédit (Flash/Turbo). Un texte de 1 000 mots (~6 000 caractères) consomme 6 000 crédits en standard ou 3 000 en Flash.
STT (Scribe) : facturation à la minute audio. Les développeurs API bénéficient de tarifs plus avantageux que les utilisateurs de l’interface web.
Musique et Sound Effects : facturation par génération.
Dubbing : facturation par minute audio source.
Dépassements (overages) : activables à partir du plan Starter. Le coût par 1 000 caractères supplémentaires varie selon le plan : environ 0,30 $ (Creator), 0,24 $ (Pro), 0,18 $ (Scale), 0,12 $ (Business). Si vos dépassements atteignent régulièrement 30 à 50 % du prix du plan supérieur, il est plus rentable de passer au plan au-dessus.
Crédits non consommés : report possible pendant un mois maximum sur les plans payants actifs. Les crédits expirent en cas de résiliation ou de downgrade.
Requêtes échouées : les crédits ne sont déduits qu’en cas de génération réussie. Une requête qui échoue (erreur 4xx, 5xx) ne consomme rien.
Bonnes pratiques de production
Normalisez votre texte
Écrivez les nombres en toutes lettres (« mille cinq cents » au lieu de « 1500 »). Évitez les abréviations ambiguës. Utilisez des dictionnaires de prononciation (pronunciation_dictionary_locators) pour les noms propres, termes techniques ou mots spécifiques à votre domaine. Vous pouvez uploader jusqu’à 3 dictionnaires par requête.
Gérez les erreurs correctement
L’API retourne des codes HTTP standards : 200 (succès), 400 (requête invalide), 401 (authentification échouée), 429 (rate limit dépassé). Les erreurs 429 sont les plus courantes en production : elles indiquent que vous avez dépassé les limites de concurrence de votre plan. Implémentez un retry avec backoff exponentiel pour les erreurs 429 et 5xx.
Respectez les limites de concurrence
Chaque plan a un nombre maximum de requêtes simultanées. Les plans Starter et Creator ont des limites basses. Si votre workflow nécessite du traitement parallèle (plusieurs voix simultanées, plusieurs segments en parallèle), vous devrez probablement passer au plan Pro ou Scale. La concurrence est souvent le facteur qui force un upgrade de plan avant l’épuisement des crédits.
Mode Zero Retention
Pour les entreprises avec des exigences de confidentialité strictes, le paramètre enable_logging: false active le mode Zero Retention : les données de la requête ne sont pas stockées par ElevenLabs. Le request stitching (continuité entre requêtes) et l’historique sont désactivés dans ce mode. Disponible uniquement pour les plans Enterprise.
Continuité prosodique pour les contenus longs
Quand vous découpez un texte long en segments, utilisez les paramètres previous_text / next_text ou les IDs de requêtes précédentes/suivantes. Le modèle utilise ces informations pour ajuster l’intonation aux jointures. C’est ce qui fait la différence entre un audiobook fluide et un enchaînement de segments déconnectés.
Cas d’usage API
Lecteur audio web (Audio Native)
ElevenLabs propose Audio Native, un lecteur audio embeddable qui convertit automatiquement le contenu d’une page web en audio via le TTS. Intégrez un script sur votre site et vos articles sont instantanément écoutables. C’est l’intégration la plus simple pour les éditeurs de contenu et les blogs.
Agents vocaux conversationnels
L’API Agents (ConvAI) permet de déployer des agents vocaux qui répondent par téléphone (via Twilio ou SIP trunk), chat, e-mail et WhatsApp. Les agents s’intègrent avec des bases de connaissances, des outils webhooks, et supportent les guardrails personnalisés pour filtrer les réponses. Les SDKs natifs Flutter, Swift et Kotlin facilitent l’intégration mobile.
Pipeline de production audiobook
Automatisez la production d’audiobooks en découpant le manuscrit en chapitres, en assignant des voix différentes aux personnages (via Text to Dialogue v3 ou des requêtes TTS séparées), en générant l’audio segment par segment avec continuité prosodique, puis en assemblant le résultat final. Le plan Pro (500 000 crédits, ~11h d’audio standard) couvre un livre moyen par mois.
Localisation multilingue
L’API Dubbing automatise le doublage de vidéos : uploadez une vidéo, spécifiez la langue cible, et ElevenLabs détecte les locuteurs, traduit, synthétise les voix et synchronise les lèvres. 29 langues supportées. Facturation par minute audio source. Combiné avec le clonage vocal, vous pouvez doubler vos contenus dans la voix originale du narrateur.
Formats audio supportés
| Format | Exemple output_format | Plan minimum | Usage typique |
|---|---|---|---|
| MP3 (standard) | mp3_44100_128 |
Free | Web, podcasts, vidéos |
| MP3 (haute qualité) | mp3_44100_192 |
Creator | Audiobooks, production pro |
| PCM / WAV | pcm_44100 |
Pro | Post-production, sound design |
| µ-law | ulaw_8000 |
Starter | Téléphonie |
| OPUS | Plusieurs bitrates | Starter | Streaming, agents vocaux |
Sécurité et conformité
L’API ElevenLabs offre plusieurs niveaux de sécurité selon le plan :
Plans standard : authentification par clé API, chiffrement TLS, monitoring du contenu généré pour détecter les abus.
Plans Enterprise : SSO/SAML (y compris sur iOS et Android depuis mars 2026), SLAs contractuels, limites de débit personnalisées, conformité SOC 2, mode Zero Retention, et support dédié. Les accords peuvent inclure HIPAA/BAA, déploiement auto-hébergé, et audits de sécurité.
ElevenLabs surveille activement le contenu généré via sa plateforme et ses API. La création de deepfakes ou l’usurpation d’identité vocale est interdite par les conditions d’utilisation et peut entraîner la suspension immédiate de la clé API.
Verdict
L’API ElevenLabs est la plus complète du marché pour l’audio IA. Son périmètre fonctionnel (TTS, STT, clonage, dialogue, musique, effets sonores, doublage, agents) dépasse de loin ce que proposent les alternatives (Google Cloud TTS, Amazon Polly, Azure Speech). Les SDKs Python et TypeScript sont bien maintenus, la documentation est exhaustive, et le routage global automatique simplifie le déploiement international.
Le point de friction reste le modèle de crédits. Calculer son budget à l’avance demande de la rigueur, et les limites de concurrence peuvent surprendre sur les plans bas. Pour les applications de production, le plan Pro (99 $/mois, 500 000 crédits, PCM 44.1 kHz) est le minimum recommandé. Les équipes avec des volumes importants ou des besoins temps réel devront viser Scale (330 $/mois) ou Business (1 320 $/mois).
Pour les développeurs qui commencent, le plan Free (10 000 crédits/mois) suffit pour explorer l’API et prototyper. Passez au Starter (5 $/mois) dès que vous avez besoin d’un usage commercial ou d’un clone vocal.
Questions fréquentes
Comment obtenir une clé API ElevenLabs ?
Créez un compte sur elevenlabs.io, connectez-vous, puis cliquez sur « Developers » dans le menu de gauche. Votre clé API est affichée dans la section API Keys. Copiez-la et utilisez-la dans le header xi-api-key de vos requêtes HTTP, ou définissez-la comme variable d’environnement ELEVEN_API_KEY pour les SDKs Python et JavaScript.
Les crédits sont-ils déduits en cas d’erreur ?
Non. Les crédits ne sont consommés qu’en cas de génération audio réussie. Si votre requête retourne une erreur (400, 401, 429, 500), aucun crédit n’est déduit. En revanche, si le modèle génère un audio de mauvaise qualité (artefacts, prononciation incorrecte), les crédits sont quand même consommés car la génération a techniquement abouti. Utilisez les 2 régénérations gratuites par segment pour ces cas.
Quelle est la différence entre REST et WebSocket pour le TTS ?
L’endpoint REST envoie le texte complet et reçoit l’audio complet (ou en streaming via SSE). Le WebSocket permet d’envoyer le texte progressivement et de recevoir l’audio en continu. Utilisez REST pour les contenus pré-rédigés (audiobooks, voiceovers). Utilisez WebSocket quand le texte arrive au fil de l’eau, typiquement depuis un LLM en streaming dans un agent conversationnel.
Peut-on utiliser l’API gratuitement ?
Oui, le plan Free donne accès à l’API avec 10 000 crédits par mois (~10 minutes de TTS standard). Cela suffit pour le prototypage et les tests. Cependant, le plan Free ne donne pas de droits commerciaux sur l’audio généré et les limites de concurrence sont basses. Pour un usage en production, passez au minimum au plan Starter (5 $/mois).
L’audio généré par API est-il commercialement utilisable ?
Oui, à condition d’être sur un plan payant (Starter et au-dessus). Vous conservez la propriété de l’audio généré. Pour la musique générée, une licence supplémentaire est requise pour les usages publicitaires, cinématographiques, télévisuels et de distribution commerciale. Consultez les conditions d’utilisation d’ElevenLabs pour les détails.