Error Codes
Reference for all error codes returned by the QR Build API.
Error Response Format
All errors follow a consistent format with success: false, an error code, and a human-readable message. Some errors include a details array with field-level information.
HTTP Status Code Reference
| Status | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request (validation error) |
| 401 | Unauthorized (auth error) |
| 403 | Forbidden (permission/rate limit error) |
| 404 | Not Found |
| 500 | Internal Server Error |
Error Response Format
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable error message",
"details": []
}
}
Validation Errors
VALIDATION_ERROR
HTTP Status: 400 Bad Request
Solution: Check the details array for specific field errors.
INVALID_API_VERSION
HTTP Status: 400 Bad Request
Solution: Use a valid version name in the QR-Version header, or omit it to use the default.
VALIDATION_ERROR
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid request body",
"details": [
{
"field": "type",
"message": "type is required"
}
]
}
}
INVALID_API_VERSION
{
"success": false,
"error": {
"code": "INVALID_API_VERSION",
"message": "Invalid API version \"invalid\". Valid versions: 2026-02-16"
}
}
Resource Errors
QR_NOT_FOUND
HTTP Status: 404 Not Found
Solution: Verify the QR code ID exists and belongs to your workspace.
Permission & Limit Errors
LIMIT_EXCEEDED
HTTP Status: 403 Forbidden
Solution: Delete unused QR codes or upgrade your plan. Rate limits reset on the 1st of each month.
FORBIDDEN
HTTP Status: 403 Forbidden
Solution: Upgrade to a plan that includes API access.
Server Errors
INTERNAL_ERROR
HTTP Status: 500 Internal Server Error
Solution: Retry the request. If the problem persists, contact support.
QR_NOT_FOUND
{
"success": false,
"error": {
"code": "QR_NOT_FOUND",
"message": "QR code not found"
}
}
LIMIT_EXCEEDED
{
"success": false,
"error": {
"code": "LIMIT_EXCEEDED",
"message": "Dynamic QR code limit exceeded for this workspace"
}
}
FORBIDDEN
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "API access is not available for this plan"
}
}
INTERNAL_ERROR
{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
}
}