Skip to main content
GET
Get Kalshi Markets
List markets on Kalshi, the CFTC-regulated US prediction exchange, with live bid/ask quotes in dollars. Use this when you need odds from a regulated venue, or to cross-check a Polymarket price against a second market; fetch specific markets with tickers (comma-separated), scope to a group with event_ticker / series_ticker, or narrow with status, search, and the created / close / settled timestamp ranges. Returns markets[] with title, status, yes_bid_dollars / yes_ask_dollars, last_price_dollars, volume_fp, open_interest_fp, and rules_primary (the settlement criteria), plus a cursor to page with. For executed fills rather than quotes, use get_kalshi_trades. For the crypto-native venue carrying similar questions, use get_polymarket_markets.
First time? Point any MCP client at https://mcp.aisa.one/mcp — Claude Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client opens a browser, you click Allow once, and there is no key to paste. Your agent then reaches every endpoint through five tools: search, list_categories and get_details are free, use and batch_use are billed per call. Setup per client is in Connect via MCP; the live tool list and what each call costs are on aisa.one/mcp.
Set this endpoint up in your agent →

Cost and request rules

Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.
  • Default request reference estimate (USD): 0.02
  • Cost contract: fixed_success
  • Settlement evidence source: request_snapshot

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

cursor
string

Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.

event_ticker
string

Event ticker to filter by. Only a single event ticker is supported.

limit
integer<int64>
default:100

Number of results per page. Defaults to 100. Maximum value is 1000.

Required range: 0 <= x <= 1000
max_close_ts
integer<int64>

Filter items that close before this Unix timestamp

max_created_ts
integer<int64>

Filter items that created before this Unix timestamp

max_settled_ts
integer<int64>

Filter items that settled before this Unix timestamp

max_updated_ts
integer<int64>

Return markets with metadata updated at or before this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with min_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters.

min_close_ts
integer<int64>

Filter items that close after this Unix timestamp

min_created_ts
integer<int64>

Filter items that created after this Unix timestamp

min_settled_ts
integer<int64>

Filter items that settled after this Unix timestamp

min_updated_ts
integer<int64>

Return markets with metadata updated later than this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with max_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters.

mve_filter
enum<string>

Filter by multivariate events (combos). 'only' returns only multivariate events, 'exclude' excludes multivariate events.

Available options:
only,
exclude
series_ticker
string

Filter by series ticker

status
enum<string>

Filter by market status. Leave empty to return markets with any status.

Available options:
unopened,
open,
paused,
closed,
settled
tickers
string

Filter by specific market tickers. Comma-separated list of market tickers to retrieve.

Response

Markets retrieved successfully

markets
object[]
required
cursor
string
required