Kalshi is a CFTC-regulated prediction market exchange. Orders use traditional limit-order semantics with the server signing each request using your registered RSA private key — no client-side cryptography required.Documentation Index
Fetch the complete documentation index at: https://docs.delphimarkets.com/llms.txt
Use this file to discover all available pages before exploring further.
At a glance
| Chain | None (centralized exchange) |
| Wallet model | None (USD account balance) |
| Quote token | USD (cents) |
| Signing | Server-side (RSA-PSS) |
| Auth | Kalshi API key ID + RSA private key, registered once |
Prerequisites
- A funded Kalshi account
- A Kalshi API key pair — generate at kalshi.com/account/api by uploading the public half of an RSA keypair you generate locally
- Your RSA private key in PEM format
kalshi-key.pub to Kalshi. Note the API key ID it returns (a UUID).
One-time setup: register credentials
Place an order
Order parameters
| Field | Type | Description |
|---|---|---|
ticker | string | Kalshi market ticker (e.g. KXNHLGAME-26MAR30PITNYI-NYI). |
side | 'yes' | 'no' | The outcome you’re trading — Kalshi sides are by outcome, not buy/sell direction. |
action | 'buy' | 'sell' | Default 'buy'. To exit a position, use 'sell'. |
type | 'limit' | Always 'limit'. |
price_cents | string | Limit price in cents (1-99). '54' = 54¢ = $0.54. |
count | string | Number of contracts. |
Kalshi prices are in cents, not dollars or fractions. A 54¢ limit means
price_cents: '54', not '0.54'.Query and cancel
Common pitfalls
401 Unauthorized: 'invalid signature'
401 Unauthorized: 'invalid signature'
Order rejected: 'invalid market ticker'
Order rejected: 'invalid market ticker'
Kalshi tickers can change format between events. Pull the latest market list from
GET /api/v1/klsi/markets (or the Kalshi API directly) before placing orders to confirm the ticker is current.Position limit error
Position limit error
Kalshi imposes per-market position limits (often $25,000 max exposure per market for retail accounts). Check your remaining headroom in the Kalshi UI before placing a large order.
Sandbox vs production
Sandbox vs production
Kalshi has separate
api.elections.kalshi.com (production) and demo-api.kalshi.co (sandbox) endpoints. The Delphi server uses production by default. Sandbox API keys are not interchangeable. If you want sandbox access for testing, contact Delphi support.API reference
POST /api/v1/orders— accepts aKalshiLimitOrderinsigned_orderPOST /api/v1/users/{userID}/credentials— pass_as the path segment

