Suede
Auf dieser Seite

Ratenbegrenzungen

Die API ist pro API-Schlüssel ratenbegrenzt (für eine nicht authentifizierte Anfrage ersatzweise nach Client-IP). Suede legt das Limit und das Fenster fest und kann sie ändern, lesen Sie sie daher aus den Antwort-Headern, statt eine feste Zahl fest zu verdrahten.

Jede /v1-Antwort enthält:

Header Bedeutung
X-RateLimit-Limit Höchstzahl erlaubter Anfragen im aktuellen Fenster.
X-RateLimit-Remaining Verbleibende Anfragen im aktuellen Fenster.
X-RateLimit-Reset Unix-Epochensekunde, zu der das Fenster zurückgesetzt wird.

Wenn Sie das Limit überschreiten, antwortet die API mit HTTP 429 und einem Retry-After-Header (Sekunden, die zu warten sind):

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

Umgang mit 429

Warten Sie ab und versuchen Sie es nach Retry-After Sekunden erneut. Ein einfaches, zuverlässiges Muster:

cURL
# Prüfen Sie Ihr aktuelles Budget anhand der Header einer beliebigen Antwort.
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));
  }
}

Die Ratenbegrenzung ist von der Abrechnung getrennt. Siehe Fehler zu den 402-Antworten, die zurückgegeben werden, wenn Ihre Mitgliedschaft inaktiv ist oder Ihr Guthaben leer ist.

War diese Seite hilfreich?