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

# MM API Overview - Market Making Engine

> MM-V2 Trading API overview. Monitor and control the market making engine that posts orders on prediction market exchanges (Polymarket, Kalshi) and hedges on bookmakers (Pinnacle, Vertex).

## What this API does

The MM engine places orders, hedges positions, and tracks P\&L automatically.
This API lets you:

* **Monitor** — orders, bets, positions, P\&L, and account balances in real-time
* **Control** — pause, resume, stop, and start your engine
* **Configure** — choose which market types and tournaments to trade

## Base URL

```
https://mmapi.55-tech.com
```

All REST endpoints are prefixed with `/api/v1/`. The WebSocket endpoint lives at `/ws/subscribe`.

## Key concepts

### Your client account

When we onboard you, we create a client account and issue you an API key. This key authenticates every API and WebSocket request. You use the API to monitor your engine's activity, control its trading state, and configure which markets and tournaments to trade.

Everything else — exchange accounts, bookmaker selection, trading parameters — is configured by our team during setup.

### Bookmaker (pricing source)

Your engine is connected to a bookmaker — a sportsbook whose live odds feed drives your market-making activity. When the bookmaker's odds change, the engine recomputes order prices and posts them to your connected exchanges.

You don't choose or change your bookmaker through the API. It's assigned during onboarding. The bookmaker's odds are the input signal; the exchanges are where your orders land.

### Exchanges and prediction markets

The platforms where the engine places orders on your behalf. Your exchange accounts are set up by our team and linked to your client. You can view balances and status via `GET /accounts`, but account creation, credentials, and activation are handled on our side.

| Exchange      | Auth method             | Order type            |
| ------------- | ----------------------- | --------------------- |
| Polymarket    | Ethereum wallet signing | CLOB limit orders     |
| Polymarket US | JWT + gRPC              | gRPC order submission |
| Kalshi        | RSA-PSS signing         | REST limit orders     |
| Novig.us      | OAuth 2.0               | REST orders           |
| SX.bet        | API key + EIP712        | Signed orders         |
| Betfair       | SSL certificate         | Exchange API          |
| ProphetX      | JWT                     | REST orders           |
| Matchbook     | Session token           | REST orders           |
| Smarkets      | Session token           | REST orders           |
| 4casters      | Token auth              | Socket.IO             |
| Predict.fun   | JWT + EIP712            | Signed orders         |

### What you control vs what we configure

| You control (via API)                     | We configure (during setup)                    |
| ----------------------------------------- | ---------------------------------------------- |
| Pause / resume / stop / start your engine | Your bookmaker (pricing source)                |
| Cancel open orders                        | Exchange accounts and credentials              |
| Toggle market types on/off per sport      | Trading parameters (limit ratios, price ticks) |
| Activate / deactivate tournaments         | Client account creation and API keys           |
| Monitor orders, bets, positions, P\&L     |                                                |

### Order status

Returned on every order in `GET /orders`, `GET /orders/open`, and WebSocket events. Full enum:

```
PENDING_PLACEMENT → PLACED → FILLED / CANCELLED / FAILED / EXPIRED
```

Filter `GET /orders` with `?status=PLACED,FILLED` (comma-separated for multiple values).

### Match status

Independent of order status — tracks how much of the order has been matched on the exchange.

```
NOT_MATCHED → PARTIALLY_MATCHED → FULLY_MATCHED
```

### Settlement status

Set when the underlying market settles after the event finishes.

```
UNDECIDED → WON / LOST / VOID / HALF_WON / HALF_LOST
```

### Market types

Market types are discovered automatically. The engine continuously maps bookmaker
outcomes to exchange markets — a market type becomes available when the engine
proves it's tradeable on your connected exchanges.

**Discover available market types:**

```bash theme={null}
curl -H "X-API-Key: YOUR_KEY" \
  https://mmapi.55-tech.com/api/v1/sports/1/market-types
```

Each item in the response shows `marketType`, `enabled` (your current toggle), and
`marketName`. Use `PATCH /client/market-allowlist` to disable types you don't want
to trade, and `POST /client/market-allowlist/activate-all` to re-enable all.

## Rate limits

* REST API: **2,000 requests/minute** per client
* WebSocket: **5 concurrent connections** per API key

## Next steps

<Columns cols={2}>
  <Card title="Authentication" icon="key" href="/mm-api/authentication">
    Set up your API key.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/mm-api/quickstart">
    Make your first API calls.
  </Card>
</Columns>
