Data
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
/eventssdk
client.events.list(**params)List events with optional filtering by category, series, or time range.
Parameters
qstr
Full-text search on event title.
categorystr
Filter by event category.
series_idstr
Filter by parent series.
recurringbool
Only events from recurring series.
end_afterint
Events ending after this timestamp (ms).
sortstr= "-created_at"
Sort field.
limitint= 50
Results per page.
cursorstr
Pagination cursor from previous response.
events = client.events.list(recurring=True)
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": "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": "fomc",
"series_recurrence": "monthly",
"market_count": 2,
"end_date": 1777420800000
}
],
"meta": { "cursor": "...", "has_more": true }
}GET
/events/{event_id}sdk
client.events.get(event_id)Retrieve a single event by ID.
event = client.events.get("252326")
print(event.title, event.market_count)jsonResponse
{
"id": "a924d6c4-9f75-569c-...",
"platform": "polymarket",
"title": "Bitcoin above ___ on March 14?",
"category": "Crypto",
"series_id": "btc-multi-strikes-weekly",
"series_recurrence": "daily",
"market_count": 11,
"end_date": 1773504000000
}GET
/events/{event_id}/marketssdk
client.events.markets(event_id, **params)List all markets belonging to an event.
Parameters
statusstr
Filter by market status ("active", "closed", "resolved").
sortstr= "close_time"
Sort field.
limitint= 50
Results per page.
cursorstr
Pagination cursor from previous response.
markets = client.events.markets(
"252326", status="active", sort="close_time"
)
for m in markets:
print(m.question, m.outcome)jsonResponse
{
"data": [
{
"id": "93cfbf00-1afc-537c-...",
"question": "Will the price of Bitcoin be above $68,000 on March 14?",
"status": "active",
"outcomes": [
{ "name": "Yes", "last_price": "0.9950" },
{ "name": "No", "last_price": "0.0050" }
],
"volume": "2241.2834",
"strike": "68000"
},
{
"id": "8150b888-67f6-58ed-...",
"question": "Will the price of Bitcoin be above $70,000 on March 14?",
"status": "active",
"outcomes": [
{ "name": "Yes", "last_price": "0.9390" },
{ "name": "No", "last_price": "0.0610" }
],
"volume": "4637.1978",
"strike": "70000"
},
{
"id": "9e8369e6-7bda-576a-...",
"question": "Will the price of Bitcoin be above $72,000 on March 14?",
"status": "active",
"outcomes": [
{ "name": "Yes", "last_price": "0.0170" },
{ "name": "No", "last_price": "0.9830" }
],
"volume": "3857.2195",
"strike": "72000"
}
],
"meta": { "cursor": "...", "has_more": true }
}GET
/seriessdk
client.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.
series = client.series.list()
for s in series:
print(s.title, s.recurrence, s.market_count)jsonResponse
{
"data": [
{
"id": "btc-up-or-down-5m",
"title": "BTC Up or Down 5m",
"recurrence": "5m",
"category": "Crypto",
"is_rolling": true,
"structured_type": null,
"market_count": 4169
},
{
"id": "btc-multi-strikes-weekly",
"title": "BTC Multi Strikes Weekly",
"recurrence": "daily",
"category": "Crypto",
"is_rolling": false,
"structured_type": "survival",
"market_count": 162
},
{
"id": "tesla-hit-price-monthly",
"title": "Tesla Hit Price Monthly",
"recurrence": "monthly",
"category": "Equities",
"is_rolling": false,
"structured_type": "barrier",
"market_count": 9
}
],
"meta": { "cursor": "...", "has_more": true }
}GET
/series/{series_id}sdk
client.series.get(series_id)Get a single series by slug or UUID.
s = client.series.get("btc-multi-strikes-weekly")
print(s.title, s.structured_type, s.market_count)jsonResponse
{
"id": "a54be2bf-3198-5f30-...",
"platform": "polymarket",
"platform_series_id": "btc-multi-strikes-weekly",
"title": "BTC Multi Strikes Weekly",
"recurrence": "daily",
"category": "Crypto",
"is_rolling": false,
"structured_type": "survival",
"market_count": 162
}GET
/series/{series_id}/marketssdk
client.series.markets(series_id, **params)List all markets in a series, ordered chronologically.
Parameters
statusstr
Filter by market status ("active", "closed", "resolved").
sortstr= "close_time"
Sort field ("close_time", "volume").
limitint= 50
Results per page.
cursorstr
Pagination cursor from previous response.
# Rolling — iterate market instances
for market in client.series.walk(
"sol-up-or-down-5m"
):
print(market.question)
# Structured — iterate events
for event in client.series.events(
"btc-multi-strikes-weekly"
):
print(event.title, event.market_count)jsonResponse
{
"data": [{
"id": "e7f2a1b4-...",
"question": "Bitcoin Up or Down — Mar 14, 8:30–8:35AM ET",
"status": "resolved",
"outcomes": [
{ "name": "Up", "last_price": "1.0000" },
{ "name": "Down", "last_price": "0.0000" }
],
"winning_outcome": "Up",
"volume": "41200.5000",
"close_time": 1741955400000,
"resolved_at": 1741955400000
}],
"meta": { "cursor": "...", "has_more": true }
}