Konto
Rate Limits
Anfragen pro Minute je Plan, RPM-Limits und tägliche USD-Limits pro Schlüssel, Rate-Limit-Header, Idempotency-Key und der richtige Umgang mit 429.
Rate Limits schützen Ihr Guthaben und den Dienst. Limits werden in Requests pro Minute (RPM) pro API-Schlüssel gezählt; Schlüssel können zusätzlich ein tägliches USD-Ausgabelimit haben.
Limits je Plan
| Plan | Requests pro Minute |
|---|---|
| Free | 5 |
| Pro | 100 |
| Team | 3,000 |
| Enterprise | 3,000+ |
Wechseln Sie auf der Preisseite in einen höheren Plan, um Ihr Limit zu erhöhen.
Limits pro Schlüssel
Wenn Sie unter API-Schlüssel einen Schlüssel erstellen oder bearbeiten, können Sie Folgendes festlegen:
| Limit | Wirkung |
|---|---|
| RPM-Limit | Begrenzt die Requests pro Minute für diesen Schlüssel. Das effektive Limit ist der niedrigere Wert aus Schlüssellimit und Planlimit. |
| Tägliches USD-Limit | Sobald der Schlüssel heute (UTC) so viel ausgegeben hat, liefern weitere Requests bis zum nächsten Tag 429 daily_limit_reached. |
| Modell-Allowlist | Mit diesem Schlüssel können nur die aufgeführten Modell-IDs verwendet werden; andere liefern 403 model_not_allowed. |
Das RPM-Fenster beträgt eine Minute und wird pro Schlüssel gezählt, sodass sich separate Schlüssel für separate Apps kein Limit teilen, jeder Schlüssel bleibt aber durch Ihr Planlimit gedeckelt.
Rate-Limit-Header
Jede Generierungsantwort (Erfolg oder Fehler) zeigt Ihren Stand, damit Sie bremsen können, bevor Sie das Limit erreichen:
| Header | Bedeutung |
|---|---|
X-RateLimit-Limit | Erlaubte Anfragen im aktuellen Ein-Minuten-Fenster für diesen Schlüssel. |
X-RateLimit-Remaining | Verbleibende Anfragen im Fenster. |
X-RateLimit-Reset | Sekunden bis zum Zurücksetzen des Fensters. |
Auch Browser-Clients können sie lesen (sie stehen in Access-Control-Expose-Headers).
Lastspitzen und Parallelität
Anfragen über dem Limit werden nicht sofort abgelehnt: Sie warten in einer Warteschlange und starten, sobald das Minutenfenster frei wird. Pro Konto laufen bis zu 10 Anfragen gleichzeitig, die übrigen warten, bis eine fertig ist. Vor dem Start wird der geschätzte Höchstpreis einer Anfrage zusammen mit dem der laufenden Anfragen von Ihrem Guthaben reserviert, sodass parallele Anfragen nie mehr ausgeben, als Sie haben. Eine Anfrage, die nicht innerhalb von 60 Sekunden starten kann, erhält 429 (rate_limited oder concurrency_limit) mit Retry-After; passt ihr Preis nicht mehr ins Guthaben, kommt 402 insufficient_balance.
Sichere Wiederholungen mit Idempotency-Key
Nach einem Netzwerkfehler wissen Sie oft nicht, ob die Anfrage angekommen ist. Senden Sie einen Idempotency-Key-Header (eine eindeutige Zeichenfolge bis 120 Zeichen, zum Beispiel eine UUID) und wiederholen Sie mit demselben Schlüssel: Wurde die erste Anfrage bereits an das Modell gesendet, liefert die Wiederholung 409 idempotency_conflict, statt den Auftrag zweimal auszuführen und zu berechnen. Ist die erste Anfrage vorher gescheitert, wird der Schlüssel freigegeben und die Wiederholung läuft normal. Ein Schlüssel ist pro Konto 24 Stunden einmal verwendbar.
curl https://api14.com/api/v1/images/generations \
-H "Authorization: Bearer $API14_KEY" \
-H "Idempotency-Key: 6f1c2a3e-order-1842" \
-H "Content-Type: application/json" \
-d '{"model": "black-forest-labs/flux-3-image", "prompt": "a red bicycle"}'
Wenn Sie ein Limit erreichen
Zu viele Requests
HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"error": {
"message": "Rate limit of 5 requests per minute exceeded.",
"type": "rate_limit_error",
"code": "rate_limited"
}
}
Warten Sie die in Retry-After angegebene Anzahl Sekunden ab und versuchen Sie es dann erneut. Die offiziellen OpenAI-SDKs wiederholen 429-Antworten automatisch mit Backoff (standardmäßig zwei Wiederholungen; konfigurierbar über maxRetries / max_retries).
Tägliches Ausgabelimit
{
"error": {
"message": "This API key reached its daily spend limit.",
"type": "rate_limit_error",
"code": "daily_limit_reached"
}
}
Erneute Versuche helfen erst am nächsten UTC-Tag. Erhöhen oder entfernen Sie das Tageslimit des Schlüssels unter API-Schlüssel, wenn es sich um erwarteten Traffic handelt.
Upstream-Limits
Anbieter haben eigene Limits, die bei :free-Modellvarianten strenger sind. Wenn ein Anbieter einen Request drosselt, wird sein 429 an Sie durchgereicht. Nutzen Sie Modell-Fallbacks oder Provider-Routing, um die Last auf mehrere Anbieter zu verteilen.
Limits im Code behandeln
- Beachten Sie
Retry-Afterund wiederholen Sie mit exponentiellem Backoff und Jitter. - Unterscheiden Sie
rate_limited(später erneut versuchen) vondaily_limit_reachedundinsufficient_balance(erneute Versuche helfen nicht). - Stellen Sie Hintergrundjobs in eine Warteschlange, statt sie alle auf einmal abzufeuern.
- Streamen Sie lange Antworten: Ein gestreamter Request zählt als ein Request.
import time
from openai import OpenAI, RateLimitError
client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...", max_retries=0)
for attempt in range(5):
try:
r = client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
break
except RateLimitError as e:
if e.code == "daily_limit_reached":
raise
time.sleep(int(e.response.headers.get("retry-after", 2 ** attempt)))
Alle Statuscodes finden Sie unter Fehler.