Docs/Rate Limits

Rate Limits

Verstehe die Request-Limits der API, den Credit-Verbrauch und wie du Drosselung sauber handhabst.

Markdown ansehen OpenAPI JSON

Aktuelle Limits

BereichLimitWas das bedeutet
Requests mit API-Key60 Requests / Minute und 5,000 Requests / TagStandardkontingent für authentifizierte API-Keys.
/api/batchBis zu 500 E-Mails / RequestSende Batches innerhalb des E-Mail-Limits pro Request.
Anonymer Checker5 Checks / Tag / IP-AdresseGilt für den öffentlichen Checker, wenn kein API-Key eines Accounts verwendet wird.
VerifizierungsvolumenVerfügbare Account-CreditsCredits bestimmen, wie viele Verifizierungen du durchführen kannst.
Bulk-CSV-UploadsCredits für jede E-Mail in der Datei erforderlichFür Uploads brauchst du genug Credits für die Anzahl der zu verifizierenden E-Mails.

Request-Kontingente und Credits sind getrennte Steuerungen. API-Keys sind standardmäßig auf 60 Requests pro Minute und 5,000 Requests pro Tag begrenzt. Diese Kontingente legen fest, wie schnell eine authentifizierte Integration die API aufrufen kann. Account-Credits legen fest, wie viele Verifizierungen du durchführen kannst.

Für Listenarbeit mit hohem Volumen gilt: /api/batch nimmt bis zu 500 E-Mails in einem Request an. Bulk-CSV-Uploads werden über Credits gesteuert statt über die Anzahl der Requests: Der Account muss genug Credits für die Anzahl der E-Mails in der hochgeladenen Datei haben, bevor der Verifizierungsjob laufen kann.

Der öffentliche anonyme Checker ist auf 5 Checks pro Tag und IP-Adresse begrenzt. Regeln zum Account-Guthaben findest du unter Credits & Nutzung. Für große Importe nutze Massen-Verifizierung; zum Verhalten von Integrationen siehe Fehlerbehandlung, Schnellstart und Preise.

Antwort bei Rate Limit

Wenn ein API-Key sein Request-Kontingent überschreitet, gibt die API eine 429 Too Many Requests Antwort zurück. Die Antwort enthält Retry-After , damit der Client weiß, wie lange er vor einem erneuten Versuch warten soll.

json
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded. Please retry after the indicated delay.",
  "status_code": 429,
  "retry_after": 15
}

Retry-After-Header

Die Retry-After Der Response-Header gibt an, wie viele Sekunden du warten sollst, bevor du einen API-Key-Request wiederholst, der das Kontingent überschritten hat:

http
HTTP/1.1 429 Too Many Requests
Retry-After: 15
Content-Type: application/json

Rate Limits im Code behandeln

Lies zuerst den Header, warte die angegebene Anzahl Sekunden und versuch es dann erneut. Fehlt der Header, nutze eine vorsichtige Standard-Wartezeit.

python
import requests, time

def verify_with_retry(email, api_key, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(
            "https://verimails.com/api/verify/single",
            headers={"Authorization": f"Bearer {api_key}"},
            json={"email": email}
        )

        if response.status_code == 200:
            return response.json()

        if response.status_code == 429:
            retry_after = int(response.headers.get("Retry-After", 15))
            print(f"Rate limited. Waiting {retry_after}s...")
            time.sleep(retry_after)
            continue

        response.raise_for_status()

    raise Exception("Max retries exceeded")

Best Practices