Skip to main content
The Totalis API is REST over HTTPS with JSON bodies. It adds Server-Sent Events (SSE) for live quote pricing and a WebSocket for post-trade events, all in snake_case. Not sure which channel fits your integration? Start with Real time & data channels.

Base URL

Authentication

Send your API key in the X-API-Key header on every request:
The web dashboard authenticates with Privy instead, sending Authorization: Bearer <jwt>. Either scheme works on any authenticated endpoint. The exception is minting a new API key (POST /v1/api-keys), which requires a Privy JWT or a key with the keys:manage scope. Each key is scoped — see Authentication for the catalog.

Response envelope

Successful responses wrap the resource in data:
List endpoints add cursor-based pagination in meta:
To page, pass the previous response’s meta.cursor as ?cursor=. Cursors are opaque — don’t parse or build them yourself.

Errors

Errors use a consistent envelope:
error.code is one of: VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, CONFLICT, RATE_LIMITED, PAYLOAD_TOO_LARGE, INTERNAL_ERROR, SERVICE_UNAVAILABLE. On a 429, error.retry_after gives the seconds to wait before retrying.

Rate limits

100 requests/minute unauthenticated, 300/minute authenticated. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Endpoint groups

Markets

Browse prediction markets across Kalshi and Polymarket.

Quote service

Open a quote request, stream live pricing, and commit the best quote.

Parlays

List your parlays and read settlement detail.

Funds & vault

Balances, portfolio, P&L, and withdrawals.

Webhooks

Configure signed event delivery.

Market maker

Stream quote requests, submit quotes, and confirm trades.