Get events (keyset)
Get active, non-archived events with keyset pagination.
Request
- Base URL: https://gamma-api.polymarket.com (the document declares no server; this is the origin it was published from)
- URL: https://gamma-api.polymarket.com/events/keyset
- Auth: none declared
Query parameters
Event IDs to return
Event slugs to return
Filter by closed flag (true/false)
Filter by live flag (true/false)
Minimum liquidity
Maximum liquidity
Minimum volume
Maximum volume
Minimum start date (RFC3339 or YYYY-MM-DD)
Maximum start date (RFC3339 or YYYY-MM-DD)
Minimum end date (RFC3339 or YYYY-MM-DD)
Maximum end date (RFC3339 or YYYY-MM-DD)
Tag IDs to filter by
Include events from related tags (true/false)
Tag match mode
Filter by tag slug
Filter by featured flag (true/false)
Filter by CYOM flag (true/false)
Series IDs to filter by
Filter by series slug
Game IDs to filter by
US event IDs to filter by
Filter by event date (RFC3339 or YYYY-MM-DD)
Filter by event week
Minimum start time (RFC3339)
Maximum start time (RFC3339)
Tag IDs to exclude
Order by featured when true (true/false)
Recurrence filter
Filter by creator
Parent event IDs to filter by
Include the children of the matched parent_event_id or slug (true/false)
Case-insensitive title search
Include best lines (true/false)
Include each event's markets array (true/false, default true). false skips loading markets, so the response carries the event rows without a markets key
Locale code
Filter by external partner slug
Filter by event metadata key
Filter by event metadata value
Return only events flagged for context regeneration when true; false has no effect
Return only events with no generated context when true; false has no effect
Filter by combo status (pending/enabled/disabled). Returns events with at least one market in that status, counting markets owned by their child events, and narrows each event's markets array to that status.
Protocol versions to return (v1 or v2). Repeat the parameter for several. Omitted means the server default (v1 while polymarket-v2 is in its builder integration period)
Max results returned
Number of results to skip
Comma-separated field names to sort by
Sort ascending when true (default true)
Opaque keyset pagination cursor from a previous response
Market fields to load. full preserves the default response. status keeps every visible market in the same order, with only id, conditionId, marketMakerAddress, feeType, sportsMarketType, closed and gameStartTime; skips market enrichment and translation. Event fields, filters and ordering are unchanged. status allows up to 500 candidates and returns event_cursors for resuming after each row; full keeps its 100-row cap. card keeps all visible markets with card identity, quotes, lifecycle and selection fields, plus rewards and fee enrichment and market translations; its cap is 100 and it omits event_cursors. Requires include_markets=true (the default).
Response
The market_projection query parameter selects the response contract; no response header is needed. Omitted or full preserves the existing Market response and 100-event limit. With status, each market selects only id, conditionId, marketMakerAddress, feeType, sportsMarketType, closed and gameStartTime. The first four properties are required; feeType remains nullable. The other three properties are optional and omitted when unset. Every unselected Market property is optional in the schema. Consumers must tolerate additional optional properties. Status preserves visible markets and their order, skips market enrichment and translation, and accepts up to 500 events. Its event_cursors contains one signed continuation per event, in event order, and is omitted for an empty page. Each row cursor can resume a full, status or card read. Event fields, filters and ordering are unchanged. Card preserves all visible market rows and their order, loading only identity, quote, lifecycle and card-selection columns. It retains market translations, clobRewards and feeSchedule enrichment, keeps the 100-event cap and omits event_cursors. Card fields: id, conditionId, marketMakerAddress, feeType, feesEnabled, question, slug, image, icon, groupItemTitle, outcomes, outcomePrices, clobTokenIds, positionIds, comboStatus, sportsMarketType, line, gameStartTime, active, closed, archived, acceptingOrders, umaResolutionStatus, bestBid, bestAsk, spread, orderPriceMinTickSize, lastTradePrice, oneDayPriceChange, liquidity, volume, rewardsMinSize, rewardsMaxSpread, holdingRewardsEnabled, clobRewards and feeSchedule.
Example response
{
"$schema": "https://example.com/schemas/EventsKeysetListResponse.json",
"events": [
{
"$schema": "https://example.com/schemas/Event.json",
"eventCreators": [
{
"$schema": "https://example.com/schemas/EventCreator.json"
}
],
"externalPartners": [
{
"$schema": "https://example.com/schemas/EventExternalPartnerMapping.json",
"partner": {
"$schema": "https://example.com/schemas/Partner.json"
}
}
],
"markets": [
{
"$schema": "https://example.com/schemas/Market.json",
"cryptoMarketConfig": {
"$schema": "https://example.com/schemas/CryptoMarketConfig.json"
},
"tags": [
{
"$schema": "https://example.com/schemas/Tag.json"
}
]
}
],
"series": [
{
"$schema": "https://example.com/schemas/Series.json"
}
],
"sport": {
"$schema": "https://example.com/schemas/SportsMetadata.json",
"externalPartners": [
{
"$schema": "https://example.com/schemas/SportExternalPartnerMapping.json",
"partner": {
"$schema": "https://example.com/schemas/Partner.json"
}
}
]
},
"tags": [
{
"$schema": "https://example.com/schemas/Tag.json"
}
],
"teams": [
{
"$schema": "https://example.com/schemas/Team.json",
"externalPartners": [
{
"$schema": "https://example.com/schemas/TeamExternalPartnerMapping.json",
"partner": {
"$schema": "https://example.com/schemas/Partner.json"
}
}
]
}
]
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.