Authorization header. Create your key in the Murmo app — it will be prefixed with murmo_ and is tied to your user account and wallet.
What a key can and cannot do
Understanding the boundary of a key’s power helps you reason about the blast radius if one is ever exposed.Allowed
Reads (identity, account, positions, trade history), spot swaps and group trades, prediction
market and perp positions, group membership and copy-trade settings, and chat.
Not Allowed
Withdrawing funds to an external address and managing API keys. Both actions require an
interactive in-app session and have no REST route. A key cannot drain your wallet.
API keys are scoped to the REST API (
/api/v1) and the real-time WebSocket gateways.
They are not accepted on the GraphQL endpoint (/graphql), which is the interactive app
surface and requires a full browser session. Using a key against GraphQL returns 403 Forbidden.Inspect the current credential
CallGET /api/v1/me to confirm the key is valid, see its metadata (never the secret itself), and check your current rate-limit budget.
curl
Response
prefix field — for example murmo_froc — is enough to identify which key you’re using in logs without exposing the secret.
Rate limits
API-key traffic is limited to 1,200 requests per 60-second rolling window. Exceeding the limit returns429 Too Many Requests. Back off and retry after the window resets. Your current limit and window size are always visible in the rateLimit object on GET /api/v1/me.
WebSocket authentication
The samemurmo_ key authenticates the real-time WebSocket gateways. Pass it in the Socket.IO handshake’s auth.token field — or as an Authorization: Bearer header — and never in the query string.
JavaScript
Error reference
| Status | Meaning |
|---|---|
401 Unauthorized | The Authorization header is missing, malformed, or the key is invalid. Check that the key starts with murmo_ and is formatted as Bearer murmo_.... |
403 Forbidden | The key is valid but the action is not permitted — for example, you are not a member of the target group, or the action requires an in-app session (such as a withdrawal). |
429 Too Many Requests | You have exceeded 1,200 requests in the current 60-second window. Back off and retry. |
Security checklist
Apply these three practices before you ship any bot or agent to production.Store the key in a secret manager
Use an environment variable or a secrets manager (e.g. AWS Secrets Manager, HashiCorp Vault) —
never hard-code it in source files or commit it to a repository. If you accidentally expose it
in a commit, rotate it immediately.
Transmit it only over HTTPS or WSS
Always use TLS. HTTP or WS (plain-text) connections must never carry your key. When logging
request metadata, log the
prefix field (murmo_froc...) rather than the full key value.