Limites et rate-limits
Rate-limits par minute et par heure, budgets sandbox et production séparés, stratégies de retry.
Une seule limite s'applique à l'API : un rate-limit par minute et par heure, scopé par organisation et par environnement.
Le quota mensuel de signature requests existe aussi, mais il ne concerne que les envois créés depuis l'interface — vos appels API ne le consomment pas. La section Quota mensuel des envois interface détaille pourquoi.
Rate-limits API
Le rate-limit s'applique à toutes les routes /api/v1/* et est compté par
organisation : si vous avez plusieurs clés API actives sur la même
organisation et le même environnement, elles partagent le compteur.
Le bac à sable et la production ont chacun leur budget. Les deux compteurs sont totalement disjoints : saturer l'un n'entame jamais l'autre.
Bac à sable
Identique sur tous les plans, y compris Free.
| Par minute | Par heure |
|---|---|
| 120 | 3 000 |
Ce plafond est dimensionné pour le développement et la recette, qui sont les usages du bac à sable.
API de production
L'API de production nécessite un plan payant. Sur un compte Free, elle répond
402 payment_required — le plafond effectif d'une organisation Free est donc
celui du bac à sable.
| Plan | Par minute | Par heure |
|---|---|---|
| Pro | 500 | 10 000 |
| Enterprise | 1 200 | 60 000 |
Ce qui est compté
Toute requête portant une clé API valide, quel que soit son code de réponse :
les succès, mais aussi les 402, 404 et 422. Une erreur métier consomme
votre budget comme un appel réussi.
GET /api/v1/health est compté comme les autres. Si vous y branchez une sonde
de monitoring, elle consomme le budget de votre organisation — à une requête
toutes les dix secondes, cela représente 6 des 120 appels de la fenêtre minute
du bac à sable.
Les requêtes dont la clé est absente, invalide ou révoquée (401) ne sont pas
comptées : il n'y a pas d'organisation à qui les attribuer. Elles sont couvertes
par une protection par adresse IP, indépendante de votre plan.
En cas de dépassement
Signlift répond 429 rate_limited avec les en-têtes standards :
| En-tête | Contenu |
|---|---|
Retry-After | Secondes à attendre avant le prochain appel autorisé. |
X-RateLimit-Limit | Plafond de la fenêtre la plus contraignante. |
X-RateLimit-Remaining | Appels restants dans cette fenêtre ; 0 sur un 429. |
X-RateLimit-Reset | Timestamp Unix de réinitialisation de la fenêtre. |
Ces en-têtes sont présents sur toutes les réponses authentifiées, pas seulement sur les 429 : vous pouvez vous réguler avant d'être refusé.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1764800042
Content-Type: application/json
{ "error": { "code": "rate_limited", "message": "..." } }Quota mensuel des envois interface
Chaque plan inclut un nombre d'envois de signature par mois civil, mais ce quota ne s'applique qu'aux envois créés depuis l'interface. Les sessions complétées via l'API de production ne le consomment pas : elles sont facturées à l'usage.
Concrètement, POST /api/v1/signature_requests ne renvoie jamais d'erreur de
quota mensuel. Ne codez pas de branche de retry pour ce cas — elle ne se
déclencherait jamais.
Voir les tarifs pour le détail des quotas d'interface et du barème de l'API de production.
Stratégies côté client
Sur 429 rate_limited
- Lisez
Retry-Afteret attendez ce délai, ne hardcodez pas une valeur arbitraire. Comme la fenêtre est fixe, attendre jusqu'au reset vous rend le budget entier : c'est la stratégie la plus simple et la plus efficace. - Anticipez avec
X-RateLimit-Remaining, présent sur chaque réponse. Ralentir avant le refus vaut mieux que le gérer après. - Si vous orchestrez plusieurs appels en parallèle, ajoutez un
exponential backoff avec jitter par-dessus le
Retry-After: plusieurs clients qui reprennent au même instant de reset se refusent mutuellement. - Sérialisez les appels non critiques dans une file côté backend plutôt que de saturer la fenêtre minute.
Pour toutes les écritures (POST)
- Capturez et persistez l'
idretourné par Signlift dès la première réponse réussie. En cas de retry réseau, vérifiez son existence côté Signlift (GET /api/v1/signature_requests/:id) avant de réémettre — l'API ne déduplique pas côté serveur.
Relever les plafonds
Ces seuils sont généreux pour un usage nominal, mais ils sont ajustables par organisation, indépendamment sur chaque environnement et chaque fenêtre. Si votre intégration a un besoin légitime au-delà de votre plan — reprise de volume, migration, traitement par lots — écrivez à support@signlift.eu en décrivant la cadence visée et l'usage.
Limites adjacentes
Ces limites ne concernent pas l'API publique mais peuvent affecter votre intégration globale :
- OTP signataire — 5 tentatives sur 10 minutes par token. Au-delà,
le code est invalidé et un nouveau doit être émis. Concerne le parcours
signataire (page
/sign/:token), pas vos appels API. - Renvoi d'invitation membre — 3 par membre / 10 min, 30 par IP / heure. Concerne le dashboard d'organisation, pas l'API.
Aller plus loin
- Authentification — clés API, JWT signataires.
- Bac à sable — développer et recetter sans engager vos signataires.
- Référence API — table complète des codes d'erreur.
- Tarifs — détail des plans et quotas.