Suede
Sur cette page

Limites de débit

L'API est limitée en débit par clé d'API (en se rabattant sur l'IP du client pour une requête non authentifiée). Suede fixe la limite et la fenêtre et peut les modifier, alors lisez-les dans les en-têtes de la réponse plutôt que de coder un nombre en dur.

En-têtes

Chaque réponse /v1 inclut :

En-tête Signification
X-RateLimit-Limit Nombre maximal de requêtes autorisées dans la fenêtre actuelle.
X-RateLimit-Remaining Requêtes restantes dans la fenêtre actuelle.
X-RateLimit-Reset Seconde d'époque Unix à laquelle la fenêtre est réinitialisée.

Lorsque vous dépassez la limite, l'API répond avec le code HTTP 429 et un en-tête Retry-After (secondes à attendre) :

JSON
{ "error": { "type": "rate_limited", "message": "Rate limit exceeded. Slow down and retry after the reset.", "request_id": "…" } }

Gérer le 429

Patientez et réessayez après Retry-After secondes. Un schéma simple et fiable :

cURL
# Inspectez votre budget actuel à partir des en-têtes de n'importe quelle réponse.
curl -sD - -o /dev/null "https://api.suede.io/v1/search?q=test" \
  -H "Authorization: Bearer $SUEDE_API_KEY" | grep -i '^x-ratelimit'
C#
async Task<HttpResponseMessage> GetWithRetryAsync(HttpClient http, string url)
{
    while (true)
    {
        var res = await http.GetAsync(url);
        if (res.StatusCode != System.Net.HttpStatusCode.TooManyRequests) return res;
        var wait = res.Headers.RetryAfter?.Delta ?? TimeSpan.FromSeconds(1);
        await Task.Delay(wait);
    }
}
JavaScript
async function getWithRetry(url, init) {
  for (;;) {
    const res = await fetch(url, init);
    if (res.status !== 429) return res;
    const wait = Number(res.headers.get("retry-after") ?? "1") * 1000;
    await new Promise((r) => setTimeout(r, wait));
  }
}

La limitation de débit est indépendante de la facturation. Consultez Erreurs pour les réponses 402 renvoyées lorsque votre abonnement est inactif ou que votre solde de crédit est vide.

Cette page vous a-t-elle été utile ?