Markets

Discover, filter, and retrieve prediction market metadata.

GET/markets
sdkclient.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}
sdkclient.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 }