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
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}sdk
client.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}/marketssdk
client.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
/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.
takeint
SDK only. Caps total items returned across pages.
series = client.series.list(category="Crypto", take=2)
for s in series:
print(s.title, s.recurrence, s.market_count)jsonResponse
{
"data": [
{
"id": "5a84026e-3e23-59c5-...",
"platform": "polymarket",
"platform_series_id": "bitcoin-multi-strikes-hourly",
"title": "Bitcoin Multi Strikes Hourly",
"recurrence": "hourly",
"category": "Crypto",
"is_rolling": false,
"structured_type": "survival",
"market_count": 66718,
"first_market_close": 1773968400000,
"last_market_close": 1790787600000
},
{
"id": "3646ad0d-9de8-5d89-...",
"platform": "polymarket",
"platform_series_id": "eth-up-or-down-5m",
"title": "ETH Up or Down 5m",
"recurrence": "5m",
"category": "Crypto",
"is_rolling": true,
"structured_type": null,
"market_count": 57478,
"first_market_close": 1772241900000,
"last_market_close": 1790787300000
}
],
"meta": { "cursor": "...", "has_more": true }
}GET
/series/{series_id}sdk
client.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(
"btc-up-or-down-5m"
)
print(s.title, s.recurrence, s.market_count)jsonResponse
{
"id": "79e1c1db-2392-50bd-...",
"platform": "polymarket",
"platform_series_id": "btc-up-or-down-5m",
"title": "BTC Up or Down 5m",
"recurrence": "5m",
"category": "Crypto",
"is_rolling": true,
"structured_type": null,
"market_count": 57423,
"first_market_close": 1772241900000,
"last_market_close": 1790787300000
}GET
/series/{series_id}/marketssdk
client.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(
"btc-up-or-down-5m", status="resolved", sort="-volume", take=5,
)
for m in markets:
print(m.question, m.volume)jsonResponse
{
"data": [
{
"id": "3afcc04a-a6ae-5bf2-...",
"event_id": "9581e636-ce47-57f2-...",
"event_title": "Bitcoin Up or Down - July 21, 11:50AM-11:55AM ET",
"series_id": "79e1c1db-2392-50bd-...",
"series_title": "BTC Up or Down 5m",
"question": "Bitcoin Up or Down - July 21, 11:50AM-11:55AM ET",
"market_type": "binary",
"subtype": "up_or_down",
"status": "resolved",
"outcomes": [
{ "name": "Up", "last_price": 0.995 },
{ "name": "Down", "last_price": 0.005 }
],
"winning_outcome": "Up",
"volume": 126553.4727,
"close_time": 1784649300000
},
{
"id": "b9d34651-07cf-5cf8-...",
"event_id": "675baaaf-368b-5ed1-...",
"event_title": "Bitcoin Up or Down - July 21, 12:50PM-12:55PM ET",
"series_id": "79e1c1db-2392-50bd-...",
"series_title": "BTC Up or Down 5m",
"question": "Bitcoin Up or Down - July 21, 12:50PM-12:55PM ET",
"market_type": "binary",
"subtype": "up_or_down",
"status": "resolved",
"outcomes": [
{ "name": "Up", "last_price": 0.995 },
{ "name": "Down", "last_price": 0.005 }
],
"winning_outcome": "Up",
"volume": 84535.7694,
"close_time": 1784652900000
}
],
"meta": { "cursor": "...", "has_more": true }
}