Fileverity-API-Dokumentation
Rate-Limits und Header
Rate-Limits für Anfragen pro API-Schlüssel, die Antwort-Header zum Rate-Limit, retry-after bei 429 und 503 sowie die weiteren Header, die die Fileverity-API setzt.
Jeder API-Schlüssel kann 120 Anfragen pro Minute senden. Das Limit wird in Ein-Minuten-Fenstern gezählt und gilt für jeden Endpunkt, auch für Anfragen, die einen Fehler zurückgeben. Ist ein Fenster ausgeschöpft, erhalten weitere Anfragen 429 mit dem Code rate_limited, bis das Fenster zurückgesetzt wird.
Sie brauchen höhere Limits oder Mengenpreise? Vertrieb kontaktieren.
Rate-Limit-Header
Jede Antwort auf eine authentifizierte Anfrage enthält den Stand Ihres Fensters:
| Header | Bedeutung |
|---|---|
x-ratelimit-limit-requests | Zulässige Anfragen pro Fenster. |
x-ratelimit-remaining-requests | Verbleibende Anfragen im aktuellen Fenster. |
x-ratelimit-reset-requests | Sekunden, bis das Fenster zurückgesetzt wird. |
retry-after | Nur bei 429 mit dem Code rate_limited und bei 503 mit dem Code service_unavailable. Sekunden, die bis zur nächsten Anfrage zu warten sind. pending_files_limit (ebenfalls 429) enthält ihn nicht. |
Anfragen, die wegen eines fehlenden oder ungültigen Schlüssels abgelehnt werden (401), enthalten diese Header nicht.
async function call(url, init) { for (let attempt = 0; attempt < 5; attempt++) { const response = await fetch(url, init); if (response.status !== 429) return response; const wait = Number(response.headers.get("retry-after")) || 1; await new Promise((resolve) => setTimeout(resolve, wait * 1000)); } throw new Error("Rate limited");}import time def call(method, url, **kwargs): for attempt in range(5): response = requests.request(method, url, **kwargs) if response.status_code != 429: return response time.sleep(int(response.headers.get("retry-after", 1))) raise RuntimeError("Rate limited")Verteilen Sie Lastspitzen über die Zeit, bevorzugen Sie Webhooks gegenüber engen Polling-Schleifen und nutzen Sie Prefer: wait bei Analysen, statt abzufragen. Ist die Kapazität ausgelastet, gibt POST /analyses 503 service_unavailable mit retry-after zurück; siehe Wenn der Dienst ausgelastet ist.
Weitere Antwort-Header
| Header | Wo | Bedeutung |
|---|---|---|
x-request-id | Jede Antwort | Die Anfrage-ID, auch im Antworttext bei Fehlern. |
cache-control: no-store | Jede Antwort | API-Antworten werden nie zwischengespeichert. |
preference-applied | POST /analyses | wait=N, wenn Ihr Header Prefer berücksichtigt wurde. |
idempotent-replayed | POST-Endpunkte | true, wenn die Antwort eine gespeicherte, erneut ausgelieferte Antwort ist. Siehe Idempotenz. |
x-evidence-included | GET /analyses/{id}/report.pdf | false, wenn die Dokumentbelege bereits abgelaufen sind und das PDF sie weglässt. |
Header, die Sie senden
Authorization: Bearer <key>: erforderlich. Siehe Authentifizierung und Schlüssel.Content-Type: application/jsonfür JSON-Anfragetexte;multipart/form-datafür Uploads überPOST /files.Idempotency-Key: optional, bei POST-Anfragen.Prefer: wait=N: optional, beiPOST /analyses.
Beispiel: curl -i https://api.fileverity.com/v1/models -H "Authorization: Bearer $FILEVERITY_API_KEY" zeigt alle Antwort-Header an.