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/api/v2/kalshi/marketsTry It

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

NameTypeRequiredDefaultExampleDescription
market_tickerstringNo-KXMAYORNYCPARTY-25-DFilter by one or more Kalshi market tickers (outcome-level). Use commas for multiple.
event_tickerstringNo-KXMAYORNYCPARTY-25Filter by one or more Kalshi event tickers.
searchstringNo-nyc mayorSearch event titles by keyword.
statusactive | closed | resolved | allNoactiveactiveReturn markets by lifecycle status.
categorystringNo-politicsFilter by TPM category slug.
min_volumenumberNo-100000Minimum total traded volume in dollars.
limitintegerNo255Number of markets to return. Maximum 100.
offsetintegerNo00Offset for page-based pagination.
sortvolume | volume_24h | updated_at | end_time | created_atNovolumevolumeSort returned markets by activity or time.
orderasc | descNodescdescSort direction.

Response Fields

FieldTypeExampleDescription
event_tickerstringKXMAYORNYCPARTY-25Kalshi event ticker.
event_slugstringnyc-mayor-2025TPM event slug.
titlestringNYC Mayor Race 2025Event title.
statusstringactiveTPM status.
market_statusstring-Raw platform status.
categorystringpoliticsCategory slug.
platform_urlstring-Link to Kalshi.
volume_totalnumber | null18261146.0Total volume.
volume_24hnumber | null931138.024h volume.
open_interestnumber | null5000000.0Total open interest.
outcomesobject[]-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.