Limites de débit
Limites de débit de l'API Servor — 3 requêtes par seconde et 5000 par heure par jeton, et comment gérer un 429 avec l'en-tête retry-after.
L'API Servor applique une limite de débit par jeton afin qu'une intégration ne
puisse pas priver les autres de ressources. Cette page détaille les limites
exactes, la forme d'une réponse 429, et comment la gérer proprement avec
l'en-tête retry-after.
Les limites
Les limites s'appliquent par jeton API, et non par équipe ou par IP. Chaque jeton dispose de son propre budget :
| Fenêtre | Limite |
|---|---|
| Par seconde | 3 requêtes |
| Par heure | 5000 requêtes |
Si vous faites tourner plusieurs intégrations, donnez à chacune son propre jeton : des jetons distincts ont des budgets distincts, et vous pouvez en révoquer un sans toucher aux autres. Gérez vos jetons dans Servor.
Quand vous atteignez la limite
Dépasser l'une ou l'autre fenêtre renvoie un HTTP 429 Too Many Requests avec un
en-tête retry-after indiquant combien de secondes attendre avant de réessayer :
HTTP/1.1 429 Too Many Requests
retry-after: 2
{ "error": "Rate limit exceeded", "code": "rate_limited" }Lisez toujours retry-after
Ne devinez pas le délai — lisez la valeur de retry-after et patientez exactement
ce nombre de secondes avant de réessayer. C'est le moyen fiable de repasser sous
la limite.
Gérer le 429 dans votre code
Le principe est simple : sur un 429, attendez retry-after secondes, puis
réessayez. Plafonnez le nombre de tentatives pour qu'une limite persistante ne
boucle pas indéfiniment.
async function apiGet(path: string, token: string, tries = 5): Promise<Response> {
const res = await fetch(`https://api.servor.app/v1${path}`, {
headers: { Authorization: `Bearer ${token}` },
});
if (res.status === 429 && tries > 0) {
const wait = Number(res.headers.get("retry-after") ?? "1");
await new Promise((r) => setTimeout(r, wait * 1000));
return apiGet(path, token, tries - 1);
}
return res;
}# curl : réessaie automatiquement en respectant retry-after
curl --retry 5 --retry-delay 0 \
https://api.servor.app/v1/monitors \
-H "Authorization: Bearer sv_live_xxxxxxxxxxxx"Rester sous la limite
- Régulez vos requêtes. Maintenez le trafic en régime permanent sous 3 requêtes/seconde par jeton plutôt que d'envoyer des rafales.
- Sondez à un intervalle raisonnable. Pour les miroirs de statut et les tableaux de bord, sondez toutes les 30 à 60 secondes, pas chaque seconde — vous resterez très en dessous de 5000/heure.
- Mettez en cache ce qui change rarement. Les métadonnées des serveurs et des pages de statut n'ont pas besoin d'être rechargées à chaque boucle.
- Répartissez la charge sur plusieurs jetons. Des charges indépendantes méritent des jetons et des budgets indépendants.
- Faites du back-off sur 429. Traitez-le comme un contrôle de flux normal, pas comme une erreur à journaliser et ignorer.
Limites de débit et limites du plan
Il s'agit de limites de débit par requête. Elles sont distinctes des limites de ressources (serveurs, moniteurs, pages de statut) de votre plan — voir plans et limites. L'accès à l'API publique elle-même nécessite le plan AI.