Limites & Quotas
Comprendre les limites de l'API vous permet d'optimiser votre intégration et d'éviter les erreurs de rate limiting.
Rate Limiting
Le rate limiting protège l'API contre les abus et garantit une qualité de service pour tous les utilisateurs.
| Endpoint | Limite | Burst |
|---|---|---|
| /v1/transcribe | 60 req/min | 10 req/sec |
| /v1/plans/generate | 30 req/min | 5 req/sec |
| /v1/plans/refine | 60 req/min | 10 req/sec |
| /v1/health | 300 req/min | 50 req/sec |
Headers de Rate Limit
Chaque réponse inclut des headers pour suivre votre consommation :
X-RateLimit-Limit: Limite totaleX-RateLimit-Remaining: Requêtes restantesX-RateLimit-Reset: Timestamp de reset
Exemple de headers
textHTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1699876543
Content-Type: application/jsonLimites par plan
| Plan | Crédits | Rate Limit | Taille fichier | Support |
|---|---|---|---|---|
| Gratuit | 100/mois | 10 req/min | 25 MB | Community |
| Starter | 1000/mois | 60 req/min | 50 MB | |
| Pro | 10000/mois | 120 req/min | 100 MB | Prioritaire |
| Enterprise | Illimité | Personnalisé | 500 MB | Dédié 24/7 |
Limites de fichiers
Transcription
- Taille max100 MB
- Durée max4 heures
- FormatsMP3, WAV, M4A...
Génération de plans
- Topic max5000 chars
- Source content50000 chars
- Sections max15
Consommation de crédits
| Service | Coût | Notes |
|---|---|---|
| Transcription (base) | 1 crédit/min | Arrondi à la minute supérieure |
| Transcription + diarisation | 2 crédits/min | Détection des locuteurs incluse |
| Plan simple | 1 crédit | Titres de sections uniquement |
| Plan détaillé | 2 crédits | Sections + sous-sections |
| Plan complet | 4 crédits | Inclut le contenu suggéré |
| Affiner un plan | 1 crédit | Par section affinée |
Optimiser votre consommation
- Compressez vos fichiers audio avant envoi (MP3 192kbps suffit)
- Utilisez le plan "simple" pour explorer un sujet, puis affinez
- Surveillez votre usage via le dashboard ou l'endpoint /account
Gérer les limites
Rate limit atteint (429)
Quand vous recevez une erreur 429, implémentez un backoff exponentiel :
async function callWithRetry(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (error.status === 429 && i < maxRetries - 1) {
const retryAfter = error.headers?.['retry-after'] || Math.pow(2, i);
await new Promise(r => setTimeout(r, retryAfter * 1000));
} else {
throw error;
}
}
}
}Crédits insuffisants (402)
Vérifiez votre solde avant les opérations coûteuses :
// Vérifier le solde
const account = await client.account.get();
if (account.credits < estimatedCost) {
// Rediriger vers la page de recharge
window.location.href = '/dashboard/billing';
}Besoin de limites plus élevées ?
Les plans Enterprise offrent des limites personnalisées adaptées à vos besoins. Contactez notre équipe commerciale pour discuter de votre cas d'usage.