Limits & Fehler
Anfragelimits, HTTP-Fehler und Wiederholungsstrategien für eine zuverlässige Integration.
Anfragelimits
Die folgenden Werte entsprechen der Standardkonfiguration. Limits für angemeldete Anfragen gelten pro Konto, auch wenn mehrere API-Schlüssel verwendet werden. Nicht angemeldete Anfragen werden anhand der IP-Adresse begrenzt.
| Anfrageart | Standardlimit |
|---|---|
| Allgemeine authentifizierte API-Anfragen, z. B. Auftragsstatus und Ergebnisabruf | 120 pro Minute |
| Allgemeine nicht authentifizierte Anfragen | 30 pro Minute |
| Einzelauftrag erstellen | 60 pro Minute |
| CSV-Auftrag erstellen | 10 pro Minute |
| Vorab-Zeitschätzung | 120 pro Minute |
| Aufladung anstoßen | 10 pro Minute |
| API-Schlüssel erstellen | 10 pro Stunde |
| Supportanfrage senden | 5 pro Stunde |
| Anmelden / Registrieren | 10 pro Minute / 5 pro Stunde |
| Bestätigungsmail erneut anfordern / E-Mail bestätigen | 5 pro Stunde / 20 pro Stunde |
| Passwort ändern | 10 pro Stunde |
| Passwortzurücksetzung anfordern / bestätigen | 5 pro Stunde / 20 pro Stunde |
Auf Endpunkten mit einem eigenen Limit ersetzt dieses das allgemeine Standardlimit. Bei Überschreitung antwortet die
API mit HTTP 429. Beachten Sie den Header Retry-After und warten Sie die angegebene Zahl von
Sekunden.
Dateien und Antwortseiten
- Maximal 50.000 Datenzeilen und 10 MiB pro CSV-Datei.
- Ein Einzelauftrag enthält genau ein Objekt unter
input_data. - Auftragsliste: standardmäßig 50 Einträge, maximal 1.000 pro Seite.
- Datensatzlisten: standardmäßig und maximal 1.000 Datensätze pro Seite.
- Buchungsliste: standardmäßig 50 Einträge, maximal 500 pro Seite.
Teilen Sie größere Eingabelisten in mehrere Dateien und beachten Sie das nötige Guthaben. Die Zahl angenommener Anfragen ist keine Zusage über parallele Verarbeitung oder Bearbeitungsdauer.
HTTP-Fehler behandeln
| Status | Typischer Grund | Reaktion |
|---|---|---|
400 |
Ungültige Pflichtfelder, nicht lesbare CSV-Struktur, falsches Produkt oder eine unzulässige Auftragsaktion. | detail oder die feldbezogenen Fehlermeldungen lesen und die Eingabe korrigieren. |
403 |
Fehlende/ungültige Anmeldung, inaktiver Schlüssel, unbestätigte E-Mail oder ein API-Schlüssel auf
console.krake.run. |
Header, Konto und API-Host prüfen. Nicht automatisch wiederholen. |
402 |
Guthaben reicht für den angefragten Auftrag nicht aus. | Guthaben aufladen oder die Liste verkleinern. |
404 |
Kennung nicht vorhanden, falscher Produktpräfix, fremder Auftrag, bereits gelöschter Datensatz oder auf dem API-Host nicht freigegebener Pfad. | Host, Produktpräfix und Kennung prüfen; ein anderer API-Schlüssel desselben Kontos ändert die Auftragszugehörigkeit nicht. |
405 |
Falsche HTTP-Methode. | Mit der Endpunktreferenz vergleichen, etwa POST für die Auftragserstellung. |
406 |
Ein nicht unterstütztes Antwortformat wird angefordert. | Accept: application/json verwenden; CSV nur beim Export, Ereignisstrom beim Fortschritt. |
410 |
Die Datensätze des Auftrags wurden nach Ablauf der Aufbewahrungsfrist gelöscht. Betrifft Export, Datensatzlisten, Neustart und nachträgliche Abrechnung. | Auf lokale Sicherung zurückgreifen oder einen neuen Auftrag erstellen. |
413 |
Eine vorgelagerte Uploadgrenze wurde überschritten. | Datei verkleinern. Die Dateiprüfung der API selbst meldet Überschreitungen auch als 400. |
415 |
Falscher Request-Content-Type. | JSON für Einzelaufträge, Multipart für CSV verwenden. |
429 |
Anfragelimit erreicht. | Retry-After beachten und die Anfragerate reduzieren. |
500, 502, 503 |
Interner Fehler oder vorübergehend nicht verfügbarer Dienst; Zahlungsendpunkte können den Zahlungsanbieter als Ursache nennen. | Leseanfragen mit wachsendem Abstand wiederholen; bei POST zuerst prüfen, ob die Aktion bereits ausgeführt wurde. |
Die API verwendet derzeit auch englische Fehlermeldungen. Werten Sie HTTP-Status und strukturierte Felder aus, statt sich auf einen bestimmten Wortlaut zu verlassen.
Fehlerantworten
Beispiel einer abgelehnten Einzelanfrage wegen unzureichenden Guthabens:
{
"detail": "Insufficient balance.",
"balance_eur": "0.0000",
"required_eur": "0.0300"
}
Der Preis ist hier nur ein Beispiel. Bei CSV-Aufträgen heißen die ergänzenden Felder estimated_cost_eur
und topup_required_eur. Validierungsfehler können stattdessen unter Feldnamen wie
input_data, file oder product stehen.
Im Feld code stehen unter anderem results_expired für gelöschte Datensätze sowie
batch_failed und batch_stopped_empty für einen Export ohne Ergebnisse. Nicht jeder Fehler
enthält ein solches Feld.
Anfragen zuverlässig wiederholen
- Speichern Sie die Auftragskennung unmittelbar nach HTTP
202. - Fragen Sie Status in sinnvollen Abständen ab, beispielsweise alle fünf Sekunden. Mehrere gleichzeitige Aufträge teilen sich das Leselimit.
- Beenden Sie das Polling bei einem Endzustand und folgen Sie beim Ergebnisabruf der Paginierung.
- Wiederholen Sie temporär fehlgeschlagene Leseanfragen mit wachsendem Abstand und einer kleinen zufälligen Verzögerung.
- Prüfen Sie nach einem unklaren POST-Ausgang die Auftragsliste, bevor Sie erneut einen kostenpflichtigen Auftrag erstellen.
Bei HTTP 400, 402 und 403 ist zunächst eine Änderung an Eingabe, Guthaben oder
Anmeldung erforderlich. Ein endloser Retry behebt diese Ursachen nicht.