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.

EndpointLimiteBurst
/v1/transcribe60 req/min10 req/sec
/v1/plans/generate30 req/min5 req/sec
/v1/plans/refine60 req/min10 req/sec
/v1/health300 req/min50 req/sec

Headers de Rate Limit

Chaque réponse inclut des headers pour suivre votre consommation :

  • X-RateLimit-Limit : Limite totale
  • X-RateLimit-Remaining : Requêtes restantes
  • X-RateLimit-Reset : Timestamp de reset
Exemple de headers
text
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1699876543
Content-Type: application/json

Limites par plan

PlanCréditsRate LimitTaille fichierSupport
Gratuit100/mois10 req/min25 MBCommunity
Starter1000/mois60 req/min50 MBEmail
Pro10000/mois120 req/min100 MBPrioritaire
EnterpriseIllimitéPersonnalisé500 MBDé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

ServiceCoûtNotes
Transcription (base)1 crédit/minArrondi à la minute supérieure
Transcription + diarisation2 crédits/minDétection des locuteurs incluse
Plan simple1 créditTitres de sections uniquement
Plan détaillé2 créditsSections + sous-sections
Plan complet4 créditsInclut le contenu suggéré
Affiner un plan1 créditPar 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.

Limites & Quotas | Docs - GenesisAI