> ## Documentation Index
> Fetch the complete documentation index at: https://docs.murmo.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Murmo API

> Trade spot, prediction markets, and perpetuals on Solana from a single API key.

Murmo is a social trading app on Solana: spot tokens, prediction markets, and perpetuals, organized
around groups of traders. The API gives bots and AI agents everything a Murmo user has: trade across
all three, join **groups**, and stream live market and chat data. One API key,
one wallet.

<CardGroup cols={2}>
  <Card title="Spot trading" icon="arrow-right-arrow-left" href="/guides/spot-trading">
    Search any Solana token and trade it through a group spot proposal.
  </Card>

  <Card title="Prediction markets" icon="chart-line" href="/guides/prediction-markets">
    Polymarket-backed events: propose, predict YES/NO, sell, and claim winnings.
  </Card>

  <Card title="Perpetuals" icon="gauge-high" href="/guides/perpetuals">
    Phoenix RISE perps with leverage, stop-loss / take-profit, and live PnL.
  </Card>

  <Card title="Portfolio & account" icon="wallet" href="/guides/portfolio-and-account">
    Balances, open and past positions, trade history, and your deposit address.
  </Card>

  <Card title="Real-time" icon="bolt" href="/websockets/overview">
    Subscribe to market ticks and chat events over WebSockets with the same key.
  </Card>
</CardGroup>

## How Murmo works

Murmo is **social trading on Solana**. Instead of wiring up DEX routes yourself, you act inside
**groups**:

* A **group** is a trading circle you belong to.
* Inside a group, a leader opens a **proposal**: one trade idea, like a token to buy, a YES/NO
  prediction, or a leveraged long/short.
* Members take their own **positions** under that proposal.

Groups, proposals, and positions work the same way across spot, prediction markets, and perpetuals.
See [Groups & proposals](/concepts/groups-and-proposals).

## Everything is USDC

Your wallet holds **USDC**, and that's the only unit you track. Every trade either spends USDC or
returns it:

* **Spot**: buy a token, you spend USDC; sell, you get USDC back.
* **Predictions**: a YES/NO position costs USDC, and winnings are claimed in USDC.
* **Perpetuals**: you post USDC as collateral, and closing settles back to USDC.

So funding is a single step: **send USDC on Solana to your wallet address** (from
`GET /api/v1/account`). There is nothing else to set up and no other token to hold.

## Base URL

<CodeGroup>
  ```text Production theme={null}
  https://api.alpha-labs.trade
  ```
</CodeGroup>

Every REST endpoint lives under `/api/v1`. For example:

```text theme={null}
GET https://api.alpha-labs.trade/api/v1/me
```

## Three things to know

<Steps>
  <Step title="Authenticate with a Bearer key">
    Send `Authorization: Bearer murmo_...` on every request. Create keys in the Murmo app.
    See [Authentication](/authentication).
  </Step>

  <Step title="Money is always a decimal string">
    Every monetary value on the wire — in requests and responses — is a full-precision plain
    decimal **string** like `"12.50"`. Never a number, never raw base units, never scientific
    notation, never rounded. See [Money & precision](/concepts/money-and-precision).
  </Step>

  <Step title="Trading happens inside groups">
    Spot, prediction, and perp positions are organized as **proposals** inside **groups** (your
    trading circles). Account reads are the exception.
    See [Groups & proposals](/concepts/groups-and-proposals).
  </Step>
</Steps>

## A first request

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.alpha-labs.trade/api/v1/me \
    -H "Authorization: Bearer murmo_your_key_here"
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch("https://api.alpha-labs.trade/api/v1/me", {
    headers: { Authorization: `Bearer ${process.env.MURMO_API_KEY}` },
  });
  const { data } = await res.json();
  console.log(data.userId, data.rateLimit);
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      "https://api.alpha-labs.trade/api/v1/me",
      headers={"Authorization": f"Bearer {os.environ['MURMO_API_KEY']}"},
  )
  print(res.json()["data"])
  ```
</CodeGroup>

```json Response theme={null}
{
  "data": {
    "userId": "d66bafb2-...",
    "authMethod": "apiKey",
    "apiKey": { "id": "...", "label": "my-bot", "prefix": "murmo_froc", "createdAt": "2026-06-01T00:00:00.000Z" },
    "rateLimit": { "limit": 1200, "windowSeconds": 60 }
  }
}
```

Ready to trade? Follow the [Quickstart](/quickstart) to your first trade, or jump straight to a
complete [example flow](/examples/spot-bot).
