Skip to content

Rate-Limits

Rate-Limits richten sich nach deinem Tarif. Alle Limits gelten pro API-Key.

Um Missbrauch zu verhindern, unterliegen Unlimited-Tarife unserer Fair-Use-Policy.

TarifEnrichment-Datensätze pro 5 StundenEnrichment-Anfragen pro 5 StundenEnrichment-Datensätze pro Woche
Free1k1k1k lifetime
27 € / Monat1k5k5k
97 € / Monat15k75k75k
997 € / Monat180k900k900k
TarifSuch-Datensätze pro 5 StundenSuch-Anfragen pro 5 StundenSuch-Datensätze pro Woche
Free100 lifetime (max. 5 pro Call)100 lifetime100 lifetime
27 € / Monat5002.5k2.5k
97 € / Monat7.5k37.5k37.5k
997 € / Monat90k450k450k

Das Ganze arbeitet als rollierendes Fenster, nicht als fester täglicher Reset. In dem Moment, in dem du deine erste Anfrage stellst, öffnet sich ein 5-Stunden-Fenster. Alles, was du in den nächsten 5 Stunden verbrauchst, zieht aus demselben Pool, dem Wert in der Zeile deines Tarifs oben. Wenn das Fenster schließt, wird das Limit zurückgesetzt, und deine nächste Anfrage startet ein frisches 5-Stunden-Fenster.

Ein 97-€-Konto kann daher alle 15k Enrichment-Datensätze in der ersten Minute verbrauchen und dann den Rest des Fensters abwarten, oder dieselben 15k gleichmäßig über die fünf Stunden verteilen. Das Wochenfenster funktioniert genauso, es rollt ab deiner ersten Anfrage statt an einem Kalendertag zurückzusetzen.

Es ist nichts geplant, es gibt also keine Reset-Uhrzeit, um die du herumplanen müsstest. get_account meldet resets_at für jedes Fenster, den genauen Zeitpunkt, zu dem sich dein aktueller Pool wieder auffüllt, siehe Prüfe, wo du stehst.

Jeder API-Call zählt auf das Rate-Limit, unabhängig davon, ob er Daten zurückgibt. Leere Ergebnisse und Konten-Management-Calls (get_account, get_billing, get_usage) zählen alle als Anfragen.

Bevor du annimmst, dass du an eine Grenze gestoßen bist, prüfe deinen aktuellen Stand. get_account, get_billing und get_usage sind kostenlos, sie verbrauchen niemals Credits.

get_account gibt ein fair_use-Objekt zurück, das die Tabellen oben spiegelt: enrich und search, jeweils aufgeteilt in records und requests, über die Fenster 5h und 1w. Jedes Fenster meldet limit, used, remaining und resets_at, sodass du genau sehen kannst, wie viel Spielraum übrig ist und wann das Fenster rollt.

"fair_use": {
"enrich": {
"records": { "5h": { "limit": 15000, "used": 0, "remaining": 15000, "resets_at": null } },
"requests": { "5h": { "limit": 75000, "used": 0, "remaining": 75000, "resets_at": null } }
},
"search": { "records": { "5h": { "limit": 7500, "used": 0, "remaining": 7500, "resets_at": null } } }
}

Ein resets_at von null bedeutet, dass das Fenster noch nicht zu zählen begonnen hat (nichts verbraucht); sobald du Calls machst, enthält es den ISO-8601-Zeitstempel, wann dieses Fenster zurücksetzt.

get_usage zeigt, wie viele Calls du über einen Zeitraum tatsächlich gemacht hast, aufgeschlüsselt nach Tag plus einem Totals-Block: calls, with_data, without_data und failed. Nutze es, um Bursts zu erkennen, die dich in Richtung der 5-Stunden-Grenzen treiben, und um zu bestätigen, welche Läufe dein Volumen antreiben.

Frag deinen verbundenen Agenten „check meinen Hi-Walter-Rate-Limit-Spielraum” und er liest diese für dich aus.

Ein paar Ansätze, um deine Nutzung im Rahmen zu halten:

Wenn du geplante Aufgaben laufen lässt, teile sie auf 2–4 Läufe pro Tag auf statt auf einen großen Burst. Weil das 5-Stunden-Fenster ab deiner ersten Anfrage rollt, gibt jeder Lauf, den du mindestens fünf Stunden auseinander legst, einen frischen Pool zum Ausschöpfen.

Nutze Batching mit Pausen zwischen den Batches

Section titled “Nutze Batching mit Pausen zwischen den Batches”

Für Operationen mit hohem Volumen, sagen wir das Aktualisieren von 10.000 Leads, feuere nicht alle Anfragen auf einmal ab. Stattdessen:

  • Gruppiere deine Calls in Batches von 100
  • Warte 2 Sekunden zwischen jedem Batch
  • Fahre fort, bis alle Anfragen verarbeitet sind

Wenn du Hilfe brauchst, deinen Code an diese Limits anzupassen, kann dir jeder KI-Coding-Assistent helfen, deine Logik umzustrukturieren.

Wenn du das Rate-Limit deines Tarifs überschreitest, gibt die API eine 429 Too Many Requests-Antwort zurück:

{
"error": "Too Many Requests",
"message": "Rate limit exceeded."
}

Die Anfrage wird nicht automatisch wiederholt, dein Client ist für die Behandlung von 429-Antworten verantwortlich.

Exponentielles Backoff ist der empfohlene Ansatz. Wenn du eine 429 erhältst, warte vor dem erneuten Versuch:

async function callWithBackoff(fn, retries = 4) {
for (let i = 0; i < retries; i++) {
try {
return await fn();
} catch (err) {
if (err.status !== 429 || i === retries - 1) throw err;
await new Promise(r => setTimeout(r, Math.pow(2, i) * 200));
}
}
}

Batch-Endpunkte, wo verfügbar (z. B. unterstützt linkedin_to_mobile_phone bis zu 100 linkedin_urls pro Call), lassen dich die Gesamtzahl der Anfragen deutlich reduzieren.