🎮 Start.gg Tournament Data Query
通过 start.gg 的 GraphQL API 查询赛事数据:搜索赛事、读取赛事/项目(event)信息、参赛者(entrants)、分组/池子(phaseGroup/pool)、对阵(sets)与排名(standings)。
✅ 使用前检查
在执行任何查询前,先检查环境变量 STARTGG_API_KEY 是否存在:
- 如果没有:先提示用户提供 key(并说明获取入口 https://start.gg/settings/developer 以及如何设置
STARTGG_API_KEY),不要继续调用工具或发起 API 请求。 - 如果有:再继续执行查询。
🔑 Setup
- 在 https://start.gg/settings/developer 获取 API token
- 设置环境变量(不要硬编码):
export STARTGG_API_KEY="your_token_here"
📡 API Endpoint
| Property | Value |
|---|---|
| Endpoint | https://api.start.gg/gql/alpha |
| Method | POST |
| Auth Header | Authorization: Bearer $STARTGG_API_KEY |
| Content-Type | application/json |
✅ 推荐工具用法(优先)
优先使用工具的高阶 action,而不是直接拼 GraphQL:
search_tournaments(name, per_page):按名称搜索赛事,拿到slugget_tournament(slug):根据slug获取赛事与 events 列表list_event_entrants(event_id, page, per_page):分页列出参赛者search_event_entrants(event_id, name, page, per_page):在参赛者中按名称过滤(使用filter: { name: ... })seed_pool(seed_id):由 seedId 获取所在 pool/phaseGroup(phaseGroup.displayIdentifier)phasegroup_sets(phase_group_id, page, per_page):获取某个 pool 的对阵(sets)event_standings(event_id, page, per_page):获取项目排名
如遇 schema 不支持或字段不够,再使用 gql(query, variables) 执行原始 GraphQL。
⚠️ Pitfalls & Corrections
- Slug 格式:赛事 slug 需要
tournament/前缀:ceo-2026❌ →tournament/ceo-2026✅ - Entrant 搜索:用
filter: { name: "..." },不要用search/names - 字段路径:
gamerTag在Entrant.participants[].gamerTag;pool 在Seed.phaseGroup.displayIdentifier - Connection 类型:
phaseGroups、entrants、sets、standings这类字段要用.nodes拿列表 - 分页:用
page与perPage翻页;未开赛/未锁定报名可能返回空列表
🔄 Typical Workflow
- 搜索赛事 → 拿
slug - 用
slug查赛事 → 拿 events(event IDs) - 用 event ID 查 entrants → 找到选手 → 拿 seedId
- 用 seedId 查 pool(phaseGroup)→ 拿
displayIdentifier - 用 phaseGroup 查 sets 或用 event 查 standings
微信扫一扫