Prediction Markets
Integrate non-sports Prediction Markets through your existing TRADE connection
Prediction Markets are available through TRADE using your existing RabbitMQ connection. No separate feed, queue, or endpoint is required.
Content is sourced from Kalshi and covers a range of non-sports categories. Prediction Market fixtures follow the Outright League message structure — the prediction category acts as the competition container, and each prediction question is represented as a fixture.
Provider
Providers
Kalshi, Polymarket
Status
Live
Delivery
TRADE RabbitMQ
Message family
Outright League
Categories
The following prediction categories are available for subscription:
Politics
Economics
Crypto
Companies
Financials
Science & Technology
Climate & Weather
Health
Entertainment
Social
Mentions
Message Mapping
Prediction Markets use the Outright League message family. The mapping to standard TRADE concepts is as follows:
Sport
Predictions
Competition / League
Prediction category
Fixture
One prediction question
FixtureName
Full prediction question text
Participants
Not used
Livescore
Not applicable
Market Types
Two market types are supported for Prediction Markets.
Predictions Yes/No (Market ID 3455)
A single Yes/No pair against the fixture question. Used when the fixture resolves to one binary outcome.
Market ID
3455
Bets
Yes / No
Line
Not used
Example: FixtureName: "Will the Fed raise interest rates before June 2025?" → Bets: Yes | No
Multiple Selection Predictions Yes/No (Market ID 3456)
One Yes/No pair per selectable option. Used when the fixture contains multiple possible outcomes.
Market ID
3456
Bets
Yes / No per line
Line
One selectable option per line
ParticipantId
Selection identifier where applicable
Example: FixtureName: "Who will be the next Fed Chair?"
Donald Trump
Yes
No
Jerome Powell
Yes
No
Prediction Data Fields
Kalshi prediction markets carry additional metadata across both the fixture and market messages. Use these fields to display resolution context and trading activity alongside your odds.
Fixture-level — Rules
The ExtraData array on the fixture and on each entry in Participants includes a Rules key. This is the human-readable resolution criteria defined by Kalshi — the exact conditions under which the market settles Yes or No (or a specific bet wins). Rules is delivered once at fixture level and is not repeated in market update messages.
Rules
string
Resolution criteria for this market or participant, as defined by Kalshi
Market-level — MarketPredictionData
Carried under PredictionData on each market in the Outright League Market message. Use Volume to show overall market activity.
Volume
double
OPTIONAL: Aggregate trading volume for this market
Bet-level — BetPredictionData
Carried under PredictionData on each bet. Use Volume to indicate bet-level trading depth. Use StartDate and EndDate to control when a bet is available for display.
Volume
double
OPTIONAL: Total contracts traded for this bet
Liquidity
double
OPTIONAL: Available liquidity for this bet. Provided by Polymarket; null for Kalshi
StartDate
DateTime
The date from which this bet is open for trading
EndDate
DateTime
The date after which this bet closes
Message Flow
Subscribe through the existing TRADE integration flow.
TRADE distributes the Outright League Fixture message for each prediction question.
TRADE distributes Outright League Market updates as prices change.
TRADE distributes the Outright League Settlement message when the market is resolved.
Odds
Prediction Market odds are normalized from provider stake values:
Odds = 1 / Stake (cents)
Odds are delivered already normalized — no additional conversion is required.
Settlement
While underlying exchanges utilize different resolution mechanisms, LSports abstracts these into a unified settlement logic. Drive settlement logic from the Outright League Settlement message.
Finalization — Settlement is only triggered when the provider reaches a finalized, undisputed state. Intermediate or contested statuses are delivered as Not Settled.
Winning/Losing — The definitive outcome from the provider dictates the winning side. These are translated into standard LSports settlement values: Winner (ID: 2) or Loser (ID: 1) alongside
Bet Status = 3.Multi-selection events — For mutually exclusive markets, exactly one
Yesline wins. All other lines in the market resolve asYes = Loser (1)andNo = Winner (2).Split Resolutions — In rare scenarios where an exchange settles an outcome at 50/50, LSports delivers the settlement as
HalfWon/HalfLost.
Rendering
Market ID 3455 — Render a single Yes / No pair against the fixture question.
Market ID 3456 — Render one Yes / No pair per selection line. Use Line as the display label and ParticipantId as the logical identifier where provided.
Integration Notes
No new connection required — Prediction Markets are delivered through the existing TRADE RabbitMQ infrastructure. No new queue, vhost, or endpoint is needed.
Livescore does not apply — Prediction Markets have no live score phase. Do not expect in-play score progression or scoreboard-driven state changes.
Reconnection — After reconnecting, request a snapshot before resuming normal consumption.
Start date fix — Fixtures now use the real start date as defined by the provider. Previously, start dates defaulted to 2040. This change is not backward compatible — auto settlement will not apply to existing fixtures that were created with the 2040 placeholder date.
Related Pages
Last updated
Was this helpful?