mcpField
K
kalshi

kalshi

github.com/machina-sports其他2611.0k 次安装今天更新
代码仓库

关于 kalshi

kalshi 是通过 sports-skills 命令行工具或 Python SDK 查询 Kalshi 体育预测市场的技能,涵盖市场、赛事、交易和价格历史,并说明如何将价格解读为概率。

主要功能

  1. 01按运动和关键词搜索市场
  2. 02列出当日赛事及其市场
  3. 03获取市场、赛事和交易详情
  4. 04查看 OHLC 价格历史
  5. 05读取电竞价格及隐含概率

适用场景

  1. 01查找开放的 NBA 或 EPL 市场
  2. 02查看指定运动的当日赛事
  3. 03比较期货市场中的竞争者
  4. 04检查市场历史价格

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/machina-sports/sports-skills --skill kalshi

安装后在 Claude Code 中输入/kalshi确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api-reference.md
api.md
commands.md
series-tickers.md
scripts/
validate_params.sh

详细介绍

Kalshi — 预测市场

编写查询前,请查阅 references/api-reference.md,了解体育代码、系列代码和命令参数。

快速开始

优先使用 CLI,避免 Python 导入路径问题:

sports-skills kalshi search_markets --sport=nba
sports-skills kalshi get_todays_events --sport=nba
sports-skills kalshi get_sports_config
sports-skills kalshi get_markets --series_ticker=KXNBA --status=open

Python SDK(替代方案):

from sports_skills import kalshi

kalshi.search_markets(sport='nba')
kalshi.search_markets(sport='nba', query='Lakers')
kalshi.get_todays_events(sport='nba')
kalshi.get_sports_config()
kalshi.get_markets(series_ticker="KXNBA", status="open")

重要:执行任何查询前

重要:调用任何市场端点前,请确认:

  • 对单场比赛市场,始终将 sport 参数传递给 search_markets 和 get_todays_events。
  • 价格采用 0-100 的整数刻度(20 = 隐含概率 20%),不要将其视为美式赔率。
  • 查询市场时使用 status="open",以排除已结算或已关闭的市场。

不传递 sport 参数时:

WRONG: search_markets(query="Leeds")           → 0 results
RIGHT: search_markets(sport='epl', query='Leeds') → returns all Leeds markets

重要说明

  • 在 Kalshi 上,“Football” = NFL。 对于英式足球(EPL、La Liga 等),请使用体育代码:epl、ucl、laliga、bundesliga、seriea、ligue1、mls、worldcup。
  • Formula 1 使用体育代码 f1(车手/车队冠军,以及每场大奖赛的比赛、领奖台、杆位、最快圈速、胜负对决和冲刺赛系列)。
  • 市场代码不总是 <event_ticker>-<suffix>。 Kalshi 有些代码使用不同的前缀,例如 KXATP-26-SHA 属于事件 KXATP-26USO(2026 年美国网球公开赛男单),与 KXATP-26USO-SIN 并列。这是 Kalshi 的实际代码:将其原样传递给 get_market,并按市场的 event_ticker 字段分组,切勿通过解析代码来分组。
  • 价格代表概率。 last_price 为 20 表示隐含概率为 20%。刻度为 0-100(不像 Polymarket 使用 0-1)。
  • 查询市场时始终使用 status="open",否则结果会包含已结算或已关闭的市场。
  • 与 Polymarket 共用接口: search_markets(sport=...)、get_todays_events(sport=...) 和 get_sports_config() 在两个平台上的工作方式相同。

工作流

体育市场搜索(推荐)
  1. search_markets --sport=nba — 查找所有未关闭的 NBA 市场。
  2. 可选添加 --query="Lakers",按关键词筛选。
  3. 结果包含每个市场的 yes_bid、no_bid 和 volume。
今日赛事
  1. get_todays_events --sport=nba — 获取包含嵌套市场的未关闭赛事。
  2. 展示赛事及价格(价格 = 隐含概率,刻度为 0-100)。
期货市场查询
  1. get_markets --series_ticker=<ticker> --status=open
  2. 按 last_price 降序排序。
  3. 展示领先竞争者的概率和交易量。
市场价格历史
  1. 使用 search_markets --sport=nba 获取市场代码。
  2. get_market_candlesticks --series_ticker=<s> --ticker=<t> --start_ts=<start> --end_ts=<end> --period_interval=60
  3. 展示包含交易量的 OHLC 数据。

命令

完整命令列表及参数请参见 references/api-reference.md。

命令描述
get_sports_config可用体育代码和系列代码
get_todays_events某项体育运动今天的赛事及其嵌套市场
search_markets按体育运动和/或关键词查找市场
get_esports_odds电竞市场(cs2/lol/dota2):以美分计价的价格(0-100),以及 implied_probability(0-1)和 decimal_odds
get_markets市场列表(原始 API)
get_event赛事详情
get_market市场详情
get_trades最近的交易
get_market_candlesticksOHLC 价格历史

示例

示例 1:NBA 市场搜索 用户说:“Kalshi 上有哪些 NBA 市场?” 操作:

  1. 调用 search_markets(sport='nba') 结果:所有开放的 NBA 市场,包含是/否价格和交易量

示例 2:EPL 比赛市场 用户说:“显示 Kalshi 上利兹联对阵曼城的赔率” 操作:

  1. 调用 search_markets(sport='epl', query='Leeds') 结果:所有 EPL 系列中的利兹联 EPL 市场,包含价格和交易量

示例 3:今天的 EPL 赛事 用户说:“Kalshi 上有哪些 EPL 比赛?” 操作:

  1. 调用 get_todays_events(sport='epl') 结果:今天的 EPL 赛事及其嵌套市场

示例 4:欧冠未来赛果市场 用户说:“谁会赢得欧冠?” 操作:

  1. 调用 search_markets(sport='ucl') 或 get_markets(series_ticker="KXUCL", status="open")
  2. 按 last_price 降序排列(价格 = 隐含概率) 结果:领先的 UCL 竞争者,包含 yes_sub_title、last_price(%)和交易量

示例 5:市场价格历史 用户说:“显示这场 NBA 比赛的价格历史” 操作:

  1. 从 search_markets(sport='nba') 获取市场代码
  2. 调用 get_market_candlesticks(series_ticker="KXNBA", ticker="...", start_ts=..., end_ts=..., period_interval=60) 结果:包含交易量的 OHLC 价格数据

不存在的命令 — 切勿调用

  • get_odds — 不存在。使用 search_markets 或 get_markets 查找市场价格。
  • get_team_schedule — 不存在。Kalshi 提供市场,而非赛程。赛程请使用对应运动项目的技能。
  • get_scores / get_results — 不存在。Kalshi 是预测市场。请使用对应运动项目的技能。

如果某个命令未列在 references/api-reference.md 中,它就不存在。

故障排除

错误:search_markets 返回 0 条结果 原因:缺少 sport 参数 — 若不提供该参数,搜索只会返回高交易量的未来赛果市场,而会遗漏单场比赛市场 解决方案:始终为 search_markets 传入 sport='<code>'。请查看 references/api-reference.md,了解有效的运动代码

错误:返回的市场包含已结算/已过期的合约 原因:未设置 status 参数 解决方案:始终传入 status="open",以便只筛选开放市场

错误:系列代码未返回结果 原因:系列代码可能不正确,或者没有开放市场 解决方案:调用 get_series_list() 查找可用代码,或查看 references/series-tickers.md

错误:搜索“Football”时找不到美式足球/足球市场 原因:在 Kalshi 上,“Football”指 NFL — 足球使用特定联赛代码 解决方案:足球联赛请使用 sport='epl'、sport='ucl'、sport='laliga' 等代码

评论

支持 Markdown