# Murmo API > Trade spot, prediction markets, and perpetuals on Solana — and copy the best traders — from a single API key. ## Docs - [Murmo REST API Reference: Endpoints, Schemas, and Playground](https://docs.murmo.xyz/api-reference.md): Explore the full Murmo REST surface — base URL, Bearer auth, money conventions, response envelope, error shape, and the interactive playground. - [Account summary](https://docs.murmo.xyz/api-reference/account/account-summary.md): Total wallet value, cash (USDC) balance, and the deposit object an agent uses to fund itself (send USDC to that mint + address on Solana). - [Portfolio PnL](https://docs.murmo.xyz/api-reference/account/portfolio-pnl.md): Absolute (USD) and percent change over the default window. - [Portfolio value + 24h change](https://docs.murmo.xyz/api-reference/account/portfolio-value-+-24h-change.md): Aggregate portfolio value and 24-hour change. `currency` is the quote currency (usd). - [Spot holdings](https://docs.murmo.xyz/api-reference/account/spot-holdings.md): Token holdings (spot positions) in the main wallet, with a `nextCursor` for pagination when present. - [Token balances](https://docs.murmo.xyz/api-reference/account/token-balances.md): Cash and token balances held in the main wallet. - [Get messages](https://docs.murmo.xyz/api-reference/chat/get-messages.md): Newest-first page of messages for a group. Cursor via `before`/`after` ISO timestamps. Members only. - [Mark chat read](https://docs.murmo.xyz/api-reference/chat/mark-chat-read.md): Mark the group's chat as read for the caller (resets unread count to 0). - [Pinned messages](https://docs.murmo.xyz/api-reference/chat/pinned-messages.md): Pinned messages for a group (newest pin first). Members only. - [Send a message](https://docs.murmo.xyz/api-reference/chat/send-a-message.md): Send a message to a group (membership enforced). `type` is one of TEXT, STICKER, IMAGE, SYSTEM. - [All proposals in a group](https://docs.murmo.xyz/api-reference/groups/all-proposals-in-a-group.md): All proposals (spot + prediction) in a group, as one combined object. Members only. - [Approve / reject a join request](https://docs.murmo.xyz/api-reference/groups/approve-reject-a-join-request.md): Approve or reject a pending join request (leader/admin only). Body `{ action: 'reject' }` rejects; default approves. - [Create a group](https://docs.murmo.xyz/api-reference/groups/create-a-group.md): Create a group; the caller becomes ADMIN. Fees are whole-dollar amounts sent as strings. - [Enable / disable an agent](https://docs.murmo.xyz/api-reference/groups/enable-disable-an-agent.md): Enable or disable an agent in the group (admin only). `action` defaults to `enable`. - [Group agents](https://docs.murmo.xyz/api-reference/groups/group-agents.md): Agents configured for the group (members only). - [Join a group](https://docs.murmo.xyz/api-reference/groups/join-a-group.md): Join a group. PUBLIC groups join immediately; PRIVATE groups create a join request (or finalize a prior approval/invite when `finalize: true`). An `inviteCode` routes by the code and ignores the group type. - [Kick a member](https://docs.murmo.xyz/api-reference/groups/kick-a-member.md): Kick a member (admin only). - [Leave a group](https://docs.murmo.xyz/api-reference/groups/leave-a-group.md): Queue the leave job (sells positions, then removes membership). Returns immediately with status EXITING. - [My groups](https://docs.murmo.xyz/api-reference/groups/my-groups.md): The groups the caller is a member of (your own — there is no discovery of other people's groups). - [Pay subscription](https://docs.murmo.xyz/api-reference/groups/pay-subscription.md): Pay the caller's past-due subscription for this group. - [Pending join requests](https://docs.murmo.xyz/api-reference/groups/pending-join-requests.md): Pending REQUESTED members (leader/admin only). - [Promote a member](https://docs.murmo.xyz/api-reference/groups/promote-a-member.md): Promote a MEMBER to LEADER (admin only). - [Set copy-trade follow](https://docs.murmo.xyz/api-reference/groups/set-copy-trade-follow.md): Set the caller's copy-trade follow for this group. `enabled` toggles it; `amountUsd` (human decimal string) is the fixed follow size used to mirror the group's calls. - [Update group settings](https://docs.murmo.xyz/api-reference/groups/update-group-settings.md): Update group settings (leader/admin only). - [Current identity](https://docs.murmo.xyz/api-reference/identity/current-identity.md): Returns the user id behind the credential, the auth method, key metadata (never the secret), and the per-key rate budget. The bot's bootstrap call. - [Claim a take-profit close](https://docs.murmo.xyz/api-reference/perpetuals/claim-a-take-profit-close.md): Acknowledge a take-profit-triggered close and drain the proceeds to the wallet, keyed by `assignmentId`. - [Close a perp proposal](https://docs.murmo.xyz/api-reference/perpetuals/close-a-perp-proposal.md): Close the whole proposal (creator only). Closes the creator's own open position(s) and locks out new joiners; follower positions are left untouched. Subject to regional restrictions (see Eligibility & geo restrictions). - [Join / increase a proposal](https://docs.murmo.xyz/api-reference/perpetuals/join-increase-a-proposal.md): Open a new position under an existing proposal (inherits the proposal's side). Caller must be a member of the proposal's group. Subject to regional restrictions (see Eligibility & geo restrictions). - [List perp markets](https://docs.murmo.xyz/api-reference/perpetuals/list-perp-markets.md): All tradable perp markets with live price/funding/volume fields. - [List perp proposals](https://docs.murmo.xyz/api-reference/perpetuals/list-perp-proposals.md): Perp proposals (ideas) in a group. Members only. - [My perp positions](https://docs.murmo.xyz/api-reference/perpetuals/my-perp-positions.md): The caller's perp positions. `filter` is `active` (default), `past`, or `all`. - [Open a perp position (create proposal)](https://docs.murmo.xyz/api-reference/perpetuals/open-a-perp-position-create-proposal.md): Open a NEW perp position, creating the proposal atomically. `collateralUsd` and `leverage` are numeric strings; `stopLossPct`/`takeProfitPct` are optional % collateral-ROI brackets. The wallet is resolved server-side. Subject to regional restrictions (see Eligibility & geo restrictions). - [Perp market by symbol](https://docs.murmo.xyz/api-reference/perpetuals/perp-market-by-symbol.md): One market by symbol (e.g. BTC). Returns `data: null` if unknown. - [Perp proposal detail](https://docs.murmo.xyz/api-reference/perpetuals/perp-proposal-detail.md): One perp proposal by id. Members only. Returns `data: null` if not found. - [Reduce / close a position](https://docs.murmo.xyz/api-reference/perpetuals/reduce-close-a-position.md): Reduce (or fully close) one of the caller's positions, keyed by `assignmentId`. `reduceFraction` is in (0, 1]; set `isFullClose: true` for a full close. Subject to regional restrictions (see Eligibility & geo restrictions). - [Open positions (all verticals)](https://docs.murmo.xyz/api-reference/portfolio/open-positions-all-verticals.md): Open positions across perps + spot + predictions, in every group, in one call. - [Past positions (all verticals)](https://docs.murmo.xyz/api-reference/portfolio/past-positions-all-verticals.md): Closed/resolved positions across all three verticals. - [Trade history](https://docs.murmo.xyz/api-reference/portfolio/trade-history.md): Executed trade history (spot + predictions). Perp fills are surfaced via /perps/positions. - [Browse events](https://docs.murmo.xyz/api-reference/predictions/browse-events.md): Browse prediction events (trending, scoped to comma-separated series tickers, or — when `category` is given — the paginated category browse). Kalshi-native: prices here are already human dollar strings. - [Browse live events](https://docs.murmo.xyz/api-reference/predictions/browse-live-events.md): Browse live sports events (trending feed, or filtered by category/subcategory/competition). - [Claim winnings](https://docs.murmo.xyz/api-reference/predictions/claim-winnings.md): Claim winnings on a determined/finalized winning position. - [Close a prediction proposal](https://docs.murmo.xyz/api-reference/predictions/close-a-prediction-proposal.md): Close a proposal (creator only). Sells the creator's entire position and puts the proposal in a sell-only state. `trade` is null when there was nothing to sell. - [Create prediction proposal](https://docs.murmo.xyz/api-reference/predictions/create-prediction-proposal.md): Create a prediction proposal with an initial prediction (group leader only). Takes an event/market reference — never a title; the backend resolves titles and the outcome mint server-side. Subject to regional restrictions (see Eligibility & geo restrictions). - [Event by ticker](https://docs.murmo.xyz/api-reference/predictions/event-by-ticker.md): Get a single event by its Kalshi ticker (markets filtered for liquidity). - [List prediction proposals](https://docs.murmo.xyz/api-reference/predictions/list-prediction-proposals.md): List a group's prediction proposals with the caller's position on each. Members only. - [Make a prediction](https://docs.murmo.xyz/api-reference/predictions/make-a-prediction.md): Add to your position on an existing proposal. `amountUsd` is a human USD string. Subject to regional restrictions (see Eligibility & geo restrictions). - [Prediction proposal detail](https://docs.murmo.xyz/api-reference/predictions/prediction-proposal-detail.md): Proposal metadata plus the caller's position on it (`position` is null when the caller holds nothing). Members only. - [Related events](https://docs.murmo.xyz/api-reference/predictions/related-events.md): Related events for a game (spread, total, props for the same matchup). `seriesTicker` is required. - [Search events](https://docs.murmo.xyz/api-reference/predictions/search-events.md): Fuzzy-search prediction events by query string. - [Sell / cash out](https://docs.murmo.xyz/api-reference/predictions/sell-cash-out.md): Sell (cash out) part or all of a position. Send `amountUsd` (desired USDC value to sell — converted to an outcome-token amount at the current price and capped at your position), or `max: true` to sell the entire position. Exactly one is required. The realized USDC is determined at execution; `amount… - [Buy into a proposal](https://docs.murmo.xyz/api-reference/spot/buy-into-a-proposal.md): Buy into a proposal. Send `amountUsd` (human USDC), or `max: true` to spend the full USDC balance (then `amountUsd` is ignored). - [Close a spot proposal](https://docs.murmo.xyz/api-reference/spot/close-a-spot-proposal.md): Close a proposal (creator only). Sells the creator's full position and puts the proposal in a closed state. - [Create spot proposal](https://docs.murmo.xyz/api-reference/spot/create-spot-proposal.md): Create a spot proposal with the proposer's opening buy. `amountUsd` (human USDC) is the opening buy size. Leader/admin only. - [List spot proposals](https://docs.murmo.xyz/api-reference/spot/list-spot-proposals.md): List a group's spot proposals with the caller's position on each. Caller must be a member of the group. - [Search tokens](https://docs.murmo.xyz/api-reference/spot/search-tokens.md): Jupiter-backed Solana token search. Price/volume fields in the result are full-precision decimal strings. - [Sell out of a proposal](https://docs.murmo.xyz/api-reference/spot/sell-out-of-a-proposal.md): Sell out of a proposal position. Send `amountUsd` (desired USDC output, human), or `max: true` to sell the full token position. - [Spot proposal detail](https://docs.murmo.xyz/api-reference/spot/spot-proposal-detail.md): Detail for a single spot proposal: the same `{ proposal, userPosition, participantCount, participantAvatars }` shape as the list, plus `proposal.trades` (the caller's trades on this proposal). Members only. Returns `data: null` if not found. - [Standalone swap](https://docs.murmo.xyz/api-reference/spot/standalone-swap.md): Execute a standalone (non-group) swap, signed server-side via the delegated wallet. `sell`/`buy` are mint addresses or the literal `"USDC"`. `amountUsd` is the human input amount in the sell token's USDC value. Slippage and walletId are resolved server-side and are never accepted from the caller. - [Token by mint](https://docs.murmo.xyz/api-reference/spot/token-by-mint.md): Price + metadata for a Solana token by its mint address. - [Authenticate with the Murmo API: Bearer Keys & Rate Limits](https://docs.murmo.xyz/authentication.md): How to send your Bearer token, what API keys are allowed to do, rate limit rules, WebSocket auth, and a security checklist for production bots. - [Murmo API Error Handling: Codes, Retries, and Envelopes](https://docs.murmo.xyz/concepts/errors.md): Master the Murmo error envelope, HTTP status codes, retry semantics, and the key error codes your integration needs to handle gracefully. - [Geographic Restrictions and Eligibility Rules on Murmo](https://docs.murmo.xyz/concepts/geo-restrictions.md): Perpetuals and predictions are restricted in some jurisdictions. Learn which endpoints enforce it, what KYC covers, and why withdrawals are in-app only. - [Groups and Proposals: Murmo's Social Trading Model](https://docs.murmo.xyz/concepts/groups-and-proposals.md): Understand groups, proposals, and positions — the three building blocks behind every trade on Murmo — and how API responses are shaped around them. - [How Murmo Represents Money: Decimal Strings and Precision](https://docs.murmo.xyz/concepts/money-and-precision.md): Every monetary value in the Murmo API is a full-precision decimal string in USD. Learn the rule, the reasoning, and how to parse safely. - [Murmo API Rate Limits: 1,200 Requests per 60 Seconds](https://docs.murmo.xyz/concepts/rate-limits.md): The Murmo API allows 1,200 requests per 60 seconds per key. Learn what triggers a 429, and three practical strategies to stay within the limit. - [Copy Trading: Auto-Follow Group Leaders with Murmo Groups](https://docs.murmo.xyz/guides/copy-trading.md): Enable auto-buy to mirror a group's calls at a fixed size, manage group membership, and run your own group with members, agents, and join requests. - [Perpetuals: Leveraged LONG and SHORT Positions on Murmo](https://docs.murmo.xyz/guides/perpetuals.md): Open leveraged LONG or SHORT positions on Phoenix RISE perp markets inside a group — monitor live PnL, reduce, close, and claim take-profit proceeds. - [Portfolio and Account: Balances, Positions, and Trades](https://docs.murmo.xyz/guides/portfolio-and-account.md): Check your identity, deposit address, token balances, portfolio value, open positions, and trade history across all groups and verticals. - [Prediction Markets: YES/NO Events and Proposals on Murmo](https://docs.murmo.xyz/guides/prediction-markets.md): Take YES or NO positions on Kalshi-backed real-world events inside a group — discover markets, open proposals, predict more, sell, and claim winnings. - [Spot Trading: Tokens, Swaps, and Group Proposals on Murmo](https://docs.murmo.xyz/guides/spot-trading.md): Search tokens, execute standalone swaps, and run shared group spot proposals — all signed server-side with no private key handling required. - [Murmo API: Spot, Prediction Markets & Perpetuals on Solana](https://docs.murmo.xyz/introduction.md): One API key to swap Solana tokens, trade prediction markets and perpetuals, copy top traders, and stream real-time market data on-chain. - [Murmo MCP: Connect AI Agents via Model Context Protocol](https://docs.murmo.xyz/mcp.md): Connect Claude, Cursor, or any MCP-compatible agent to Murmo's full trading API using Streamable HTTP transport and your existing API key. - [Get Started: From API Key to Live Solana Trade on Murmo](https://docs.murmo.xyz/quickstart.md): Go from an API key to a live on-chain Solana trade in minutes — covering auth, wallet funding, standalone swaps, and group proposals. - [Receive Group Chat and Notifications via WebSocket](https://docs.murmo.xyz/websockets/chat.md): Stream group messages, trade proposal updates, membership changes, and per-user notifications in real time using the /chat Socket.IO namespace. - [Stream Live Perp Market Ticks with the /perps WebSocket](https://docs.murmo.xyz/websockets/market-data.md): Stream throttled live mark price, oracle price, funding rate, and volume for perpetual markets using the /perps Socket.IO namespace. - [Stream Market Ticks and Chat Events via Murmo WebSockets](https://docs.murmo.xyz/websockets/overview.md): Connect to Murmo's two Socket.IO namespaces to stream live market ticks and group chat events in real time without polling the REST API. ## OpenAPI Specs - [openapi](https://docs.murmo.xyz/openapi.json)