Complete Hierarchy
Event ID Format
Events are identified by series, descriptors, and date/time:nfl-ne-den-2026-01-25mls-atl-clt-2026-03-22
uspres-2028-11-05ussen-2026-11-03
btc-hit-2026-12-31eth-hit-2027-06-30
oscars-2027-03-28grammys-2027-02-14
Instrument ID Format
Instruments combine product, event, and outcome:aec-nfl-ne-den-2026-01-25- Moneyline (no additional outcome)atc-mls-atl-clt-2026-03-22-draw- 3-way outcome: drawatc-mls-atl-clt-2026-03-22-atl- 3-way outcome: Atlanta winsasc-nfl-hou-mia-2025-12-16-pos-4pt5- Spread: 4.5 pointstsc-nfl-ne-den-2026-01-25-47-5- Total: 47.5 points
Participant ID Format
nfl-ne(New England)nfl-den(Denver)nba-bos(Boston Celtics)usp-harris(Kamala Harris)
Participant Lookup API
Participant abbreviations and display names can be looked up via the public teams endpoint:| Teams endpoint | Instrument metadata | Example |
|---|---|---|
abbreviation | long_participant_id / short_participant_id (as {league}-{abbreviation}) | chi → mls-chi |
name | long_participant_name / short_participant_name | Chicago Fire FC |
league | event_series | mls |
providerIds[SPORTSDATAIO] | event_external_id_sportsdataio | 694 |
providerIds[SPORTRADAR] | event_external_id_sportradar | sr:competitor:2505 |
logo, colorPrimary, alias, displayAbbreviation, and record.
Uniqueness Rules
Each level of the hierarchy has specific uniqueness scoping:| Level | Uniqueness Scope | Example |
|---|---|---|
| Category | Globally unique | SPR, POL, CRY |
| Subcategory | Unique within Category | SOCCER within SPR, COIN within CRY |
| Series | Unique within Subcategory | MLS within SOCCER, BTC within COIN |
| Event | Unique within Series (globally unique with series prefix) | mls-atl-clt-2026-03-22 |
| Product | Globally unique by Code | ATC, AEC, ASC |
| Instrument | Globally unique | atc-mls-atl-clt-2026-03-22-draw |
- Events belong to exactly one Series
- Products are independent and can be applied to events across any Series
- Instruments are globally unique combinations of Product + Event + Outcome
Multi-Product Events
A single event can have multiple products applied to it, each creating its own set of instruments. This allows traders to speculate on the same event in different ways. Hierarchy:nfl-ne-den-2026-01-25 (New England vs Denver on Jan 25, 2026)
Products Applied:
-
AEC (Athletic Event Contract) - Single Binary
- Instrument:
aec-nfl-ne-den-2026-01-25 - Question: “Will New England win?”
- Outcome: moneyline, strike: 0.0
- Instrument:
-
ASC (Athletic Spread Contract) - Group Directional
- Instrument:
asc-nfl-ne-den-2026-01-25-pos-3pt5 - Question: “Will New England win by more than 3.5 points?”
- Outcome: spread, strike: 3.5
- Instrument:
-
TSC (Total Score Contract) - Group Directional
- Instrument:
tsc-nfl-ne-den-2026-01-25-47-5 - Question: “Will total points be over 47.5?”
- Outcome: total, strike: 47.5
- Instrument:
event_id but have different product codes, outcome_type, and outcome_strike values.
Soccer Example with 3-Way Markets
Hierarchy:mls-atl-clt-2026-03-22 (Atlanta United vs Charlotte FC)
Products Applied:
-
ATC (Athletic Tie Contract) - Group Exclusive (3-way)
atc-mls-atl-clt-2026-03-22-atl(Atlanta wins)atc-mls-atl-clt-2026-03-22-draw(Draw)atc-mls-atl-clt-2026-03-22-clt(Charlotte wins)
-
AEC (Athletic Event Contract) - Single Binary
aec-mls-atl-clt-2026-03-22(Will Atlanta win?)
-
TSC (Total Score Contract) - Group Directional
tsc-mls-atl-clt-2026-03-22-2-5(Over 2.5 goals)tsc-mls-atl-clt-2026-03-22-3-5(Over 3.5 goals)
Complete Metadata Reference
All metadata fields available on instruments:| Field | Level | Required | Type | Example | Description |
|---|---|---|---|---|---|
cftc_instrument_id | Instrument | Yes | String | "aec-nfl-ne-den-2026-01-25" | CFTC registered instrument ID |
clearing_sym | Instrument | Yes | String | "AEC-NFL" | Clearing symbol prefix |
event_category | Category | Yes | String | "SPR" | Category code (SPR, POL, CRY, etc.) |
event_series | Series | Yes | String | "nfl" | Series code within category |
instrument_product | Product | Yes | String | "aec" | Product type code |
instrument_product_series | Product | Yes | String | "aec-nfl" | Combined product and series |
product_id | Product | Yes | String | "aec-nfl-ne-den-2026-01-25" | Product identifier |
event_id | Event | Yes | String | "nfl-ne-den-2026-01-25" | Unique event identifier |
event_start_time | Event | Yes | Timestamp | "2026-01-25 20:00:00+00" | Event start time (UTC) |
event_external_id_sportsdataio | Event | No | String | "19449" | SportsDataIO ID |
event_external_id_sportradar | Event | No | String | "5848514c-..." | Sportradar ID |
instrument_rules | Instrument | Yes | String | "Who will win..." | Instrument-specific rules |
participant_type | Participant | Yes | String | "team" | Type: team, player, nominee, etc. |
long_participant_id | Participant | Yes | String | "nfl-ne" | Long side participant ID |
long_participant_name | Participant | Yes | String | "New England" | Long side display name |
short_participant_id | Participant | Yes | String | "nfl-den" | Short side participant ID |
short_participant_name | Participant | Yes | String | "Denver" | Short side display name |
outcome_type | Outcome | Yes | String | "moneyline" | Outcome type |
outcome_strike | Outcome | Yes | String | "ne" | Strike value (participant abbreviation for moneyline, numeric for spreads/totals) |
Attributes vs Metadata vs Event Attributes
Attributes contain trading and settlement parameters:tick_size- Minimum price incrementminimum_trade_qty- Minimum order sizeprice_limit- Price bounds (low, high, low_set, high_set)expiration_date- Contract expirationexpiration_time- Settlement timelast_trade_date- Final trading daylast_trade_time- Final trading timebase_currency- Settlement currencyclearing_house- Clearing organizationcfi_code- Classification of Financial Instruments codesettlement_price_logic- Settlement logic typetrade_day_roll_schedule- Trading day rollover schedule
cftc_instrument_id- CFTC registered instrument identifierclearing_sym- Clearing symbol prefix- Event details (category, series, participants)
- Resolution rules
- External data provider IDs
- Display names and formatting
position_accountability_value- Position limit thresholdpayout_value- Contract payout amountquestion- Human-readable questionevent_display_name- Formatted display name for the eventevent_id- Event identifierstrike_value- Strike value for the outcomeevaluation_type- Comparison operator for resolutionstrike_unit- Unit type for strike (string, decimal)calculation_method- Settlement calculation methodtime_specifier- Date for event occurrence
External Data Provider IDs
External IDs enable integration with third-party data sources:event_external_id_sportsdataio
- SportsDataIO event identifier
- Used for real-time scores and statistics
- Example:
"19449"
event_external_id_sportradar
- Sportradar event identifier (UUID format)
- Used for official data feeds and settlement
- Example:
"5848514c-3977-4aa3-9db0-94ed5d0ebb34"