Grundlagen
Rate Limits
Jeder Schlüssel kann 120 Anfragen pro Minute stellen, und jede Antwort zeigt, wie viele noch übrig sind.
Limits
| Limit | Gilt für |
|---|---|
| 120 Anfragen pro Minute | Jeden API-Schlüssel, auf jedem Endpoint. Die Minute ist ein festes Fenster, das zur vollen Minute beginnt. |
| 10 Exporte pro Stunde | Jedes Konto, bei Export erstellen. Bei Überschreitung 429 export_rate_limit_exceeded. |
| 10 DMs pro Minute | Jedes X-Konto, bei Nachricht senden. Bei Überschreitung 429 dm_rate_limited. |
| 300 DMs pro Tag | Jedes X-Konto, pro UTC-Tag, oder weniger, wenn X ein niedrigeres Kontingent setzt. Bei Überschreitung 429 dm_daily_limit. |
| 5 Code-Versuche pro Stunde | Jedes Konto, bei X Chat-Code setzen. Bei Überschreitung 429 passcode_rate_limited. |
| 6 Nachrichten an Julien AI pro Minute | Jedes X-Konto, bei Nachricht senden und dem MCP-Tool ask_julien_ai. Bei Überschreitung 429 assistant_rate_limited. |
| 100 Nachrichten an Julien AI pro Tag | Jedes X-Konto, pro UTC-Tag. Bei Überschreitung 429 assistant_daily_limit. |
| Eine Nachricht an Julien AI nach der anderen | Jeden Chat, und 3 Chats gleichzeitig pro X-Konto. Bei Überschreitung 409 assistant_busy. |
Rate-Limit-Header
Jede Antwort enthält den aktuellen Stand im Fenster des Schlüssels.
| Header | Bedeutung |
|---|---|
RateLimit-Limit | Erlaubte Anfragen pro Fenster, 120. |
RateLimit-Remaining | Verbleibende Anfragen im aktuellen Fenster. |
RateLimit-Reset | Sekunden, bis das Fenster neu beginnt. |
Retry-After | Nur bei 429, die Sekunden bis zu einem neuen Versuch. |
Header
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
RateLimit-Limit: 120
RateLimit-Remaining: 0
RateLimit-Reset: 17
Retry-After: 17
Request-Id: req_3Vb8YzC1dF6hJ0sWAntwort429
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. This key can make 120 requests a minute.",
"param": null,
"request_id": "req_3Vb8YzC1dF6hJ0sW",
"doc_url": "https://gemlead.ai/docs/errors#rate_limit_exceeded"
}
}Mit einem 429 umgehen
Warte Retry-After Sekunden und sende dann dieselbe Anfrage erneut.
- Verteile große Jobs zeitlich, statt alles auf einmal zu senden.
- Lies
RateLimit-Remainingund drossle das Tempo, bevor du bei null ankommst. - Um viele Leads auf einmal zu holen, ist ein Export besser als Hunderte Seiten.
- Webhooks schicken dir Ereignisse, du verbrauchst also nie Anfragen, um nach neuen Leads zu pollen.
# curl waits for Retry-After, then tries again
curl --retry 5 https://gemlead.ai/api/v1/leads \
-H "Authorization: Bearer $GEMLEAD_API_KEY"