Erreurs et limites
Chaque code d'erreur de l'API publique, la grille des limites par forfait, et ce qui se passe quand vous les dépassez.
Une seule forme d'erreur, un seul endroit pour chercher chaque code.
Tout échec de /api/v1 répond avec la même forme de corps :
{
"error": "TEMPLATE_NOT_FOUND",
"message": "No Template with this id exists for this account."
}Décidez selon le champ error, jamais selon le texte du message — le message est destiné à une personne qui lit des journaux, pas à votre code pour l'analyser.
Tous les codes d'erreur
| Code | Statut | Message |
|---|---|---|
API_KEY_INVALID | 401 | The API Key is malformed, unknown, revoked, or its account is inactive. |
API_KEY_MISSING | 401 | Send the API Key as an `Authorization: Bearer` header. |
CONCURRENCY_LIMIT_REACHED | 429 | This account already has the maximum number of Runs in flight for its plan. |
EXPORT_LIMIT_REACHED | 402 | This account has used its Quota for the current billing period. |
FILE_TOO_LARGE | 413 | The uploaded file exceeds this plan's upload size ceiling. |
IDEMPOTENCY_KEY_REUSED | 409 | This `Idempotency-Key` was already used for a different request. |
INSUFFICIENT_SCOPE | 403 | The API Key does not carry the scope this operation requires. |
INVALID_IDEMPOTENCY_KEY | 422 | `Idempotency-Key` must be 1-255 printable characters. |
INVALID_PARSE_PARAMS | 422 | `delimiter` must be one printable character; `header_row` must be a non-negative integer within the row ceiling. |
MALFORMED_FILE | 400 | The file could not be read: it is empty, corrupt, or not encoded as expected. |
NO_SUBSCRIPTION | 403 | This account has no active subscription. |
RATE_LIMITED | 429 | This account has exceeded its request rate limit for this operation. |
ROW_LIMIT_EXCEEDED | 413 | The uploaded file exceeds this plan's row ceiling. |
RUN_NOT_FOUND | 404 | No Run with this id exists for this account. Runs are kept 30 minutes and are lost if the service restarts. |
SERVER_BUSY | 503 | This worker is at its memory budget; retry shortly. |
TEMPLATE_COLUMNS_MISSING | 422 | The uploaded file is missing one or more columns this Template's operations require. |
TEMPLATE_NOT_FOUND | 404 | No Template with this id exists for this account. |
UNSUPPORTED_FILE_TYPE | 415 | This file type is not supported. |
Quota et concurrence
Dépasser les exécutions mensuelles de votre forfait répond 402 EXPORT_LIMIT_REACHED, avec un objet quota (utilisé, limite, quand il se réinitialise). Démarrer plus d'exécutions à la fois que ce que permet la concurrence de votre forfait répond 429 CONCURRENCY_LIMIT_REACHED. Envoyer des requêtes plus vite que le rythme de votre compte répond avec un second code, distinct, 429 RATE_LIMITED. Un worker à son budget mémoire répond 503 SERVER_BUSY — réessayez sous peu.
Chaque réponse de /api/v1 porte les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset pour la fenêtre contre laquelle cette requête a été vérifiée, pour qu'un script puisse ralentir avant d'être refusé.
Ce qui ne coûte rien
Lister les modèles et interroger le statut ou le résultat d'une exécution ne dépensent jamais votre quota mensuel. Seule une exécution qui se termine et renvoie un fichier compte — une exécution refusée, échouée, expirée, interrompue ou rejouée de façon idempotente n'est jamais facturée.
Limites par forfait
| Forfait | Lignes par fichier | Exécutions par mois | Modèles | Fichiers joints par mois | Exécutions simultanées | Taille d’envoi |
|---|---|---|---|---|---|---|
| Free | 5,000 | 5 | 2 | 0 | 1 | |
| Pro | 100,000 | 50 | 10 | 5 | 2 | |
| Business | 500,000 | Illimité | Illimité | Illimité | 3 | |
| Enterprise | 1,000,000 | Illimité | Illimité | Illimité | 5 |
Le détail complet de chaque forfait est sur la page tarifaire.