Events & Series

An event groups related markets under a shared outcome. A series is a recurring template that produces new events on a schedule. Query both to navigate the market hierarchy above individual markets.

GET/events
sdkclient.events.list(**params)

List events with optional filtering by category, series, or time range.

Parameters
platformstr
Filter by source platform, e.g. "polymarket".
qstr
Full-text search on event title.
categorystr
Filter by event category.
series_idstr
Filter by parent series slug or UUID.
recurringbool
True = only recurring-series events, false = only standalone events.
end_afterint | str
Events ending after this time (ms epoch or ISO 8601).
start_beforeint | str
Events starting before this time (ms epoch or ISO 8601).
sortstr= "-created_at"
Sort field.
limitint= 50
Results per page.
cursorstr
Pagination cursor from previous response.
takeint
SDK only. Caps total items returned across pages.
events = client.events.list(recurring=True, take=2) for event in events: print(event.title, event.market_count)
jsonResponse
{ "data": [ { "id": "a924d6c4-9f75-569c-...", "platform": "polymarket", "title": "Bitcoin above ___ on March 14?", "category": "Crypto", "series_id": "a54be2bf-3198-5f30-...", "series_title": "BTC Multi Strikes Weekly", "series_recurrence": "daily", "market_count": 11, "end_date": 1773504000000 }, { "id": "031f37fb-4384-5ddc-...", "platform": "polymarket", "title": "Fed decision in April?", "category": "Economy", "series_id": "9b2c1d7e-4a05-5e8f-...", "series_title": "FOMC", "series_recurrence": "monthly", "market_count": 2, "end_date": 1777420800000 } ], "meta": { "cursor": "...", "has_more": true } }
GET/events/{event_id}
sdkclient.events.get(event_id)

Retrieve a single event by ID.

Response fields
idstr
Marketlens event UUID.
platformstr
Source platform, currently always "polymarket".
platform_event_idstr
Platform-native event identifier.
titlestr
The event title.
categorystr | None
Topic category, e.g. "Crypto", "Politics".
series_idstr | None
UUID of the parent series, null for standalone events.
series_titlestr | None
Title of the parent series.
series_recurrencestr | None
Recurrence interval of the parent series.
market_countint
Number of markets in this event.
tagslist | None
Platform tag objects (id, label, slug) as last seen on the platform, null if the event carries none.
start_dateint | None
When the event starts (ms epoch).
end_dateint | None
When the event ends (ms epoch).
created_atint
Record creation time (ms epoch).
updated_atint
Last metadata update (ms epoch).
event = client.events.get( "c2e9078c-c0be-5199-8c77-4f65948d15c2" ) print(event.title, event.market_count)
jsonResponse
{ "id": "a924d6c4-9f75-569c-...", "platform": "polymarket", "title": "Bitcoin above ___ on March 14?", "category": "Crypto", "series_id": "a54be2bf-3198-5f30-...", "series_title": "BTC Multi Strikes Weekly", "series_recurrence": "daily", "market_count": 11, "tags": [ { "id": "235", "label": "Bitcoin", "slug": "bitcoin" }, { "id": "102264", "label": "Weekly", "slug": "weekly" }, { "id": "102516", "label": "Multi Strikes", "slug": "multi-strikes" }, { "id": "21", "label": "Crypto", "slug": "crypto" }, { "id": "1312", "label": "Crypto Prices", "slug": "crypto-prices" }, { "id": "101757", "label": "Recurring", "slug": "recurring" } ], "end_date": 1773504000000 }
GET/events/{event_id}/markets
sdkclient.events.markets(event_id, **params)

List all markets belonging to an event.

Parameters
statusstr
Filter by market status: "active", "closed", "resolved", or "pending".
sortstr= "-volume"
Sort field. Prefix with - for descending.
limitint= 100
Results per page.
cursorstr
Pagination cursor from previous response.
takeint
SDK only. Caps total items returned across pages.
markets = client.events.markets( "c2e9078c-c0be-5199-8c77-4f65948d15c2", sort="close_time", take=2, ) for m in markets: print(m.question, m.strike)
jsonResponse
{ "data": [ { "id": "93cfbf00-1afc-537c-...", "event_id": "a924d6c4-9f75-569c-...", "series_id": "a54be2bf-3198-5f30-...", "series_title": "BTC Multi Strikes Weekly", "question": "Will the price of Bitcoin be above $68,000 on March 14?", "market_type": "binary", "status": "active", "outcomes": [ { "name": "Yes", "last_price": 0.9950 }, { "name": "No", "last_price": 0.0050 } ], "volume": 2241.2834, "strike": 68000, "close_time": 1773504000000 }, { "id": "8150b888-67f6-58ed-...", "event_id": "a924d6c4-9f75-569c-...", "series_id": "a54be2bf-3198-5f30-...", "series_title": "BTC Multi Strikes Weekly", "question": "Will the price of Bitcoin be above $70,000 on March 14?", "market_type": "binary", "status": "active", "outcomes": [ { "name": "Yes", "last_price": 0.9390 }, { "name": "No", "last_price": 0.0610 } ], "volume": 4637.1978, "strike": 70000, "close_time": 1773504000000 } ], "meta": { "cursor": "...", "has_more": true } }
GET/series
sdkclient.series.list(**params)

List all available series with filtering.

Parameters
categorystr
Filter by category.
recurrencestr
Filter by recurrence interval ("5m", "15m", "hourly", "daily", "weekly").
is_rollingbool
Only rolling (true) or structured (false).
sortstr= "-market_count"
Sort field.
limitint= 50
Results per page.
takeint
SDK only. Caps total items returned across pages.
series = client.series.list(category="Sports", take=2) for s in series: print(s.title, s.recurrence, s.market_count)
jsonResponse
{ "data": [ { "id": "090de525-7d56-5c75-...", "platform": "polymarket", "platform_series_id": "soccer-fifwc", "title": "FIFA World Cup", "recurrence": "daily", "category": "Sports", "is_rolling": false, "structured_type": null, "market_count": 2027, "first_market_close": 1781924400000, "last_market_close": 1782118800000 }, { "id": "ab80d611-dcc3-5c73-...", "platform": "polymarket", "platform_series_id": "mlb", "title": "MLB", "recurrence": "daily", "category": "Sports", "is_rolling": false, "structured_type": null, "market_count": 1298, "first_market_close": 1781922000000, "last_market_close": 1782112800000 } ], "meta": { "cursor": "...", "has_more": true } }
GET/series/{series_id}
sdkclient.series.get(series_id)

Get a single series. Both the SDK and the REST path accept the series slug or UUID.

s = client.series.get( "mlb" ) print(s.title, s.recurrence, s.market_count)
jsonResponse
{ "id": "ab80d611-dcc3-5c73-...", "platform": "polymarket", "platform_series_id": "mlb", "title": "MLB", "recurrence": "daily", "category": "Sports", "is_rolling": false, "structured_type": null, "market_count": 1298, "first_market_close": 1781922000000, "last_market_close": 1782112800000 }
GET/series/{series_id}/markets
sdkclient.series.markets(series_id, **params)

List all markets in a series, ordered chronologically. The path accepts the series slug or UUID.

Parameters
statusstr
Filter by market status ("active", "closed", "resolved").
sortstr= "close_time"
Sort field ("close_time", "volume").
limitint= 100
Results per page.
cursorstr
Pagination cursor from previous response.
takeint
SDK only. Caps total items returned across pages.
markets = client.series.markets( "mlb", status="resolved", sort="-volume", ) for m in markets: print(m.question, m.volume)
jsonResponse
{ "data": [ { "id": "78375028-6c81-5427-...", "event_id": "bdb00734-7007-5661-...", "event_title": "Cincinnati Reds vs. New York Yankees", "series_id": "ab80d611-dcc3-5c73-...", "series_title": "MLB", "question": "Cincinnati Reds vs. New York Yankees", "market_type": "binary", "subtype": "moneyline", "status": "resolved", "outcomes": [ { "name": "Cincinnati Reds", "last_price": 0.345 }, { "name": "New York Yankees", "last_price": 0.655 } ], "winning_outcome": "Cincinnati Reds", "volume": 1152412.8246, "close_time": 1782005700000 }, { "id": "d6335ee7-0bfb-5a28-...", "event_id": "fc4ab55b-2e74-5972-...", "event_title": "Boston Red Sox vs. Seattle Mariners", "series_id": "ab80d611-dcc3-5c73-...", "series_title": "MLB", "question": "Boston Red Sox vs. Seattle Mariners: O/U 6.5", "market_type": "binary", "subtype": "total", "status": "resolved", "outcomes": [ { "name": "Over", "last_price": 0.535 }, { "name": "Under", "last_price": 0.465 } ], "winning_outcome": "Under", "volume": 610906.8940, "close_time": 1782101400000 } ], "meta": { "cursor": "...", "has_more": true } }