Skip to main content
The full field dictionary for the event and entity responses. Each endpoint returns these objects; this page defines every field once.

Event

The object returned by Get Oddpool ID by ticker, Get a matched event, and each item in List matched events.
oddpool_id
string
The event id (OPI-XXXXXXXX).
title
string
Event display title.
subject_domain
string | null
Free-text category, sourced from Kalshi (e.g. Sports). Not a closed enum; may be null for uncategorized events.
classified_at
string | null
ISO 8601 timestamp of the last time the event’s canonical state was refreshed. Advances on new outcomes, settlement reclassification, and divergence re-validation, not on price or volume. Use it as the high-water mark for incremental sync via classified_since.
venue_listings
EventVenueListing[]
The event as each venue lists it, one entry per venue. See Event venue listing.
venue_pairs
EventVenuePair[]
Per-venue-pair settlement classification, one entry per pair of venues that both list the event. See Event venue pair.
outcomes
Outcome[]
Each named answer on the event. See Outcome.

Event venue listing

An entry in the event’s venue_listings. Names the parent event on one venue.
oddpool_id
string
Listing id (OPL:…).
venue
string
kalshi, polymarket, or polymarket_us.
venue_event_id
string
The venue’s identifier for the parent event.
venue_question
string | null
Raw question text from the venue at the time of mapping.

Event venue pair

An entry in the event’s venue_pairs. Fungibility is a property of a venue pair, not a scalar on the event, so an event on N venues has one entry per pair. Venues are precedence-ordered (kalshi < polymarket < polymarket_us).
venue_a
string
First venue in the pair.
venue_a_event_id
string
Venue A’s event id. Names the exact venue event the pair relates (needed when a canonical event spans several events on one venue; redundant in the common 1:1 case).
venue_b
string
Second venue in the pair.
venue_b_event_id
string
Venue B’s event id.
basis_class
string | null
The settlement-rule axis: whether the two venues agree on when, by what authority, and under what timing window the event resolves.
outcome_universe
string | null
The outcome-list correspondence axis: how much the two venues’ outcome sets line up.

Outcome

An entry in the event’s outcomes.
oddpool_id
string
Outcome id (OPO:…).
label
string
Display label: an entity name, bucket descriptor, Yes, etc.
outcome_kind
string
The structural type of the outcome.
outcome_params
object
Type-specific structured parameters. Numeric kinds carry outcome_params.bucket; will_happen_by_date carries outcome_params.deadline; binary and multi_class_named are {}. See outcome_params shapes. Additional non-load-bearing keys may appear alongside bucket / deadline (unmatched_in_counterparty, residual, audit keys). Rely on bucket / deadline and ignore unknown siblings.
entity
CanonicalEntity | null
The canonical entity this outcome refers to, or null for non-entity outcomes such as Tie or Other. See Entity.
venue_listings
OutcomeVenueListing[]
The tradeable side of this outcome on each venue, the ids you subscribe to. See Outcome venue listing.
venue_pairs
OutcomeVenuePair[]
Per-venue-pair fungibility for this outcome, one entry per pair of venues that both list it. See Outcome venue pair.

outcome_params shapes

Outcome venue listing

An entry in an outcome’s venue_listings, one venue’s tradeable side of the outcome.
oddpool_id
string
Listing id (OPL:…).
venue
string
kalshi, polymarket, or polymarket_us.
venue_market_id
string
The venue’s native identifier for this tradeable side, the value you trade on.
  • Kalshi: the market ticker.
  • Polymarket binary YES/NO: the conditionId. Trade via the CLOB using conditionId plus the side’s token below.
  • Polymarket atomic-binary multi-side: conditionId#<index>. Split on # to recover the native conditionId; the side’s CLOB token is below.
  • Polymarket US: <marketSlug>#<YES|NO>. Split on # to recover the order-API marketSlug and the side. Polymarket US has no CLOB tokens; orders reference the marketSlug and side directly.
venue_event_id
string | null
The venue’s identifier for the parent event. Kalshi: event ticker. Polymarket and Polymarket US: the event slug (the human-readable id, not the numeric event id).
venue_yes_token
string | null
Polymarket CLOB token id for the YES side. null on Kalshi and Polymarket US.
venue_no_token
string | null
Polymarket CLOB token id for the NO side. null on Kalshi and Polymarket US.
venue_question
string | null
Raw question text from the venue at the time of mapping.

Outcome venue pair

An entry in an outcome’s venue_pairs, showing whether the outcome’s two venue sides are one tradeable instrument.
venue_a
string
First venue in the pair.
venue_b
string
Second venue in the pair.
fungible
boolean
true iff the event leg’s basis_class == identical and divergence_axes == []. When true, the two listings are one tradeable instrument (same payoff, same nominal value, same authority, same timing) and can be treated as one for quoting, hedging, and risk. The one-glance answer.
divergence_axes
string[]
Subset of {timing, source, condition_scope}: how the two listings settle differently when they are the same nominal outcome. Empty means no axis-level divergence on this leg.
For how condition_scope affects the fungible filter, and when to treat it as tradeable with allow, see Fungibility and cancellation risk.
divergence_reason
string | null
One-sentence explanation of the specific case, populated when divergence_axes is non-empty.

Entity

The object returned by the entity endpoints, and nested under each outcome.entity.
oddpool_id
string
Entity id (OPE:{KIND}:{slug}).
kind
string
One of person, team, political_party, cultural_work, geographic_region, organization, event_occurrence.
canonical_name
string
The canonical display name.
aliases
string[]
Alternate names observed on venues and curated alternates.
wikidata_qid
string | null
Wikidata Q-ID, a stable cross-reference to FEC, bioguide, LEI, sports-reference, MusicBrainz, and other identifier systems. null for auto-minted entities.
metadata
object
Kind-specific structured fields. Shape varies by kind. For example, Person: country, party_qid, person_kind; Team: league, sport, city, parent_qid; Organization: country, tickers. Values that reference other entities are Wikidata Q-IDs (country: "Q30"). Treat as open JSON: use the keys you recognize, ignore the rest.
provenance
string
wikidata when the record is sourced from Wikidata; llm_auto when auto-minted from venue text because no Wikidata match was available.
source_synced_at
string | null
ISO 8601 timestamp of the most recent Wikidata sync, where applicable.