Fehler & Rate-Limits

Fehlerformat

Alle Fehlerantworten folgen einem einheitlichen Format:

{
  "success": false,
  "error": "Beschreibung des Fehlers"
}

HTTP-Statuscodes

CodeBedeutung
200Erfolg - Anfrage abgeschlossen.
201Erstellt - Ressource wurde erfolgreich erstellt.
202Akzeptiert - Datei hochgeladen, Dokumentdatensatz wird in Kürze erstellt.
400Fehlerhafte Anfrage - fehlende oder ungültige Parameter, nicht unterstützter Dateityp oder Content-Type-Abweichung.
401Nicht autorisiert - fehlender oder ungültiger API-Schlüssel.
403Verboten - API-Schlüssel hat nicht die erforderliche Berechtigung oder den Space-Zugriff.
404Nicht gefunden - Ressource existiert nicht oder ist nicht zugänglich.
413Nutzlast zu groß - hochgeladene Datei überschreitet das 50-MB-Limit.
429Zu viele Anfragen - Rate-Limit überschritten (Standardlimits sind 100/Min und 1.000/Stunde pro API-Schlüssel; einige Endpunkte können strengere Limits haben).
500Interner Serverfehler - auf unserer Seite ist etwas schiefgelaufen.

Rate-Limits

API-Anfragen sind zur Sicherstellung fairer Nutzung limitiert:

  • 100 Anfragen pro Minute pro API-Schlüssel
  • 1.000 Anfragen pro Stunde pro API-Schlüssel

Rate-Limit-Header sind in jeder Antwort enthalten:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1709740800

Rate-Limits handhaben

Wenn du eine 429-Antwort erhältst, warte bis zum Zeitpunkt, der durch X-RateLimit-Reset (Unix-Zeitstempel) angegeben ist, bevor du es erneut versuchst. Implementiere exponentielles Backoff für Robustheit:

async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const response = await fetch(url, options);
    if (response.status === 429) {
      const resetTime = response.headers.get("X-RateLimit-Reset");
      const waitMs = (resetTime * 1000) - Date.now() + 1000;
      await new Promise(r => setTimeout(r, Math.max(waitMs, 1000)));
      continue;
    }
    return response;
  }
  throw new Error("Rate limit exceeded after retries");
}

Häufige Fehlerszenarien

FehlerUrsacheLösung
"Invalid or missing API key"Fehlender Authorization-Header oder fehlerhafter Schlüssel.Prüfe Format und Header deines API-Schlüssels.
"Insufficient scope"API-Schlüssel hat nicht die erforderliche Berechtigung.Aktualisiere die Scopes unter Einstellungen > API-Schlüssel.
"Access denied to this space"API-Schlüssel ist eingeschränkt und hat keinen Zugriff auf den angeforderten Space.Füge den Space den erlaubten Spaces des Schlüssels hinzu oder verwende einen Schlüssel mit breiterem Zugriff.
"Document not found"Dokument existiert nicht oder ist in einem nicht zugänglichen Space.Prüfe die Dokument-ID und den Space-Zugriff deines Schlüssels.
"File content does not match any supported format"Hochgeladene Datei-Bytes stimmen nicht mit PDF-, JPEG-, PNG- oder TIFF-Signaturen überein.Stelle sicher, dass du eine gültige Datei in einem unterstützten Format hochlädst.
"Content-Type mismatch"Der Content-Type-Header stimmt nicht mit dem tatsächlichen Dateiinhalt überein.Setze den richtigen Content-Type für deine Datei oder lass deinen HTTP-Client ihn automatisch erkennen.