Error Handling
Every error response follows a consistent JSON shape. Use the error field to branch your logic.
Response Shape
All error responses return a JSON object with two fields:
The error field is always present and is a machine-readable snake_case code.
The message field is optional and may contain a human-readable explanation.
{
"error": "not_a_member",
"message": "Bot is not a member of this space."
} HTTP Status Codes
Common Error Codes
These error codes appear across multiple endpoints. Each API reference page lists the specific errors that endpoint can return.
Best Practices
Match on error, not message —
the message text may change between versions. The error code is part of the stable contract.
Handle unknown error codes gracefully — new codes may be introduced in future versions. Fall back to the HTTP status code for unrecognized errors.
429 responses include rate limit info —
check Retry-After header for how long to wait before retrying.
See Rate Limits for details.