> ## 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.

# 期货频道 - 赛季投注市场元数据

> 通过WebSocket流式传输期货市场元数据。赛季投注、冠军赔率和长期市场数据用于体育博彩平台。

## 数据流内容

关于长期或赛季投注市场（称为"期货"）的元数据，以 `futureId` 为范围。

包括赛事/赛季映射、盘口元数据、时间窗口和外部供应商ID。

***

## 路由

* 实体键：`payload.futureId`
* 过滤器：`sportIds`、`tournamentIds`、`futureIds`
* 访问权限：由您的 `apiKey` 决定直播/赛前

***

## 负载字段

| 字段                               | 类型               | 描述                              |
| -------------------------------- | ---------------- | ------------------------------- |
| `futureId`                       | `string`         | 期货的唯一标识符                        |
| `status`                         | `object`         | 直播/赛前状态                         |
| `status.live`                    | `boolean`        | 期货当前是否为直播                       |
| `status.statusId`                | `number \| null` | 可选状态码                           |
| `status.statusName`              | `string \| null` | 可选状态标签（如 `"Pre-Game"`、`"Live"`） |
| `sport`                          | `object`         | 运动元数据                           |
| `sport.sportId`                  | `number`         | 运动唯一ID                          |
| `sport.sportName`                | `string`         | 运动名称                            |
| `tournament`                     | `object`         | 赛事元数据                           |
| `tournament.tournamentId`        | `number`         | 赛事唯一ID                          |
| `tournament.tournamentName`      | `string`         | 赛事名称                            |
| `tournament.categoryName`        | `string`         | 地理/组织分组                         |
| `season`                         | `object`         | 赛季元数据                           |
| `season.seasonId`                | `number \| null` | 赛季ID（可为空）                       |
| `season.seasonName`              | `string \| null` | 赛季名称                            |
| `startTime`                      | `number`         | 投注窗口开始时间（UTC纪元秒）                |
| `endTime`                        | `number`         | 投注窗口结束时间（UTC纪元秒）                |
| `market`                         | `object \| null` | 盘口元数据（可为空）                      |
| `market.marketId`                | `number \| null` | 可选盘口ID                          |
| `market.marketName`              | `string \| null` | 可选盘口名称（如 `"Outright Winner"`）   |
| `market.marketType`              | `string \| null` | 可选盘口类型代码                        |
| `participants`                   | `array`          | 此期货的参赛方列表（可能为空）                 |
| `externalProviders`              | `object`         | 映射的外部供应商ID                      |
| `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`         | 赔率可用状态（参见 `bookmakersFutures`）  |

***

## 示例：期货元数据

```json theme={null}
{
  "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"
}
```

## 示例：体育期货

```json theme={null}
{
  "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"
}
```

***

## 说明

* 赔率通过 [`oddsFutures`](/zh/websocket/channels/oddsFutures) 频道单独流式传输
* 使用 `futureId` 关联：
  * `oddsFutures`（获取价格）
  * `bookmakersFutures`（获取每个博彩商的状态）
* 大多数 `market` 字段对于遗留或非结构化市场可能为 `null`
