Skip to main content
The Crave Storefront API returns standard HTTP status codes with structured error bodies. This reference lists every error you may encounter and how to handle each one.

Error response format

All error responses follow this structure:

Handling errors with the SDK

The SDK throws an ApiError 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.