Error response format
All error responses follow this structure:Handling errors with the SDK
The SDK throws anApiError for any non-2xx response:
HTTP status codes
400 — Bad Request
The request body or query parameters are invalid.401 — Unauthorized
Authentication failed.403 — Forbidden
The API key doesn’t have permission for this operation.404 — Not Found
The requested resource doesn’t exist.409 — Conflict
The request conflicts with the current state.422 — Unprocessable Entity
The request was well-formed but the data cannot be processed.429 — Too Many Requests
You’ve exceeded the rate limit.
Rate limit headers:
500 — Internal Server Error
An unexpected error on the Crave server.502 / 503 — Service Unavailable
The API or an upstream service is temporarily unavailable.Retry strategy
For transient errors (429, 500, 502, 503), implement exponential backoff:User-facing error messages
Map API errors to friendly messages for your UI:Next steps
SDK Reference
Full SDK documentation with error handling examples.
REST API
REST endpoint reference and tips.
Slack Community
Ask questions and get help from the Crave team and community.
Discord
Join our Discord server for real-time discussions.
Email Support
Reach out to hello@craveup.com for direct support.