2xx for success, 4xx for something wrong with the request, and 5xx for a problem on Stell’s side.
Error response format
Every error returns a JSON body with the same shape:error.code: a machine-readable code your integration can branch on.error.message: a human-readable explanation of what went wrong.error.details: additional context when available, such as which field failed validation.requestId: a unique identifier for the request. Include it when you contact support about a failed call. It lets us find the exact request in our logs.
Status codes
Handle errors well
- Branch on
error.code, not onerror.message. Messages can change, codes won’t. - Retry
5xxand429responses with exponential backoff. Don’t retry4xxresponses unchanged; fix the request first. - Log the
requestIdfor every failed call so support conversations start with the right context.