> For the complete documentation index, see [llms.txt](https://dev.strixlab.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.strixlab.io/readme.md).

# Developer Docs

Trade Strix Lab programmatically — a typed TypeScript SDK over a REST + WebSocket order-book API.

Strix Lab runs a central-limit order book. Orders match off-chain in milliseconds and settle on-chain in USDC — and everything the app does, your code can do too.

There are two ways in:

* [**`strix-sdk`**](/get-started/installation.md) — the official TypeScript client. Typed responses, HMAC signing, order-book caching, and auto-reconnecting WebSocket channels. **Start here.**
* [**The raw HTTP + WebSocket API**](/http-and-websocket-api/rest.md) — for any other language. The SDK is a thin wrapper over it, so everything below maps one-to-one.

{% hint style="success" %}
**Never used the platform before?** Read [Core Concepts](/get-started/concepts.md) first — five minutes there saves an afternoon of debugging `tokenId`.
{% endhint %}

### Hello, order book

{% code title="hello-strix.ts" %}

```ts
import { StrixClient } from 'strix-sdk';

const client = new StrixClient({ baseUrl: 'https://api.strixlab.io/api' });

const { items } = await client.events.list({ status: 'open', limit: 1 });
const tokenId   = items[0].markets[0].outcomes[0].tokenId;

const book = await client.orderbook.snapshot(tokenId, { depth: 5 });
console.log(book.bids[0], book.asks[0]);
```

{% endcode %}

No credentials needed for that — market data is public. Add API keys when you want to trade.

### Start here

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>⚡ Quickstart</strong></td><td>Install, authenticate, and place your first programmatic order.</td><td><a href="/get-started/quickstart.md">Quickstart</a></td></tr><tr><td><strong>🧠 Core Concepts</strong></td><td>Events, markets, outcomes, <code>tokenId</code>, ticks, and async settlement.</td><td><a href="/get-started/concepts.md">Core Concepts</a></td></tr><tr><td><strong>📈 Orders</strong></td><td>Limit, market, and batch orders — plus the cancel kill-switch.</td><td><a href="/typescript-sdk/orders.md">Orders</a></td></tr><tr><td><strong>🔌 WebSocket Streams</strong></td><td>Live book, public trades, and your own fills on one socket.</td><td><a href="/typescript-sdk/websockets.md">WebSocket Streams</a></td></tr><tr><td><strong>🤖 Market-Maker Bot</strong></td><td>A complete two-sided quoting bot, built up step by step.</td><td><a href="/guides/market-maker-bot.md">Build a Market-Maker Bot</a></td></tr><tr><td><strong>📚 SDK Reference</strong></td><td>Every method on the client, on one page.</td><td><a href="/typescript-sdk/reference.md">SDK Reference</a></td></tr></tbody></table>

### What the API covers

<table><thead><tr><th width="220">Area</th><th>What you get</th></tr></thead><tbody><tr><td><strong>Market data</strong></td><td>Events, markets, outcomes, order-book snapshots, midpoints, OHLCV candles, public trade feed — all without credentials.</td></tr><tr><td><strong>Trading</strong></td><td>Limit orders (GTC/GTD/FOK/FAK), market orders, batches of up to 15, single/batch/bulk cancel.</td></tr><tr><td><strong>Account</strong></td><td>Balances, positions, trade history, deposits and withdrawals.</td></tr><tr><td><strong>Conditional tokens</strong></td><td>Split USDC into a full outcome set, merge it back, redeem winnings after resolution.</td></tr><tr><td><strong>Real time</strong></td><td>Order-book snapshots and deltas, last trade price, your order updates, fills, and position deltas.</td></tr></tbody></table>

{% hint style="warning" %}
**Availability.** Opening new positions is not available in every jurisdiction. See [Restricted Regions](https://docs.strixlab.io/policies/restricted-regions) before you deploy a bot.
{% endhint %}
