Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.oddspapi.io/llms.txt

Use this file to discover all available pages before exploring further.

What it streams

Metadata about long-term or season-based betting markets (called “futures”), scoped to a futureId. 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

FieldTypeDescription
futureIdstringUnique identifier for the future
statusobjectLive/pregame status
status.livebooleanWhether the future is currently live
status.statusIdnumber | nullOptional status code
status.statusNamestring | nullOptional status label (e.g. "Pre-Game", "Live")
sportobjectSport metadata
sport.sportIdnumberUnique sport ID
sport.sportNamestringHuman-readable sport name
tournamentobjectTournament metadata
tournament.tournamentIdnumberUnique tournament ID
tournament.tournamentNamestringTournament name
tournament.categoryNamestringGeographic/organizational grouping
seasonobjectSeason metadata
season.seasonIdnumber | nullSeason ID (nullable)
season.seasonNamestring | nullSeason name
startTimenumberStart of the betting window (epoch seconds UTC)
endTimenumberEnd of the betting window (epoch seconds UTC)
marketobject | nullMarket metadata (nullable)
market.marketIdnumber | nullOptional market ID
market.marketNamestring | nullOptional market name (e.g. "Outright Winner")
market.marketTypestring | nullOptional market type code
participantsarrayList of participants for this future (may be empty)
externalProvidersobjectMapped external provider IDs
externalProviders.betradarIdnumber | nullBetradar ID
externalProviders.flashscoreIdstring | nullFlashscore ID
externalProviders.opticoddsIdstring | nullOpticOdds ID
externalProviders.polymarketIdstring | nullPolymarket ID
externalProviders.kalshiIdstring | nullKalshi ID
externalProviders.sofascoreIdnumber | nullSofascore ID
bookmakersobjectOdds availability status (see bookmakersFutures)

Example: future metadata

{
  "channel": "futures",
  "type": "UPDATE",
  "payload": {
    "futureId": "pm6980037088158379224",
    "status": {
      "live": true,
      "statusId": 1,
      "statusName": "Live"
    },
    "sport": {
      "sportId": 69,
      "sportName": "Politics"
    },
    "tournament": {
      "tournamentId": 800370,
      "tournamentName": "2025 Predictions",
      "categoryName": "Politics"
    },
    "season": {
      "seasonId": 8815837922,
      "seasonName": "Macron out by...?"
    },
    "startTime": 1735932904,
    "endTime": 1782820800,
    "market": {
      "marketId": 4,
      "marketName": null,
      "marketType": null
    },
    "participants": [],
    "externalProviders": {
      "betradarId": null,
      "flashscoreId": null,
      "opticoddsId": null,
      "polymarketId": "16263",
      "kalshiId": null,
      "sofascoreId": null
    },
    "bookmakers": {}
  },
  "ts": 1776939800000,
  "entryId": "1776939800000-999"
}

Example: sports future

{
  "channel": "futures",
  "type": "UPDATE",
  "payload": {
    "futureId": "id100000281190131",
    "status": {
      "live": true,
      "statusId": 1,
      "statusName": "Live"
    },
    "sport": {
      "sportId": 10,
      "sportName": "Soccer"
    },
    "tournament": {
      "tournamentId": 28,
      "tournamentName": "AFC Asian Cup QF",
      "categoryName": "International"
    },
    "season": {
      "seasonId": 119013,
      "seasonName": "AFC Asian Cup QF 2026"
    },
    "startTime": 1725494400,
    "endTime": 1780617599,
    "market": {
      "marketId": 1,
      "marketName": null,
      "marketType": null
    },
    "participants": [],
    "externalProviders": {
      "betradarId": 119013,
      "flashscoreId": null,
      "opticoddsId": null,
      "polymarketId": null,
      "kalshiId": null,
      "sofascoreId": null
    },
    "bookmakers": {}
  },
  "ts": 1776939800100,
  "entryId": "1776939800100-1000"
}

Notes

  • Odds are streamed separately via the oddsFutures channel
  • Use futureId to join with:
    • oddsFutures (for prices)
    • bookmakersFutures (for status per bookmaker)
  • Most market fields may be null for legacy or non-structured markets