Referenceadvancedadmin
Service API Response Codes
Stable HTTP status codes and error.code values returned by the Service API, and how to branch on them.
2 min read0 viewsUpdated 2026-05-04
NovaGuide Assistant
In this article you'll learn about Response envelope, then explore HTTP status codes, and finally review Retry behavior.
Response envelope
Every Service API response shares the same shape. Branch on HTTP code first, then on error.code for the exact reason.
{
"status": false,
"success": false,
"msg": "Invalid app credentials",
"error": { "code": "SERVICE_AUTH_INVALID" }
}
The error.code value is stable: safe to switch on in client code without parsing msg.
HTTP status codes
| HTTP | When | Notable error.code |
|---|---|---|
| 200 / 201 | Success | - |
| 400 | Validation failure | REQUEST_INVALID, DATE_INVALID, TIME_INVALID, TIME_RANGE_INVALID, REQUESTER_INVALID, REQUESTER_EMAIL_INVALID, POLICY_SLOT_NOT_ALLOWED |
| 401 | Missing or invalid credentials | SERVICE_CREDENTIALS_REQUIRED, SERVICE_AUTH_INVALID, SERVICE_AUTH_SECRET_MISMATCH, SERVICE_AUTH_REVOKED, SERVICE_AUTH_EXPIRED |
| 403 | Authenticated but not allowed | SCOPE_MISSING, SERVICE_IP_NOT_ALLOWED |
| 404 | Resource not found | SPACE_NOT_FOUND |
| 409 | Conflict | SLOT_CONFLICT |
| 429 | Rate limit reached | SERVICE_RATE_LIMITED (with Retry-After header) |
| 500 | Server-side failure | RESERVATION_CREATE_FAILED |
Retry behavior
Implement exponential back-off on
429. Aggressive retry loops can trip the per-app rate limit faster than they recover.Honor the Retry-After header on 429 responses. 5xx responses are safe to retry with back-off; 4xx responses are deterministic and should not be retried without changes to the request.
service-apierrorsreference
Was this helpful?
More questions? Contact support