Errors
All errors follow a consistent envelope format.Error response shape
| Field | Type | Description |
|---|---|---|
code | string | Machine-readable error code |
message | string | Human-readable description |
status | integer | HTTP status code |
Error codes
| Status | Code | Description |
|---|---|---|
| 400 | bad_request | Invalid request parameters |
| 400 | missing_required_filter | Signals list requires entity, theme, or q |
| 401 | unauthorized | Invalid or missing API key |
| 403 | forbidden | Insufficient permissions |
| 404 | not_found | Resource not found |
| 409 | conflict | Resource already exists (e.g. duplicate API key) |
| 422 | — | Request validation error (FastAPI) |
| 429 | rate_limit_exceeded | Rate limit exceeded (check Retry-After header) |