Documentation Index
Fetch the complete documentation index at: https://docs.polymarket.us/llms.txt
Use this file to discover all available pages before exploring further.
This page documents the strongly-typed fields on the instrument that should be used to identify a sports market. Do not parse the instrument symbol or slug — symbol formats are not part of the public contract and may change. Always identify markets using the fields below.
Section 1: Common Identifying Fields
The following fields appear on every sports instrument. Together they uniquely describe the sport, league, event, period, market type, and handicap of a contract.
Field Reference
| Field | Location | Type | Description |
|---|
event_start_time | metadata | Timestamp (UTC) | Scheduled start time of the underlying event. Updated in place when a game is rescheduled. |
event_subcategory | metadata | Enum | The sport. Values: BASKETBALL, FOOTBALL, BASEBALL, SOCCER, etc. |
outcome_type | metadata | Enum | The market structure. See the enum list below. |
market_sport_type | metadata | Enum | The fully-qualified market type, including sport, participant scope, and game period. See the enum list below. |
outcome_strike | metadata | String (numeric) | The handicap or threshold for the market. Unsigned magnitude — the side the contract pays out on is encoded by long_participant_id. For a Cleveland +3.5 spread, this is "3.5". For an over/under total of 4.5, this is "4.5". Empty/"0.0" for moneylines. |
long_participant_id | metadata | String | Globally unique ID of the side the contract pays out on (e.g. mlb-cle). Only populated on individual game markets (moneylines, spreads, totals, props) — do not rely on it for futures. |
outcome_type Enum
The market structure of a sports instrument.
| Value | Meaning |
|---|
moneyline | Win/lose market (no handicap). |
spreads | Point/goal/run handicap market. |
totals | Over/under combined-score market. |
props | Player or team prop. |
futures | Season-long or event-long futures market. |
drawable_outcome | Exclusive group market that admits a draw (e.g. 3-way soccer outcome). |
market_sport_type Enum
The period or prop variant of a sports market. Only set for sub-period markets and props.
| Value | Sport | Scope | Period | Type |
|---|
baseball_player_home_runs | Baseball | Player | Full game | Home runs prop |
baseball_player_strikeouts | Baseball | Player | Full game | Strikeouts prop |
baseball_team_first_inning_run | Baseball | Team | 1st inning | Run scored |
baseball_team_first_five_winner | Baseball | Team | First 5 innings | Moneyline |
baseball_team_first_five_spread | Baseball | Team | First 5 innings | Spread |
baseball_team_first_five_total | Baseball | Team | First 5 innings | Total |
basketball_player_points | Basketball | Player | Full game | Points prop |
basketball_player_assists | Basketball | Player | Full game | Assists prop |
basketball_team_first_half_winner | Basketball | Team | First half | Moneyline |
basketball_team_first_half_spread | Basketball | Team | First half | Spread |
basketball_team_first_half_total | Basketball | Team | First half | Total |
The market_sport_type enum is the source of truth for game period and prop variants. When in doubt about which value applies to a market you’re seeing, use this field rather than parsing the symbol.
Section 2: Identifying Markets
Use this table as a recipe book for identifying a specific market type from instrument metadata. Full-game markets are identified by outcome_type alone — market_sport_type is not set. Period markets and props always set market_sport_type.
| To identify… | Check |
|---|
| Full-game moneyline | outcome_type = "moneyline" |
| Full-game spread | outcome_type = "spreads" |
| Full-game total | outcome_type = "totals" |
| Season/event-long futures | outcome_type = "futures" |
| 3-way outcome (e.g. soccer home/draw/away) | outcome_type = "drawable_outcome" |
| MLB first-5-innings moneyline | outcome_type = "moneyline" AND market_sport_type = "baseball_team_first_five_winner" |
| MLB first-5-innings spread | outcome_type = "spreads" AND market_sport_type = "baseball_team_first_five_spread" |
| MLB first-5-innings total | outcome_type = "totals" AND market_sport_type = "baseball_team_first_five_total" |
| MLB first-inning run | market_sport_type = "baseball_team_first_inning_run" |
| MLB player home runs prop | outcome_type = "props" AND market_sport_type = "baseball_player_home_runs" |
| MLB player strikeouts prop | outcome_type = "props" AND market_sport_type = "baseball_player_strikeouts" |
| NBA first-half moneyline | outcome_type = "moneyline" AND market_sport_type = "basketball_team_first_half_winner" |
| NBA first-half spread | outcome_type = "spreads" AND market_sport_type = "basketball_team_first_half_spread" |
| NBA first-half total | outcome_type = "totals" AND market_sport_type = "basketball_team_first_half_total" |
| NBA player points prop | outcome_type = "props" AND market_sport_type = "basketball_player_points" |
| NBA player assists prop | outcome_type = "props" AND market_sport_type = "basketball_player_assists" |
Worked Example: Cleveland/Detroit Over 4.5 Total
A full-game total on the May 21 Cleveland Guardians vs Detroit Tigers MLB game:
{
"symbol": "tsc-mlb-cle-det-2026-05-21-4pt5",
"metadata": {
"event_id": "mlb-cle-det-2026-05-21",
"event_start_time": "2026-05-21 17:10:00+00",
"event_subcategory": "BASEBALL",
"outcome_type": "totals",
"outcome_strike": "4.5",
"long_participant_id": "mlb-cle",
"long_participant_name": "Cleveland Guardians",
"short_participant_id": "mlb-det"
}
}
To safely interpret this contract:
outcome_type = "totals" and market_sport_type is unset → full-game total.
event_subcategory = "BASEBALL" → MLB game.
outcome_strike = "4.5" → over/under line is 4.5 combined runs.
- The contract resolves “Over” if the combined score is 4.5 or more, otherwise “Under”.
Worked Example: Cleveland +3.5 Spread
A full-game run-line spread on the May 20 Cleveland Guardians vs Detroit Tigers MLB game:
{
"symbol": "asc-mlb-cle-det-2026-05-20-pos-3pt5",
"metadata": {
"event_id": "mlb-cle-det-2026-05-20",
"event_start_time": "2026-05-20 22:40:00+00",
"event_subcategory": "BASEBALL",
"outcome_type": "spreads",
"outcome_strike": "3.5",
"long_participant_id": "mlb-cle",
"long_participant_name": "Cleveland Guardians",
"short_participant_id": "mlb-det"
}
}
To safely interpret this contract:
outcome_type = "spreads" and market_sport_type is unset → full-game spread.
long_participant_id = "mlb-cle" → the contract pays out on Cleveland.
outcome_strike = "3.5" → handicap magnitude is 3.5 runs.
- The contract resolves to Cleveland if Cleveland wins, or loses by fewer than 3.5 runs.
Best Practices
- Never parse the symbol or slug to determine market type, period, or handicap. Symbol formats are not part of the public contract.
- Full-game markets are identified by
outcome_type alone. market_sport_type is only set for sub-period markets and props.
- Treat
outcome_strike as a string in client code and convert to your numeric type. The value is unsigned — the spread direction is determined by long_participant_id.
- Cache and version your enum mappings. New
market_sport_type values are announced in the changelog and rolled out in preprod before production. Subscribe to the RSS feed to be notified before new enums appear in production.
- Subscribe to instrument updates via the streaming APIs to catch new instruments as they are listed.