Errors
All error responses share the same shape:
{
"success": false,
"error": "Human-readable message",
"code": "MACHINE_READABLE_CODE"
}
HTTP status codes
| Status | Meaning |
|---|---|
400 | Bad request — missing or invalid parameters |
401 | Unauthenticated — missing, invalid, expired, or deactivated API key |
403 | Forbidden — key lacks the required permission scope |
404 | Not found — resource does not exist or does not belong to your account |
409 | Conflict — duplicate file or folder name |
413 | Payload too large — file exceeds your plan's size limit |
429 | Too many requests — daily rate limit exceeded |
500 | Internal server error — something went wrong on our end |
Error codes
| Code | Status | Description |
|---|---|---|
RATE_LIMIT_EXCEEDED | 429 | Daily API call quota reached |
STORAGE_LIMIT_EXCEEDED | 403 | Account storage quota reached |
FILE_TOO_LARGE | 413 | File exceeds the plan's max file size |
DUPLICATE_FILE | 409 | Identical file (same SHA-256) already exists |
DUPLICATE_FOLDER | 409 | Folder with this name already exists in this location |
FOLDER_NOT_EMPTY | 400 | Folder has contents; pass ?deleteContents=true to proceed |
CIRCULAR_REFERENCE | 400 | Moving a folder into itself or a descendant |
NOT_FOUND | 404 | Resource not found or not owned by you |
FORBIDDEN | 403 | API key lacks the required permission |
VALIDATION_ERROR | 400 | Request body failed validation |
INVALID_BODY | 400 | Request body is not valid JSON |