What it streams
Metadata about long-term or season-based betting markets (called “futures”), scoped to afutureId.
Includes tournament/season mapping, market metadata, timing window, and external provider IDs.
Routing
- Entity key:
payload.futureId - Filters:
sportIds,tournamentIds,futureIds - Access: live vs pregame determined by your
apiKey
Payload fields
| Field | Type | Description |
|---|---|---|
futureId | string | Unique identifier for the future |
status | object | Live/pregame status |
status.live | boolean | Whether the future is currently live |
status.statusId | number | null | Optional status code |
status.statusName | string | null | Optional status label (e.g. "Pre-Game", "Live") |
sport | object | Sport metadata |
sport.sportId | number | Unique sport ID |
sport.sportName | string | Human-readable sport name |
tournament | object | Tournament metadata |
tournament.tournamentId | number | Unique tournament ID |
tournament.tournamentName | string | Tournament name |
tournament.categoryName | string | Geographic/organizational grouping |
season | object | Season metadata |
season.seasonId | number | null | Season ID (nullable) |
season.seasonName | string | null | Season name |
startTime | number | Start of the betting window (epoch seconds UTC) |
endTime | number | End of the betting window (epoch seconds UTC) |
market | object | null | Market metadata (nullable) |
market.marketId | number | null | Optional market ID |
market.marketName | string | null | Optional market name (e.g. "Outright Winner") |
market.marketType | string | null | Optional market type code |
market.playerMarket | boolean | null | True if this is a player-specific market |
market.participantMarket | boolean | null | True if this is a participant/team market |
externalProviders | object | Mapped external provider IDs |
externalProviders.betradarId | number | null | Betradar ID |
externalProviders.flashscoreId | string | null | Flashscore ID |
externalProviders.opticoddsId | string | null | OpticOdds ID |
externalProviders.polymarketId | string | null | Polymarket ID |
externalProviders.kalshiId | string | null | Kalshi ID |
externalProviders.sofascoreId | number | null | Sofascore ID |
bookmakers | object | Odds availability status (see bookmakersFutures) |
Example: future metadata
Notes
- Odds are streamed separately via the
oddsFutureschannel - Use
futureIdto join with:oddsFutures(for prices)bookmakersFutures(for status per bookmaker)
- Most
marketfields may benullfor legacy or non-structured markets