bimetricsEntwickler

Fehler

Fehlerformat, HTTP-Status, Fehlercodes und wann sich eine Wiederholung lohnt.

Als Markdown ansehen

Format

Fehler kommen als JSON mit HTTP-Status 4xx oder 5xx:

{
  "code": "APIRateLimit",
  "status": 429,
  "detail": "Zu viele API-Anfragen. Bitte später erneut versuchen.",
  "context": {}
}
FeldBedeutung
codeMaschinenlesbarer Fehlercode. Werte deine Logik an status und code aus.
statusDerselbe Wert wie der HTTP-Status.
detailOptionaler Hinweis für Menschen. Der Text kann sich ändern.
contextOptionale Zusatzangaben, je nach Fehler.

Das Schema heißt Error und steht in der OpenAPI-Beschreibung.

HTTP-Status

StatusBedeutungWas tun
400Ungültige Anfrage, etwa ein unbekanntes Filterattribut, eine unbekannte Filterart (kind), ein Filterwert, der nicht zum Typ des Attributs passt, sort nach einem nicht sortierbaren Attribut, ein offset über dem Höchstwert, eine ID im Pfad, die keine UUID ist, ein Upload ohne X-Upload-Request-Id oder eine Datei über 30 MiBAnfrage korrigieren, nicht wiederholen
401Schlüssel ist ungültig, abgelaufen oder widerrufen oder wurde falsch gesendet (InvalidAPIKey), es wurde kein Schlüssel gesendet, oder die angefragte ID gehört zu einer anderen Firma (Unauthorized)Schlüssel, Header und ID prüfen, siehe Authentifizierung
402Für den Aufruf fehlt ein aktiver Tarif oder ein Abo, oder eine Tarifgrenze ist erreichtTarif in der App prüfen
403Dem Schlüssel fehlt die Berechtigung, oder die API ist für die Firma nicht freigeschaltetBerechtigung bzw. Tarif prüfen
404Die Ressource gibt es nichtID prüfen
409Die X-Upload-Request-Id wurde schon für einen anderen Upload verwendetFür einen neuen Beleg eine neue ID wählen, siehe Beleg-Upload
413Die Anfrage ist größer als erlaubtGröße prüfen, siehe Limits
429Zu viele AnfragenDie Sekunden aus dem Header Retry-After warten, dann wiederholen
5xxVorübergehender Fehler auf unserer SeiteMit wachsendem Abstand wiederholen

Fehlercodes

Die Liste ist nicht abschließend. Es können neue Codes hinzukommen; behandle unbekannte Codes wie ihren HTTP-Status.

CodeStatusBedeutung
InvalidAPIKey401Schlüssel ungültig, abgelaufen, widerrufen oder nicht in genau einem Header gesendet
Unauthorized401Kein bm_-Schlüssel gesendet, oder die angefragte ID gehört nicht zur Firma des Schlüssels
APIKeyPermissionDenied403Dem Schlüssel fehlt die Berechtigung für diesen Endpunkt, oder der Endpunkt ist für API-Schlüssel nicht freigegeben
APIUnavailable403Die API ist für die Firma nicht freigeschaltet, etwa ohne gültigen bezahlten Tarif
APIUnavailable500Die API ist vorübergehend nicht verfügbar
PlanRequired, SubscriptionRequired, LimitReached402Tarif, Abo oder Tarifgrenze
BadRequest400Ungültige Anfrage, auch eine ID im Pfad, die keine gültige UUID ist
NotFound404Nicht gefunden
UploadRequestConflict409Die X-Upload-Request-Id gehört zu einem anderen Upload, oder der ursprüngliche Beleg ist gelöscht
APIRequestTooLarge413Anfrage zu groß
APIRateLimit429Zu viele Anfragen
Internal500Unerwarteter Fehler

Wann wiederholen

Wiederhole nur, wenn der Fehler vorübergehend ist:

  • bei 429 nach der Wartezeit aus Retry-After,
  • bei 5xx, Zeitüberschreitung oder Verbindungsabbruch mit wachsendem Abstand, zum Beispiel nach 1, 2, 4 und 8 Sekunden.

Uploads wiederholst du mit derselben X-Upload-Request-Id und derselben Datei. So entsteht auch bei mehreren Versuchen nur ein Beleg.

Bei 400, 401, 402, 403, 404, 409 und 413 hilft eine Wiederholung nicht. Prüfe Anfrage, Schlüssel, Berechtigung oder Tarif.

Auf dieser Seite