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.