Documentation de l’API Fileverity
Limites de débit et en-têtes
Limites de débit des requêtes par clé d’API, en-têtes de réponse relatifs aux limites de débit, retry-after pour les statuts 429 et 503, et autres en-têtes définis par l’API Fileverity.
Chaque clé d’API peut effectuer 120 requêtes par minute. La limite est comptée par fenêtres d’une minute et s’applique à tous les points d’accès, y compris aux requêtes qui renvoient une erreur. Lorsqu’une fenêtre est épuisée, les requêtes suivantes reçoivent 429 avec le code rate_limited jusqu’à la réinitialisation de la fenêtre.
Besoin de limites plus élevées ou de tarifs sur volume ? Contactez l’équipe commerciale.
En-têtes de limite de débit
Chaque réponse à une requête authentifiée indique l’état de votre fenêtre :
| En-tête | Signification |
|---|---|
x-ratelimit-limit-requests | Nombre de requêtes autorisées par fenêtre. |
x-ratelimit-remaining-requests | Nombre de requêtes restantes dans la fenêtre en cours. |
x-ratelimit-reset-requests | Secondes restantes avant la réinitialisation de la fenêtre. |
retry-after | Uniquement avec 429 et le code rate_limited, et avec 503 et le code service_unavailable. Nombre de secondes à attendre avant la requête suivante. pending_files_limit (également 429) ne l’inclut pas. |
Les requêtes rejetées pour clé manquante ou invalide (401) ne comportent pas ces en-têtes.
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")Étalez les pics de requêtes dans le temps, préférez les webhooks aux boucles d’interrogation rapprochées et utilisez Prefer: wait sur les analyses plutôt que d’interroger l’API. Lorsque la capacité est saturée, POST /analyses renvoie 503 service_unavailable avec retry-after ; voir Lorsque le service est saturé.
Autres en-têtes de réponse
| En-tête | Applicable à | Signification |
|---|---|---|
x-request-id | Toutes les réponses | L’ID de la requête, également présent dans les corps d’erreur. |
cache-control: no-store | Toutes les réponses | Les réponses de l’API ne sont jamais mises en cache. |
preference-applied | POST /analyses | wait=N lorsque votre en-tête Prefer a été pris en compte. |
idempotent-replayed | Points d’accès POST | true lorsque la réponse est une réponse enregistrée rejouée. Voir Idempotence. |
x-evidence-included | GET /analyses/{id}/report.pdf | false lorsque les preuves du document ont déjà expiré et que le PDF ne les contient pas. |
En-têtes que vous envoyez
Authorization: Bearer <key>: obligatoire. Voir Authentification et clés.Content-Type: application/jsonpour les corps JSON ;multipart/form-datapour les téléversementsPOST /files.Idempotency-Key: facultatif, sur les requêtes POST.Prefer: wait=N: facultatif, surPOST /analyses.
Exemple : curl -i https://api.fileverity.com/v1/models -H "Authorization: Bearer $FILEVERITY_API_KEY" affiche tous les en-têtes de réponse.