Error Codes
Reference for all HTTP status codes and error responses returned by the BOOQR API.
HTTP Status Codes
| Code | Meaning | Description |
|---|
200 | OK | Request succeeded |
201 | Created | Resource was created successfully |
400 | Bad Request | Invalid parameters or request body |
401 | Unauthorized | Missing or invalid authentication |
403 | Forbidden | Insufficient scopes or permissions |
404 | Not Found | Resource does not exist |
409 | Conflict | Resource already exists or conflicting state |
422 | Unprocessable | Validation error in request body |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Error | Server error (please report) |
Error Response Format
All error responses follow this structure:
{
"error": "error_code",
"message": "Human-readable description of the error",
"details": {
// Optional additional context
}
}
Common Error Codes
Authentication Errors
| Error Code | HTTP | Description |
|---|
invalid_api_key | 401 | API key is invalid or revoked |
expired_token | 401 | OAuth token has expired |
insufficient_scope | 403 | API key lacks required scope |
tenant_mismatch | 403 | API key belongs to a different tenant |
Booking Errors
| Error Code | HTTP | Description |
|---|
object_not_found | 404 | Object ID does not exist |
slot_not_available | 409 | Requested time slot is already booked |
outside_opening_hours | 422 | Booking falls outside opening hours |
invalid_duration | 422 | Booking duration violates rules |
booking_not_cancellable | 422 | Cancellation policy prevents cancellation |
Device Errors
| Error Code | HTTP | Description |
|---|
invalid_activation_code | 400 | Activation code is wrong or expired |
device_already_activated | 409 | Device has already been activated |
device_disabled | 403 | Device is disabled by admin |
Rate Limiting
| Error Code | HTTP | Description |
|---|
rate_limit_exceeded | 429 | Too many requests. Check rate limit headers. |