{
  "meta": {
    "source": "uploaded-screenshot",
    "sourceLabel": "截图识别",
    "competition": "世界杯2026(美加墨)",
    "updatedAt": "2026-06-05T15:51:01.301Z",
    "note": "Sample payload for local UI work. Swap ODDS_PROVIDER to a production provider when API credentials are available."
  },
  "notes": [
    "This dashboard is read-only. It is intentionally designed for viewing, exporting and comparing odds data only.",
    "Recommended export defaults: JSON for ingestion/backfill, CSV for analysts and spreadsheet workflows."
  ],
  "outrights": [
    {
      "team": "法国",
      "price": 5.5,
      "bookmaker": "Reference sample",
      "market": "冠军"
    },
    {
      "team": "西班牙",
      "price": 5.5,
      "bookmaker": "截图识别",
      "market": "冠军"
    },
    {
      "team": "英格兰",
      "price": 8,
      "bookmaker": "截图识别",
      "market": "冠军"
    },
    {
      "team": "巴西",
      "price": 9.5,
      "bookmaker": "Reference sample",
      "market": "冠军"
    },
    {
      "team": "阿根廷",
      "price": 10,
      "bookmaker": "截图识别",
      "market": "冠军"
    },
    {
      "team": "葡萄牙",
      "price": 10,
      "bookmaker": "截图识别",
      "market": "冠军"
    }
  ],
  "matches": [
    {
      "id": "wc-2026-a1",
      "stage": "A小组",
      "kickoffUtc": "2026-06-11T19:00:00Z",
      "homeTeam": "墨西哥",
      "awayTeam": "南非",
      "bookmaker": "截图识别",
      "markets": {
        "moneyline": {
          "home": 1.4,
          "draw": 4.45,
          "away": 8.9
        },
        "handicap": {
          "line": "-1/1.5",
          "home": 1.02,
          "away": 0.84
        },
        "total": {
          "line": "2/2.5",
          "over": 0.86,
          "under": 0.98
        },
        "btts": {
          "yes": 2.38,
          "no": 1.59
        },
        "firstHalf": {
          "handicap": {
            "line": "-0.5",
            "home": 0.99,
            "away": 0.87
          },
          "total": {
            "line": "1",
            "over": 1.01,
            "under": 0.83
          },
          "moneyline": {
            "home": 1.99,
            "draw": 2.19,
            "away": 7.1
          }
        }
      },
      "kickoffText": "2026-06-11T19:00:00Z"
    },
    {
      "id": "wc-2026-a2",
      "stage": "A小组",
      "kickoffUtc": "2026-06-12T02:00:00Z",
      "homeTeam": "韩国",
      "awayTeam": "捷克",
      "bookmaker": "Reference sample",
      "markets": {
        "moneyline": {
          "home": 2.66,
          "draw": 3.15,
          "away": 2.8
        },
        "handicap": {
          "line": "0",
          "home": 0.89,
          "away": 0.97
        },
        "total": {
          "line": "2 / 2.5",
          "over": 0.97,
          "under": 0.87
        },
        "btts": {
          "yes": 1.89,
          "no": 1.92
        },
        "firstHalf": {
          "handicap": {
            "line": "0",
            "home": 0.89,
            "away": 0.97
          },
          "total": {
            "line": "0.5 / 1",
            "over": 0.72,
            "under": 1.13
          },
          "moneyline": {
            "home": 3.25,
            "draw": 2.01,
            "away": 3.4
          }
        }
      }
    },
    {
      "id": "wc-2026-b1",
      "stage": "B小组",
      "kickoffUtc": "2026-06-12T19:00:00Z",
      "homeTeam": "加拿大",
      "awayTeam": "波斯尼亚和黑塞哥维那",
      "bookmaker": "Reference sample",
      "markets": {
        "moneyline": {
          "home": 1.83,
          "draw": 3.5,
          "away": 4.6
        },
        "handicap": {
          "line": "-0.5",
          "home": 0.83,
          "away": 1.03
        },
        "total": {
          "line": "2 / 2.5",
          "over": 0.94,
          "under": 0.9
        },
        "btts": {
          "yes": 2.03,
          "no": 1.79
        },
        "firstHalf": {
          "handicap": {
            "line": "-0 / -0.5",
            "home": 0.98,
            "away": 0.88
          },
          "total": {
            "line": "1",
            "over": 1.13,
            "under": 0.72
          },
          "moneyline": {
            "home": 2.44,
            "draw": 2.06,
            "away": 4.9
          }
        }
      }
    },
    {
      "id": "wc-2026-c1",
      "stage": "C小组",
      "kickoffUtc": "2026-06-13T22:00:00Z",
      "homeTeam": "巴西",
      "awayTeam": "摩洛哥",
      "bookmaker": "Reference sample",
      "markets": {
        "moneyline": {
          "home": 1.59,
          "draw": 4.1,
          "away": 5.5
        },
        "handicap": {
          "line": "-1",
          "home": 1.05,
          "away": 0.81
        },
        "total": {
          "line": "2.5",
          "over": 0.99,
          "under": 0.85
        },
        "btts": {
          "yes": 2.03,
          "no": 1.8
        },
        "firstHalf": {
          "handicap": {
            "line": "-0 / -0.5",
            "home": 0.76,
            "away": 1.1
          },
          "total": {
            "line": "1",
            "over": 0.93,
            "under": 0.91
          },
          "moneyline": {
            "home": 2.17,
            "draw": 2.21,
            "away": 5.3
          }
        }
      }
    }
  ],
  "referenceSources": [
    {
      "name": "310比分",
      "kind": "reference",
      "url": "https://odds.jsbfw.cc/",
      "note": "公开页面直接写明提供“皇冠指数、即时让球、标准盘、指数比较、百家欧指比较”等内容，适合人工校对，不适合做生产主数据源。",
      "coverage": [
        "公开参考页",
        "皇冠指数、标准盘、即时让球、百家欧指比较",
        "更适合人工核对，不适合长期自动化主抓取"
      ]
    },
    {
      "name": "OddsPortal",
      "kind": "reference",
      "url": "https://www.oddsportal.com/",
      "note": "赔率比较站；FAQ 写明自己不做 bookmaking，处理约 30 家 bookmaker，比赛页赔率约每 15 秒更新，更适合做参考与比对。",
      "coverage": [
        "公开赔率比较站",
        "适合人工比对和补充核查",
        "不建议直接作为生产主源"
      ]
    },
    {
      "name": "Hotline Soccer",
      "kind": "reference",
      "url": "https://cn.hotlinesoccer.com/",
      "note": "公开介绍页声称覆盖近 200 家公司的标准盘、亚盘、大小球和滚球赔率变化，适合做公开参考站列表。",
      "coverage": [
        "公开赔率页",
        "适合核对盘口展示样式",
        "网页抓取稳定性低于正式 API"
      ]
    },
    {
      "name": "API-Football",
      "kind": "production",
      "url": "https://www.api-football.com/documentation-v3",
      "note": "官方文档公开了 pre-match odds、live odds 和赔率 bet 列表，最适合做世界杯赛程/赔率一体站。",
      "coverage": [
        "让球 / 大小 / 独赢",
        "大/小上半场、Corners、Both Teams To Score",
        "Exact Score / Correct Score (1st Half) 这类 bet 在公开文档中有出现"
      ]
    },
    {
      "name": "The Odds API",
      "kind": "production",
      "url": "https://the-odds-api.com/sports-odds-data/betting-markets.html",
      "note": "官方公开 market 列表，支持 h2h、spreads、totals、btts，以及 h1 半场市场。",
      "coverage": [
        "让球 / 大小 / 独赢",
        "让球上半场、大小上半场、独赢上半场、双方进球",
        "公开 market 列表里没有波胆"
      ]
    },
    {
      "name": "Workers AI",
      "kind": "production",
      "url": "https://developers.cloudflare.com/workers-ai/",
      "note": "截图同步模式的核心识别引擎。上传截图后由 Workers AI 在 Cloudflare 内部完成结构化抽取。",
      "coverage": [
        "视觉输入",
        "JSON schema 输出",
        "适合从截图提取赔率、波胆、小组赛信息"
      ]
    }
  ]
}