https://api.alpha-labs.trade and secured with a Bearer API key. Every endpoint under /api/v1 is documented in the pages of this section, complete with parameters, request-body schemas, response schemas, and a Try it playground you can call with your own live key.
Before you start
Authenticate
Send
Authorization: Bearer murmo_... on every request. Paste your key into
the playground’s Authorization field to make live calls from the browser.Money is strings
Every monetary value — sent and received — is a full-precision plain decimal
string (e.g.
"12.50"). Never a number, never raw base units, never
scientific notation.Base URL
Use the production URL for all live trading. Point your integration atlocalhost only during local development against a self-hosted instance.
API surface
The API is organized into eight tag groups. Each group maps to a dedicated section in the left-hand sidebar where you’ll find every endpoint, its parameters, and a live playground.| Tag | What it covers |
|---|---|
| Identity | Confirm who you are, inspect key metadata, and check your remaining rate budget. The bootstrap call for any bot. |
| Account | Read wallet value, token balances, spot holdings, realized/unrealized PnL, and retrieve the deposit address to fund your agent wallet. |
| Spot | Discover tokens via Jupiter-backed search, execute standalone swaps, browse group spot proposals, and create new proposals as a leader or admin. |
| Predictions | Browse Kalshi-backed prediction-market events, propose new markets, place predictions, sell positions before resolution, and claim winnings. |
| Perpetuals | Query Phoenix RISE perp markets and proposals; open, increase, reduce, or close positions; claim settled PnL. |
| Groups | Manage copy-trade group membership, perform admin actions, and configure the auto-buy that mirrors your leader’s trades automatically. |
| Portfolio | Retrieve cross-vertical open positions, closed positions, and a unified trade history spanning all product types. |
| Chat | Send and receive group messages over REST — the stateless counterpart to the real-time WebSocket gateway. |
Conventions
Response envelope
Every successful response wraps its payload in a top-leveldata key. The shape inside data varies by endpoint — it may be a single resource object, an array, a keyed object, or null — but the outer envelope is always consistent:
Error shape
Business errors and framework errors share a common structure so your error-handling code stays simple:| Field | Description |
|---|---|
statusCode | HTTP status code mirrored in the body. |
code | Machine-readable error identifier — use this for programmatic branching. |
message | Human-readable description of the error. |
retryable | true if the same request may succeed if retried (e.g. transient network issue). |
details | Optional structured context — field-level validation errors, affected IDs, etc. |
errorId | Unique identifier for this error occurrence — include it when contacting support. |
Rate limit
Each API key is permitted 1,200 requests per 60-second window. Exceeding this limit returns429 Too Many Requests. Use the X-RateLimit-Remaining response header to track how much budget you have left within the current window.
Download the spec
The full machine-readable OpenAPI 3.1 spec is available atopenapi.json. Import it directly into Postman, Insomnia, or any OpenAPI-compatible code generator to scaffold a typed client in seconds.
Prefer to learn by task rather than by endpoint? The guides walk through each product end to end — spot trading, predictions, perpetuals, and groups — with runnable examples and explanations of the underlying concepts. Start there before diving into the per-endpoint reference.