Error Handling

All API errors return a consistent JSON structure with an HTTP status code, error type, and human-readable message.

Error Format

Error response
json
{
"error": {
"type": "validation_error",
"message": "Field 'name' is required",
"status": 400
}
}

Status Codes

CodeMeaningCommon Cause
400Bad RequestInvalid JSON, missing required fields
401UnauthorizedMissing or expired token
403ForbiddenInsufficient permissions or scope
404Not FoundResource does not exist
409ConflictDuplicate resource (e.g., vault name)
429Too Many RequestsRate limit exceeded
500Internal ErrorServer-side error

Rate Limit Headers

HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only on 429 responses)
PreviousRate Limits