Kalshi Endpoints
Kalshi Markets API
Find Kalshi markets using filters including search, status, category, event ticker, and volume sorting.
How TPM stores Kalshi markets
TPM stores Kalshi in normalized tables: Event → PlatformMarket → Outcome → Snapshot. Each Kalshi event maps to a PlatformMarket row (identified by event_ticker), and each binary market within that event maps to an Outcome row (identified by market_ticker).
Get Kalshi markets
Find Kalshi markets using TPM storage with search, category, status, pagination, volume, and outcome price data.
Live GET Request
Try it
Live Response
Click Try It to run this GET request against the API.Request
curl 'https://api.thepredictionmarkets.com/api/v2/kalshi/markets?search=nyc+mayor&limit=5&sort=volume' \
-H 'X-API-Key: YOUR_TPM_API_KEY'Response
{
"markets": [
{
"event_ticker": "KXMAYORNYCPARTY-25",
"event_slug": "nyc-mayor-2025",
"title": "NYC Mayor Race 2025",
"status": "active",
"category": "politics",
"platform_url": "https://kalshi.com/markets/kxmayornycparty-25",
"volume_total": 18261146.0,
"volume_24h": 931138.0,
"open_interest": null,
"end_time": "2025-11-04T00:00:00",
"outcomes": [
{
"market_ticker": "KXMAYORNYCPARTY-25-D",
"title": "Will a Democrat win the NYC Mayor race?",
"probability": 0.89,
"best_bid": 0.88,
"best_ask": 0.9,
"spread": 0.02,
"volume": 18261146.0
}
]
}
],
"total": 1,
"limit": 5,
"offset": 0
}Query Parameters
| Name | Type | Required | Default | Example | Description |
|---|---|---|---|---|---|
| market_ticker | string | No | - | KXMAYORNYCPARTY-25-D | Filter by one or more Kalshi market tickers (outcome-level). Use commas for multiple. |
| event_ticker | string | No | - | KXMAYORNYCPARTY-25 | Filter by one or more Kalshi event tickers. |
| search | string | No | - | nyc mayor | Search event titles by keyword. |
| status | active | closed | resolved | all | No | active | active | Return markets by lifecycle status. |
| category | string | No | - | politics | Filter by TPM category slug. |
| min_volume | number | No | - | 100000 | Minimum total traded volume in dollars. |
| limit | integer | No | 25 | 5 | Number of markets to return. Maximum 100. |
| offset | integer | No | 0 | 0 | Offset for page-based pagination. |
| sort | volume | volume_24h | updated_at | end_time | created_at | No | volume | volume | Sort returned markets by activity or time. |
| order | asc | desc | No | desc | desc | Sort direction. |
Response Fields
| Field | Type | Example | Description |
|---|---|---|---|
| event_ticker | string | KXMAYORNYCPARTY-25 | Kalshi event ticker. |
| event_slug | string | nyc-mayor-2025 | TPM event slug. |
| title | string | NYC Mayor Race 2025 | Event title. |
| status | string | active | TPM status. |
| market_status | string | - | Raw platform status. |
| category | string | politics | Category slug. |
| platform_url | string | - | Link to Kalshi. |
| volume_total | number | null | 18261146.0 | Total volume. |
| volume_24h | number | null | 931138.0 | 24h volume. |
| open_interest | number | null | 5000000.0 | Total open interest. |
| outcomes | object[] | - | Binary markets. See Outcome Fields. |
Build with TPM
Get your API key
Start with Kalshi and Polymarket market data, then add unified spreads, signals, alerts, and watchlists as your workflow grows.