Skip to main content
GET
Search markets
Find markets by text query, by series_id, or both. Use series_id from Search series to scope results to one product line.

Request

Query parameters

q
string
Substring on question, title, subtitle, description, market id, slug, or exact interval_code. Required unless series_id is set.
series_id
string
Filter to one series. Required unless q is set.
exchange
string
kalshi or polymarket.
category
string
Exact category match.
status
string
default:"active"
active or closed.
min_volume
number
Minimum market volume.
min_liquidity
number
Minimum market liquidity.
discovered_after
string
ISO 8601 lower bound on discovered_at.
settled_after
string
ISO 8601; pair with status=closed for backtests.
settled_before
string
ISO 8601 upper bound on settled_at.
sort_by
string
relevance, newest, volume, or liquidity. Defaults to relevance when q is set, otherwise newest.
limit
integer
default:"20"
Number of results (1–100).
offset
integer
default:"0"
Pagination offset.

Response

Returns a JSON array of market objects.
market_id
string
Source market ticker / ID — use with historical endpoints.
exchange
string
kalshi or polymarket.
series_id
string
Parent series source ID.
title
string
Formatted market headline (Kalshi); may be null for Polymarket.
subtitle
string
Compact disambiguator (strike or close time).
question
string
Market question text.
status
string
active or closed.
volume
number
Traded volume.
liquidity
number
Liquidity.
last_yes_price
string
Last YES price as a four-decimal string (e.g. "0.9990").
last_no_price
string
Last NO price as a four-decimal string.
event_id
string
Parent event source ID.
settled_at
string
Settlement time when closed, else null.

Examples

Active markets in a series

Settled window for backtests