Agent CapabilitiesError Codes

Error Codes

All errors return JSON with error (string) and code (integer).

HTTP Status Codes

CodeMeaningWhen
200OKSuccessful request
400Bad RequestInvalid parameters (wrong enum value, invalid combination)
401UnauthorizedMissing/invalid Authorization: Bearer <key> header
403ForbiddenAPI key’s tier does not grant access to this endpoint
404Not FoundResource does not exist
429Too Many RequestsPer-tier rate limit exceeded
500Internal Server ErrorDatabase query failure or unexpected server error
503Service UnavailableAuthentication or another required backend is temporarily unavailable; /ready also uses 503 while dependencies are down

Successful identity no-match states

Not every absence is a 404. These Layer 2 identity requests return HTTP 200 when the input is syntactically accepted but no active association exists:

EndpointStable no-match body
/v1/wallet/:addr/identity{"wallet_address":"...","primary":null,"aliases":[]}
/v1/kol-wallets/:username{"username":"normalized","wallets":[]}

Keep these distinct from a 400 invalid input and from a 500/503 dependency failure. Do not reinterpret either successful empty body as proof that a wallet is anonymous, safe, or not publicly associated outside the current registry.

Error Response Format

{"error": "Human-readable description", "code": 400}

Specific 400 Errors

EndpointTriggerError Message
/v1/wallet/:addr/performanceInvalid window"Invalid window. Use 1d, 7d, or 30d"
/v1/wallet/:addr/positionsInvalid status"Invalid status. Use open, closed, or all"
/v1/kol-wallets/:usernameInvalid username grammar"Invalid username"
/v1/kol-wallets/:usernameInvalid platform"Invalid platform. Use x or telegram"
/v1/leaderboardInvalid window"Invalid window. Use 1d, 7d, or 30d"
/v1/leaderboardInvalid sort"Invalid sort. Use pnl_usd, roi, or win_rate"
/v1/token/:mint/ohlcvInvalid timeframe/view"Invalid timeframe/view combination. Use timeframe=1s|1m|5m|15m|1h and view=full|filtered"

WebSocket Errors

⚠️

Sent as {"op": "error", "message": "..."}. Do not close the connection.

TriggerMessage
Malformed JSON"Invalid message format"
Too many subscriptions"Subscription limit reached (max 50)"
Invalid channel name"Invalid channel '...'. Expected: token:<mint>:trades|ticks|ohlcv:<view>:<tf>|security|campaign|bundles|dump_alert or wallet:<address>:pnl|positions|labels|security|follow|entity"
Invalid OHLCV view"Invalid OHLCV view '...'. Use 'full' or 'filtered'"
Invalid OHLCV timeframe"Invalid OHLCV timeframe '...'. Use 1s, 1m, 5m, 15m, or 1h"
Empty key"Empty key in channel"
Invalid key chars"Invalid characters in key '...'"
Key too long"Key too long (max 64 chars)"