List matched events
Matched events
List matched events
Page live or historical matched events, filtered by venue pair and fungibility.
GET
List matched events
Page through matched events. Each item is a full event, the same object as Get Oddpool ID by ticker.
To narrow to one venue pair, add
For incremental sync, store the largest
Query parameters
true returns only events with at least one venue market still trading. Recommended for live trading. Omit for the full historical corpus.true returns events that are fully fungible on at least one venue pair: both venues present, same settlement rules, outcome sets correspond, and every outcome’s two sides settle identically. false returns the negation. Narrow to a specific pair with venue_pair; permit specific edge-case differences with allow.Requires
fungible. Comma-separated divergence axes (timing, source, condition_scope) that should not disqualify a pair from being fungible. For example, allow=condition_scope counts cancellation/postponement-only differences as fungible. See Fungibility and cancellation risk.Match events where some venue pair carries this settlement class:
identical, settlement_window, or settlement_source. Narrow to one pair with venue_pair.Match events where some venue pair’s outcome lists line up this way:
identical, partial, or disjoint. Narrow to one pair with venue_pair.Optional. Narrows
fungible, basis_class, and outcome_universe to one venue pair, e.g. kalshi,polymarket_us (order-insensitive). Omit to match on any venue pair the event has. Tags: kalshi, polymarket, polymarket_us. See Supported venues.Category filter, sourced from Kalshi (e.g.
Sports). Free text.ISO 8601. Returns only events re-evaluated on or after this time. Pass your last sync time to fetch just what changed.
Items per page (1–2000).
The
next_cursor from the previous response.fungible, basis_class, and divergence_axes describe how two venues settle relative to each other. They’re defined in Response fields.Fungibility and cancellation risk
fungible=true is strict: a single outcome that settles differently on the two venues disqualifies the whole event, so it returns fewer events than you might expect.
The usual reason is condition_scope, the most common divergence axis, and usually just the venues’ standard cancellation or postponement policy. An outcome flagged with only condition_scope is the same outcome on both venues: it settles identically in the normal case and differs only on rare edge cases (a game is cancelled or postponed past a window, a tie), where one venue pays the last-traded price and the other resolves No or 50/50. It does not mean the two markets are different.
Which filter you want depends on whether you hold positions through settlement:
- You close before the event resolves. Cancellation risk never reaches you. Include these pairs and trade them:
?fungible=true&allow=condition_scope. - You hold to settlement. Either keep the strict
?fungible=truefor pairs with no edge-case risk at all, or addallow=condition_scopeto include the cancellation-policy pairs and read each one’sdivergence_reasonto size the risk before trading.
Request
venue_pair=kalshi,polymarket_us.
Response
A page of events. Each is the full event object. Every field is defined in Response fields.
Pass as
cursor to get the next page. null on the last page.Paging
Follownext_cursor until it’s null:
classified_at you’ve seen and pass it as classified_since next time.