code est stable et destiné à votre code ; message, lorsqu’il est présent, est une explication lisible par un humain et peut changer.
{
"status": "error",
"code": "UPGRADE_REQUIRED",
"message": "Custom metadata is available on Pro and Enterprise plans only."
}
Ne réessayez que sur
429 et 5xx, avec un backoff. Tout 4xx autre que 429 signifie que la requête elle-même doit être modifiée.Authentification et limites
| Code | HTTP | Signification |
|---|---|---|
ACCESS_DENIED | 401 | L’identifiant est absent ou n’a pas été reconnu. |
PERMISSION_DENIED | 401 | Le compte n’a pas de plan payant actif, ce que cette action exige. |
MISSING_SCOPE | 403 | La clé API ne possède pas le scope requis par cette route. Voir Authentification. |
RESOURCE_NOT_ALLOWED | 403 | La clé API est restreinte à des applications spécifiques. |
UPLOAD_TOKEN_NOT_ALLOWED | 403 | Les jetons d’envoi ne fonctionnent que sur les routes d’envoi. |
UPLOAD_TOKEN_USED | 401 | Le jeton d’envoi n’a plus d’utilisations disponibles. Un jeton expiré répond ACCESS_DENIED. |
ACCOUNT_BLOCKED | 403 | Le compte n’est pas autorisé à stocker des fichiers. Contactez le support. |
UPGRADE_REQUIRED | 403 | L’option ne fait pas partie de votre plan. Le message indique le plan qui la débloque. |
RATE_LIMIT | 429 | Le budget d’API de l’ensemble du compte est épuisé, ou l’IP a envoyé trop d’identifiants invalides. |
RATE_LIMITED | 429 | La limite propre à cette route a été atteinte. Patientez et réessayez. |
Objets
| Code | HTTP | Signification |
|---|---|---|
INVALID_OBJECT | 400 | L’id de l’objet est mal formé ou ne vous appartient pas. |
INVALID_OBJECT_NAME | 400 | name ne correspond pas au motif autorisé (1 à 128 caractères). |
INVALID_OBJECT_PREFIX | 400 | prefix ne correspond pas au motif autorisé. |
INVALID_OBJECT_EXPIRE | 400 | expire n’est pas une durée valide (1 heure à 1825 jours). |
INVALID_OBJECT_PRIVATE | 400 | private ne vaut ni true ni false. |
INVALID_OBJECT_SECURITY_HASH | 400 | security_hash n’est pas un booléen, ou vaut false sur un objet privé. |
INVALID_OBJECT_OVERWRITE | 400 | overwrite ne vaut ni true ni false. |
INVALID_OBJECT_DISPOSITION | 400 | disposition ne vaut ni inline ni attachment. |
INVALID_OBJECT_CACHE_CONTROL | 400 | cache_control ne vaut ni immutable, ni no-cache, ni max-age=60..31536000. |
INVALID_OBJECT_METADATA | 400 | metadata est mal formé, utilise une clé réservée, ou dépasse 5 clés ou 512 octets. |
INVALID_STORAGE_AUTO_DOWNLOAD | 400 | auto_download ne vaut ni true ni false. |
INVALID_CHECKSUM | 400 | checksum_sha256 ne comporte pas 64 caractères hexadécimaux en minuscules. |
CHECKSUM_MISMATCH | 400 | Le fichier ne correspond pas à checksum_sha256. Rien n’a été stocké. |
INVALID_DESTINATION | 400 | La destination de la copie est mal formée. |
SAME_OBJECT | 400 | La source et la destination de la copie sont le même objet. |
NOTHING_TO_UPDATE | 400 | La requête ne modifie aucun champ. |
INVALID_CONTINUATION_TOKEN | 400 | Le cursor de la liste est mal formé ou n’est plus valide. Recommencez sans curseur. |
TOO_MANY_OBJECTS | 400 | Trop d’objets dans une seule requête (100 pour la suppression, 50 pour la mise à jour). |
PREFIX_NOT_ALLOWED | 403 | Le jeton d’envoi est lié à un autre préfixe. |
OBJECT_NOT_FOUND | 404 | L’objet n’existe pas. |
OBJECT_ALREADY_EXISTS | 409 | Un objet avec cet id existe et overwrite vaut false. |
OBJECT_IS_LEGACY | par objet | Renvoyé dans les results de Mise à jour d’objet. L’objet est un fichier hérité, stocké avant la mise à jour de septembre 2026, et doit être déplacé avec Copie d’objet (move: true) avant que ses en-têtes puissent changer. |
VISIBILITY_CHANGE_FAILED | par objet | Renvoyé dans les results de Mise à jour d’objet : l’objet n’a pas pu être rendu privé et est toujours public. Réessayez. |
UPDATE_FAILED / COPY_FAILED / DELETE_FAILED | 500 | L’opération a échoué. Réessayez. |
Envois
| Code | HTTP | Signification |
|---|---|---|
INVALID_CONTENT_TYPE | 409 | Object Post n’accepte que multipart/form-data avec exactement un fichier. |
INVALID_FILE | 400 | La partie fichier est absente ou illisible. |
INVALID_FILE_TYPE | 400 | L’extension du fichier est mal formée ou trop longue. |
BLOCKED_FILE_TYPE | 400 | Les exécutables et les installateurs ne sont pas acceptés. |
FILE_TYPE_NOT_ALLOWED | 400 | Le jeton d’envoi ou la règle du préfixe n’autorise pas cette extension. |
FILE_TOO_SMALL | 400 | Les fichiers doivent faire au moins 512 octets. |
FILE_TOO_LARGE | 413 | Au-delà de 100 Mo en une seule requête (utilisez les envois chunked), ou au-delà de la taille autorisée par le plan, le jeton ou la règle. |
STORAGE_QUOTA_EXCEEDED | 403 | Le compte a atteint son stockage inclus. |
TOO_MANY_CONCURRENT_UPLOADS | 429 | 4 envois sont déjà en cours sur ce compte. |
PRIVATE_STORAGE_UNAVAILABLE / PUBLIC_STORAGE_UNAVAILABLE | 503 | Le stockage est temporairement indisponible. Réessayez. |
UPLOAD_FAILED | 500 | L’envoi a échoué. Réessayez. |
Envois chunked
| Code | HTTP | Signification |
|---|---|---|
INVALID_UPLOAD_TOKEN | 400 | Le jeton upload est absent, mal formé ou ne vous appartient pas. |
INVALID_CHUNK_PART | 400 | part n’est pas un entier de 1 à 2048. |
EMPTY_CHUNK | 400 | Le corps de la partie est vide. |
CHUNK_TOO_LARGE | 413 | Une partie dépasse 32 Mo. |
CHUNK_TOO_SMALL | 400 | Une partie autre que la dernière fait moins de 5 Mo. |
NO_CHUNKS_UPLOADED | 400 | Complete a été appelé avant l’envoi de la moindre partie. |
TOO_MANY_OPEN_UPLOADS | 429 | Le compte a 32 envois ouverts. Terminez-en ou annulez-en un. |
TOO_MANY_CONCURRENT_CHUNKS | 429 | 6 parties sont déjà en cours d’envoi sur ce compte. |
UPLOAD_NOT_FOUND | 404 | L’envoi a été terminé, annulé ou a expiré. |
Liens temporaires et partages
| Code | HTTP | Signification |
|---|---|---|
INVALID_DOWNLOAD_EXPIRES | 400 | expires est en dehors de l’intervalle de 60 à 86400 secondes. |
INVALID_FILENAME | 400 | filename est vide après suppression des caractères invalides. |
INVALID_EXPIRES_IN | 400 | expires_in est en dehors de l’intervalle autorisé. |
INVALID_MAX_DOWNLOADS | 400 | max_downloads est en dehors de l’intervalle de 1 à 10000. |
INVALID_PASSWORD | 400 | Le mot de passe doit comporter de 8 à 128 caractères. |
INVALID_SHARE | 400 | L’id du partage est mal formé. |
SHARE_NOT_FOUND | 404 | Le partage n’existe pas ou a déjà été révoqué. |
TOO_MANY_SHARES | 409 | Le compte a 1000 partages actifs. Révoquez-en d’abord quelques-uns. |
Paramètres du compte et jetons d’envoi
| Code | HTTP | Signification |
|---|---|---|
INVALID_BODY | 400 | Le corps est absent ou n’est pas un objet JSON. |
INVALID_RULES | 400 | rules n’est pas un tableau. |
TOO_MANY_RULES | 400 | Plus de 20 règles sur Enterprise. Sur les autres plans, dépasser la limite du plan (5 sur Hobby et Standard, 10 sur Pro) répond UPGRADE_REQUIRED. |
INVALID_RULE_PREFIX / DUPLICATE_RULE_PREFIX | 400 | Le préfixe d’une règle est mal formé, ou reprend celui d’une autre règle. |
INVALID_RULE_PRIVATE / INVALID_RULE_EXPIRE / INVALID_RULE_MAX_SIZE / INVALID_RULE_EXTENSIONS / INVALID_RULE_CACHE_CONTROL / INVALID_RULE_DELETE_AFTER | 400 | Un champ d’une règle est invalide. La réponse contient le prefix de la règle. |
INVALID_EXPIRES_IN / INVALID_MAX_USES / INVALID_MAX_SIZE / INVALID_ALLOWED_EXTENSIONS | 400 | Un champ du jeton d’envoi est hors limites. |
UPLOAD_TOKEN_TOO_LARGE | 400 | Les options du jeton ne tiennent pas dans un jeton. Raccourcissez les métadonnées ou la liste d’extensions. |
Identifiants S3
| Code | HTTP | Signification |
|---|---|---|
API_KEY_REQUIRED | 400 | Les identifiants S3 dérivent d’une clé API, pas d’une session du tableau de bord. |
LEGACY_API_KEY | 400 | La clé API utilise l’ancien format. Créez une nouvelle clé dans les paramètres de votre compte. |
INVALID_CREDENTIAL | 401 | La clé API n’a pas pu être vérifiée. |
Globales
| Code | HTTP | Signification |
|---|---|---|
ROUTE_NOT_FOUND / NOT_FOUND | 404 | La route n’existe pas. |
INTERNAL_SERVER_ERROR | 500 | Défaillance inattendue. Réessayez plus tard. |

