Limites en vigueur
Engine gateway
C’est la route la plus chargée — elle déclenche un appel LLM. Deux limites cumulatives :
Un dépassement renvoie
429 Too Many Requests :
Quota mensuel (plan-based)
Indépendamment du rate limit court-terme, chaque plan a un quota mensuel de tickets traités :
Au-delà du quota :
- Tous les plans : bloqué (
429) jusqu’à achat d’un pack de crédits ou upgrade. Aucun dépassement n’est facturé à l’insu du marchand. - Si le compte dispose de crédits, ils sont consommés automatiquement (1 crédit = 1 ticket) et le service continue sans interruption.
Routes d’authentification et de conversation
/api/auth/signup est réservée aux administrateurs Actero : l’inscription publique passe par Google ou par le code envoyé par e-mail.
Les autres routes de lecture (/api/billing/usage, /api/client/export-data, /api/simulator-chat) n’ont pas de limite de débit propre : elles sont protégées par l’authentification et, pour simulator-chat, réservées aux administrateurs. Reste raisonnable : un export est un instantané, pas un flux.
Ces limites sont comptées en base (fonction consume_rate_limit), donc partagées par toutes les instances de l’API. Si la base est injoignable, un compteur local à l’instance prend le relais : moins précis, mais le service ne s’arrête pas.
Réponse 429
Toutes les routes répondent en JSON :
Le header
Retry-After est envoyé sur certaines routes (copilote, bulle, serveur MCP…), pas sur toutes. Sur l’engine gateway et sur les routes d’authentification, on ne l’envoie pas : calcule ton retry sur la fenêtre de la limite (10 min ou 60 min selon le cas).Stratégie de retry recommandée
Headers de rate limit
Les routes engine n’exposent pas de headersX-RateLimit-Remaining ni X-RateLimit-Reset aujourd’hui. Pour estimer ta consommation en temps réel, utilise GET /api/billing/usage qui retourne tickets_used, tickets_limit, quota_reached et credits_balance du mois en cours.
Augmenter tes limites
Pour des volumes Enterprise (>50 000 tickets/mois ou >1 000 messages/heure), parle-nous-en : écris à
contact@actero.fr.
Idempotence et anti-rejeu
Voir l’introduction → Idempotence. En court : les webhooks entrants sont dédupliqués par(provider, event_id) pendant 30 jours. Ton code peut donc rejouer en toute sécurité un webhook reçu deux fois — l’effet sera identique.