Data
Markets
Discover, filter, and retrieve prediction market metadata.
GET
/marketssdk
client.markets.list(**params)Returns a paginated list of markets matching the given filters.
Parameters
platformstr
Filter by source platform, e.g. "polymarket".
statusstr
Filter by market status: "active", "closed", "resolved", or "pending".
qstr
Full-text search on market question.
event_qstr
Full-text search on parent event title.
event_idstr
Filter by parent event UUID.
series_idstr
Filter by parent series slug or UUID.
subtypestr
Filter to one bet type within a series (e.g. "moneyline", "total", "spread").
categorystr
Filter by event category.
condition_idstr | list
Filter by Polymarket condition ID(s). Up to 50.
recurringbool
True = only recurring-series markets, false = only standalone markets.
min_volumefloat
Minimum cumulative volume in USD.
min_liquidityfloat
Minimum current liquidity in USD.
open_afterint | str
Markets that opened at or after this time (ms epoch or ISO 8601).
open_beforeint | str
Markets that opened at or before this time (ms epoch or ISO 8601).
close_afterint | str
Markets closing at or after this time (ms epoch or ISO 8601).
close_beforeint | str
Markets closing at or before this time (ms epoch or ISO 8601).
resolved_afterint | str
Markets resolved at or after this time (ms epoch or ISO 8601).
resolved_beforeint | str
Markets resolved at or before this time (ms epoch or ISO 8601).
sortstr= "-created_at"
Sort field. Prefix with - for descending.
limitint= 500
Results per page.
cursorstr
Pagination cursor from previous response.
takeint
SDK only. Caps total items returned across pages.
Info
The SDK iterator auto-paginates. Use
.to_list() to collect all results or .to_dataframe() for a pandas DataFrame.markets = client.markets.list(
event_q="United States vs. Australia",
sort="-volume", take=2,
)
for market in markets:
print(market.question, market.volume)jsonResponse
{
"data": [
{
"id": "2535afbf-082c-5117-...",
"question": "Will United States win on 2026-06-19?",
"status": "resolved",
"outcomes": [
{ "name": "Yes", "last_price": 0.5950 },
{ "name": "No", "last_price": 0.4050 }
],
"volume": 5863189.6773,
"series_id": "soccer-fifwc"
},
{
"id": "dfc3baf2-36c9-5182-...",
"question": "Will Australia win on 2026-06-19?",
"status": "resolved",
"outcomes": [
{ "name": "Yes", "last_price": 0.1750 },
{ "name": "No", "last_price": 0.8250 }
],
"volume": 3130253.4401,
"series_id": "soccer-fifwc"
}
],
"meta": { "cursor": "...", "has_more": true }
}GET
/markets/{market_id}sdk
client.markets.get(market_id)Retrieve a single market by UUID, or by its Polymarket condition id (0x followed by 64 hex characters). UUIDs are Marketlens identifiers; Polymarket's own identifiers are condition ids and series slugs.
Response fields
idstr
Marketlens market UUID.
platformstr
Source platform, currently always "polymarket".
platform_market_idstr
Polymarket condition ID (0x followed by 64 hex characters).
event_idstr
UUID of the parent event.
event_titlestr | None
Title of the parent event.
categorystr | None
Topic category, e.g. "Crypto", "Sports".
series_idstr | None
UUID of the parent series, null for standalone markets.
series_titlestr | None
Title of the parent series.
series_recurrencestr | None
Recurrence interval: "5m", "15m", "hourly", "daily", "weekly", or "monthly".
questionstr
The market question.
market_typestr
"binary" (two outcomes) or "scalar".
statusstr
"active", "closed", "resolved", or "pending".
outcomeslist
Outcome objects with name, index, platform_token_id, and last_price.
winning_outcomestr | None
Name of the winning outcome after resolution.
winning_outcome_indexint | None
Index of the winning outcome after resolution.
tick_sizefloat
Minimum price increment.
volumefloat | None
Cumulative traded volume in USD.
liquidityfloat | None
Current resting liquidity in USD.
open_timeint | None
When trading opened (ms epoch).
close_timeint | None
When trading closes (ms epoch).
resolved_atint | None
When the market resolved (ms epoch).
platform_resolved_atint | None
When the platform recorded resolution (ms epoch).
created_atint
Record creation time (ms epoch).
updated_atint
Last metadata update (ms epoch).
strikefloat | None
Strike price for structured products.
strike_upperfloat | None
Upper strike for range markets.
strike_directionstr | None
Strike direction: "above", "below", "between", "reach", or "dip".
subtypestr | None
Backtest cohort key, e.g. "up_or_down", "barrier", "moneyline", "total", or "rest" if unclassified.
underlyingstr | None
Underlying asset symbol derived from the question, e.g. "BTC", "GC".
collection_tierstr | None
"streamed" = full snapshot and delta chain, "polled" = periodic snapshots without deltas, null = collected before tiers existed (streamed).
game_start_timeint | None
When the real-world game starts (ms epoch), null outside sports and esports.
sports_market_typestr | None
Platform bet-type slug, e.g. "moneyline", "spreads", "totals" (70+ values), null outside sports and esports.
linefloat | None
Spread or total line for sports bets (e.g. -6.5), null otherwise.
neg_riskbool | None
True when the market is one leg of a negative-risk group (mutually exclusive outcomes of one event).
market = client.markets.get(
"4ee145e2-3fee-5b15-bb95-56a33a292945"
)
print(market.question, market.status, market.underlying)jsonResponse
{
"id": "5916b8f2-91d6-5438-...",
"platform": "polymarket",
"question": "Will Gold (GC) hit (HIGH) $5,500 by end of June?",
"market_type": "binary",
"status": "active",
"outcomes": [
{ "name": "Yes", "index": 0, "last_price": 0.7200 },
{ "name": "No", "index": 1, "last_price": 0.2800 }
],
"volume": 287063.4080,
"liquidity": 24500.0000,
"open_time": 1766791758794,
"close_time": 1782840600000,
"event_id": "125865",
"series_id": "d3f8a1c4-7e52-5b6b-...",
"series_title": "What will Gold (GC) hit",
"series_recurrence": "monthly",
"subtype": "barrier",
"underlying": "GC",
"collection_tier": "streamed",
"game_start_time": null,
"sports_market_type": null,
"line": null,
"neg_risk": false
}