Skip to main content
A single game produces many markets: a game winner, a spread, a total, both-teams-to-score, first-half variants, player props, and more. This page covers how those markets are organized, how to pull the full set for one game, and how to display a market’s line correctly.

How a game’s markets are structured

Each market type is its own series. A game winner market lives under one series, a spread under another, a total under another. Every series produces one event per game, and each event holds the YES/NO markets for that market type. All events for the same game share a ticker stem of the form <date><home><away>, with the home team first. For Mexico vs South Africa on June 11, 2026, where Mexico is the home side, the stem is 26JUN11MEXRSA:
SeriesEventMarket type
KXWCGAMEKXWCGAME-26JUN11MEXRSAGame winner
KXWCSPREADKXWCSPREAD-26JUN11MEXRSASpread
KXWCTOTALKXWCTOTAL-26JUN11MEXRSATotal
KXWCBTTSKXWCBTTS-26JUN11MEXRSABoth teams to score
KXWC1HKXWC1H-26JUN11MEXRSAFirst-half winner
Kalshi groups a game’s events into a Milestone, where primary_event_tickers is generally the game winner, spread, and total, and related_event_tickers is a broader set. DFlow’s Metadata API surfaces a milestoneId (on live_events) but not those ticker arrays, so group a game’s markets by the shared ticker stem. To read the arrays directly, take the milestoneId to Kalshi’s milestones endpoint.

Find every market for a game

Search by team names and read back the events across every series:
curl "https://dev-prediction-markets-api.dflow.net/api/v1/search?q=Mexico%20South%20Africa"
The response lists one event per market type, each carrying the 26JUN11MEXRSA stem:
KXWCGAME-26JUN11MEXRSA       Mexico vs South Africa
KXWCTOTAL-26JUN11MEXRSA      Mexico vs South Africa: Total Goals
KXWCSPREAD-26JUN11MEXRSA     Mexico vs South Africa: Spread
KXWCBTTS-26JUN11MEXRSA       Mexico vs South Africa: BTTS
KXWC1H-26JUN11MEXRSA         Mexico vs South Africa: First Half Winner
...
Group on the stem to assemble the game’s full market set. If you already know the series you want, query them directly with seriesTickers instead. See Find markets for the query mechanics.

Read a market’s line and outcome

Read the line and outcome from the market’s text fields, not the ticker suffix. For the spread market KXWCSPREAD-26JUN11MEXRSA-MEX3:
  • title: “Mexico wins by over 2.5 goals?”
  • yesSubTitle: “Mexico wins by over 2.5 goals”
  • rulesPrimary: the full resolution rule
The trailing MEX3 encodes the team and line, but the suffix convention changes over time, so it is not safe to parse. Kalshi recommends reading these text fields from the markets or milestone response instead. See the data model for the full market field reference.

Live scores during a game

For in-game state, call GET /api/v1/live_data/by-event/{event_ticker}. It returns the game’s live data: score, match clock, and significant events. Per-sport scoring shapes vary. See Live Data Response Details for the fields each sport populates.

World Cup 2026

World Cup markets are live now. Each game’s markets share the <date><home><away> stem (home team first) under series such as:
SeriesMarket type
KXWCGAMEGame winner (90 minutes)
KXWCSPREADSpread
KXWCTOTALTotal goals
KXWCBTTSBoth teams to score
KXWC1HFirst-half winner
KXWC1HSPREADFirst-half spread
KXWC1HTOTALFirst-half total
KXWC1HBTTSFirst-half both teams to score
Player props, such as goalscorer, assists, and score or assist, are their own series. Each game’s props have their own event and market tickers within those series. Spreads and totals use the convention launched with the World Cup: the suffix number is the result needed. For KXWCSPREAD-26JUN11MEXRSA-MEX3, the 3 maps to Mexico winning by 3 or more goals, shown as “Mexico wins by over 2.5 goals” in title and yesSubTitle.