400 | Bad Request | Invalid request body, missing required fields, malformed parameters |
401 | Unauthorized | Invalid, expired, or revoked API key; invalid or expired Keycloak JWT; missing Mcp-Protocol-Version on JWT-authenticated MCP request. Response includes a WWW-Authenticate: Bearer resource_metadata="..." header pointing at /.well-known/oauth-protected-resource for OAuth discovery |
402 | Payment Required | No credentials provided. Response includes payment_options with x402 and API key signup details |
403 | Forbidden | Valid credentials, but insufficient scopes (for scoped API keys) or blocked by the member’s access policies |
404 | Not Found | Resource doesn’t exist or belongs to another tenant |
409 | Conflict | Duplicate resource (e.g., duplicate slug) |
429 | Too Many Requests | Rate limited. See Retry-After header for when to retry |
500 | Internal Server Error | Something broke on our end. Logged and tracked automatically |
501 | Not Implemented | Feature exists in the API surface but isn’t live yet |