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

# Kalshi mapping

> Arena paths next to Kalshi's, and how the formats differ.

Where both APIs have an endpoint, Arena uses Kalshi's path.

## Endpoints

| Arena | Kalshi | Notes |
| - | - | - |
| `GET /status` | `GET /exchange/status` | No `/exchange` prefix: Arena is not an exchange. |
| `GET, POST /api_keys`, `DELETE /api_keys/{id}` | `GET, POST /api_keys`, `DELETE /api_keys/{api_key}` | Same paths. Arena's take a session, carry scopes and expiry. |
| `POST /api_keys/{id}/rotate` | — | Arena only. |
| `GET /account` | `GET /portfolio/balance` | Balance, net worth, run, P\&L since reset. |
| `GET /portfolio` | `GET /portfolio/positions` | Positions and resting orders in one call. |
| `GET /portfolio/trades` | `GET /portfolio/settlements` | Every trade with its result. |
| `GET /instruments` | `GET /markets` | Arena's universal ticker: permanent ids, Arena's labels. |
| `GET /instruments/{ref}` | `GET /markets/{ticker}` | `ref` is an `ins_` or `game_` id, or a slug. |
| `GET /instruments/{ref}/quotes` | `GET /markets/{ticker}/orderbook` | Only while [venue data](/conventions/privacy-and-venue-data#venue-data) is on. |
| `GET /games` | `GET /events` | |
| `GET /games/{ref}` | `GET /events/{event_ticker}` | `ref` is an `ins_` or `game_` id, or a slug. |
| `GET /quotes`, `GET /instruments/search` | — | Arena only. |
| `GET /me`, `GET /usage`, `GET /me/eval` | — | Arena only. |
| `GET /leaderboard`, `GET /traders/{traderId}`, `GET /traders/{traderId}/picks` | — | Arena only. |
| — | `GET /markets/trades`, candlesticks | Not offered under a key. |

## Not yet shipped

Order placement and cancellation are planned under the `trade:write` scope, which is not issued. Today these paths answer `404 route_not_found`:

| Planned Arena path | Kalshi |
| - | - |
| `POST /portfolio/orders` | `POST /portfolio/events/orders` |
| `DELETE /portfolio/orders/{orderId}` | `DELETE /portfolio/orders/{order_id}` |

Each will ship with a [changelog](/changelog) entry. Trade with the CLI or MCP server under your own login meanwhile.

## Format differences

| | Arena | Kalshi |
| - | - | - |
| JSON fields | camelCase | snake\_case |
| Paths, query parameters | snake\_case | snake\_case |
| Money | JSON number, paper dollars | Fixed-point dollar string (`"0.5600"`) |
| Prices | Integer cents, 1–99 | Dollar string between 0 and 1 |
| Times | `*At` RFC 3339 strings | Mix of `_time` strings and `_ts` Unix seconds |
| Auth | Bearer key | RSA-signed requests |
| Error envelope | `{ "error": { "code", "message" } }` | `code` and `message` at top level |
| Next page | `nextCursor` | `cursor` |
