您需要一种可靠的方法来列出您的应用程序可以覆盖的每项运动,立即—而不是一周后。在本指南结束时,您将能够通过单个请求获取所有可用的体育项目,将它们渲染到您的导航或设置中,并使用来自 Zyla API Hub 的相同订阅和 API 密钥增强您的 UI,进行团队搜索和国家旗帜。
此 API 的功能及使用时机
SofaScore - Live API 在 Zyla API Hub 上提供体育元数据和搜索工具,您可以直接将其插入到记分板、投注助手、新闻应用或数据管道中。在本文中,我们将重点介绍您今天可以使用的三个端点:
- 获取所有体育项目:检索每个可用体育项目的列表,包括 id、名称和 slug。
- 搜索所有实体:通过查询字符串查找 SofaScore 实体(例如,团队)。
- 获取国家旗帜:下载国家旗帜图像字节以在您的 UI 中显示。
所有示例都使用 Zyla API Hub 路由和单个授权头。没有自定义主机,没有每个 API 的单独帐户。如果您是市场新手,您可以通过一个帐户和一个 API 密钥在 zylalabs.com 探索超过 10,000 个公共 API。
在 Zyla API Hub 上开始
打开 SofaScore - Live API 列表,订阅并获取您的密钥:
- 访问 API 页面:在 SofaScore - Live API 上开始 7 天试用。
- 点击订阅(或在可用时开始免费试用)以获取您的 API 密钥。
- 在对下面的端点的每个请求中使用 Authorization: Bearer YOUR_API_KEY。
Zyla 的计费是订阅 + 配额(而不是按调用计费)。对于您添加的第一个 API,有 7 天的试用期或 50 次请求。请查看 API 页面以获取当前访问选项和定价。
端点:获取所有体育项目
这是构建您的体育选择器、功能切换或路由表的入口点。它返回一个体育项目数组,每个项目都有 id、名称和 slug。无需请求参数。
- 方法:GET
- URL:https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- 头部:Authorization: Bearer YOUR_API_KEY
- 请求参数:无
cURL 示例
curl -s -X GET "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports" \
-H "Authorization: Bearer YOUR_API_KEY"
官方示例响应
[
{
"id": 1,
"name": "足球",
"slug": "football"
},
{
"id": 5,
"name": "网球",
"slug": "tennis"
},
{
"id": 2,
"name": "篮球",
"slug": "basketball"
},
{
"id": 64,
"name": "棒球",
"slug": "baseball"
},
{
"id": 23,
"name": "排球",
"slug": "volleyball"
},
{
"id": 63,
"name": "美式足球",
"slug": "american-football"
},
{
"id": 6,
"name": "手球",
"slug": "handball"
},
{
"id": 20,
"name": "乒乓球",
"slug": "table-tennis"
},
{
"id": 4,
"name": "冰球",
"slug": "ice-hockey"
},
{
"id": 22,
"name": "飞镖",
"slug": "darts"
},
{
"id": 72,
"name": "电子竞技",
"slug": "esports"
},
{
"id": 11,
"name": "赛车",
"slug": "motorsport"
},
{
"id": 65,
"name": "自行车",
"slug": "cycling"
},
{
"id": 62,
"name": "板球",
"slug": "cricket"
},
{
"id": 76,
"name": "综合格斗",
"slug": "mma"
},
{
"id": 12,
"name": "橄榄球",
"slug": "rugby"
},
{
"id": 29,
"name": "五人制足球",
"slug": "futsal"
},
{
"id": 31,
"name": "羽毛球",
"slug": "badminton"
},
{
"id": 26,
"name": "水球",
"slug": "waterpolo"
},
{
"id": 19,
"name": "斯诺克",
"slug": "snooker"
},
{
"id": 13,
"name": "澳式足球",
"slug": "aussie-rules"
},
{
"id": 34,
"name": "沙滩排球",
"slug": "beach-volley"
},
{
"id": 109,
"name": "迷你足球",
"slug": "minifootball"
},
{
"id": 7,
"name": "地板球",
"slug": "floorball"
},
{
"id": 15,
"name": "班迪曲棍球",
"slug": "bandy"
},
{
"id": 110,
"name": "帕德尔",
"slug": "padel"
}
]
您实际使用的字段:
- id:体育项目的数字标识符。将其存储以进行关系查找。
- name:菜单和标签的显示名称。
- slug:稳定的、URL 友好的令牌,用于构建路由和功能标志。
Python 示例:按 id 获取、排序和映射
import requests
API_URL = "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
resp = requests.get(API_URL, headers=headers, timeout=10)
resp.raise_for_status()
sports = resp.json() # list of {id, name, slug}
# Sort alphabetically for a menu
sports_sorted = sorted(sports, key=lambda s: s["name"].lower())
# Build helper maps
by_id = {s["id"]: s for s in sports_sorted}
by_slug = {s["slug"]: s for s in sports_sorted}
# Example usage
print("可用的体育项目:", ", ".join(s["name"] for s in sports_sorted))
print("足球 id:", by_slug["football"]["id"])
端点:搜索所有实体
当您需要为搜索栏提供动力,以快速跳转到团队、比赛或相关的 SofaScore 实体时,请使用此功能。它通过查询字符串在实体中进行搜索并返回匹配的对象。
- 方法:GET
- URL:https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- 头部:Authorization: Bearer YOUR_API_KEY
- 请求参数:
- q(字符串,必需):搜索查询(例如,皇家马德里)
cURL 示例
此端点返回包含实体元数据的匹配项,例如 id、名称、slug 和国家信息。使用它在用户从您的“所有体育项目”列表中选择体育项目后填充自动完成建议。
端点:获取国家旗帜
在呈现国家级上下文(例如,团队的国家)时,您可以通过国家代码请求旗帜图像,并直接在您的 UI 或缓存层中使用字节。
- 方法:GET
- URL:https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- 头部:Authorization: Bearer YOUR_API_KEY
- 请求参数:
- country_code(字符串,必需):例如,EN
cURL 示例
示例响应
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAELUExURUdwTN/f37QVJd7e3t3d3d/f39/f39/f39/f397e3t7e3t3d3d3d3d3d3d/f397e3t/f39/f39zc3N7e3rQUJN/f37MUJLUTJd/f39/f3+Hh4d3d3bMUJLUVJbQUJLUVJbUUJLcQKOHh4d3d3bQVJLQUJN/f397e3rQVJbIWI7ITI7QUJLcYKM4RJP///97e3rQUJPv7++Li4v39/ebm5uDg4Orq6vDw8OTk5Pf397sTJPn5+bsUJPPz8/Ly8u7u7rcUJMcSJOzs7PHx8cQSJO/v77gUJLgTJOjo6MoSJMETJL8TJLUUJL4TJOvr680RJMsSJMsRJMQTJL0TJO3t7cwRJLYUJM0SJLwUJL4UJDN2488AAAAsdFJOUwB/38+AMBAg79+fcJBAv3CfYKC/YICfj79vr0AwcGCvIF+Pz8+vsKBQULAgUCRTtgAABilJREFUeNrtnGdX40YUhoWrhA1uGFj6tmQ34VrFKl6vzdqYDrtJNvX//5JMkSU3YWk0kiYn3A/CB3zMc+776s54NHMlKV6cfThp756+zeVUErlcq7XbPj48kjKLYqOel9WAkLf3GsXUkcqVA7mDIwiL/FE+qKSItrWndKZBIR6vrz+TuL6excKhbG6lwyR3/ND/eZiM7r6dz8bdaHL/tzPzJmUz4ZyVKtvePzMtu2fAeUCA0bNvde/N+UaCUBteorp2H0gEYpHo210/ZeVkXL7pMxkwjeexUGgDjywBMA/KufKZwmARMj0ZME++bg/mIwwWip7lgm1wBHtFocyxBsCGhVLmgim8zF+md585r15ULB8szyVhrn6WBhAPywfb4JWqJU8xYSEwan6lzMNV5iUAHywAelfKlTg34B5NlQb8sKZKvikxC5hfkyomLJQwM46QRTJPcDTgjeU6TGEawF+TXP8OwB8L4Ip8OIPBNoiAA0gGCy5NpkpBqPQ+JIXlCrnBQqVBclgsXITKMSBJLDCciFyEqhuGKg5WVC5C9RUgaSyArxG4XhEFIQ0sIDPX16GqaGhfccCiOoaoq2Vc2/WwVHGxwNBDjUMlJWRl4IRF60R+3biN5wxmeKr4WNDH…
将响应主体用作图像字节。通过您的 CDN 存储和提供它,或将其转换为您的前端所期望的格式。
真实世界的集成模式
- 构建体育选择器:在应用启动时一次性获取所有体育项目,按名称排序,并渲染为下拉菜单或分段控制。
- 每项运动的功能门:使用 slug 切换特定于运动的模块(例如,当数据可用时启用“冰球”)。
- SEO 友好的路由:从 slug 字段生成类似 /sports/football/ 或 /sports/mma/ 的 URL。
- 团队的自动完成:当用户选择一项运动时,将您的搜索框连接到搜索所有实体以进行类似“皇家马德里”的查询。
- 国家徽章:使用获取国家旗帜在团队、联赛或排行榜条目旁边显示旗帜。
节省时间的操作说明
- 缓存:所有体育项目的列表相对稳定。在您的后端缓存几个小时或一天。保持简单的部署时失效策略。
- 本地化:示例有效负载显示英文名称。如果您的 UI 支持多种语言,请计划将显示字符串与 slug 分开映射。
- 标识符:同时保留 id 和 slug。使用 id 进行后端连接;使用 slug 进行 URL 和功能路由。
- 错误处理:默认情况下将非 200 视为临时,并实现重试和退避机制以进行读取。通过请求 id 在日志中显示错误。
- 仅限头部:这些端点使用 Authorization: Bearer YOUR_API_KEY。不要在 GET 请求中发送额外的主体参数。
- 配额:Zyla 使用订阅 + 配额。检查列表以获取您当前的限制和预期使用情况。通过缓存避免不必要的轮询。
最小的端到端流程
- 在服务器启动时,请求获取所有体育项目并缓存数组。
- 将缓存的列表暴露给您的前端以构建导航,使用 slug 进行路由,使用 id 进行内部引用。
- 在用户搜索时,调用搜索所有实体,将 q 设置为用户的输入并渲染建议。
- 当您需要国家视觉效果时,调用获取国家旗帜,使用适当的 country_code 并存储字节。
通过 MCP 从 AI 代理调用
如果您在 MCP 兼容的客户端(例如,Claude Code、Cursor、Windsurf)中进行原型设计,您可以通过 Zyla 的 MCP 端点调用相同的 API。将您的工具指向:
在您的客户端期望的位置提供您的 Zyla API 密钥。然后,您的代理可以使用上述相同的 Bearer 令牌和 URL 调用文档化的 SofaScore - Live API 端点。这对于获取体育项目、验证 slug 和生成配置文件的脚本搭建非常有用。
测试清单
- 成功的 GET 请求获取所有体育项目返回一个数组;确认每个项目都有 id、名称、slug。
- 排序顺序:处理您自己的排序;API 不保证顺序。
- Slug 安全性:slug 是 URL 友好的;验证您的路由器是否处理连字符。
- 搜索栏:去抖动按键并在 200–300 毫秒后调用搜索所有实体。
- 旗帜图像:将响应视为图像字节;从后端返回时通过正确的 Content-Type 提供。
为什么 Zyla 帮助您更快交付
通过 Zyla API Hub,您可以在数千个 API 中重用相同的帐户、密钥和计费模型。这意味着您可以在稍后插入额外的体育或游戏端点,而无需重新进行身份验证或采购。当您准备好时,请在 zylalabs.com 探索目录并超越单一集成。
常见问题解答
我该如何进行身份验证?
在每个请求中添加头部 Authorization: Bearer YOUR_API_KEY。
获取所有体育项目是否有请求参数?
没有。该端点未记录任何请求参数;只需发送带有您的授权头的 GET 请求。
我应该存储哪些响应字段?
至少:id、名称、slug。使用 id 进行内部引用,使用 slug 进行 URL 和功能切换。
我可以缓存体育项目列表吗?
可以。缓存以减少调用和提高启动时间是个好主意。选择一个适合您发布节奏的过期时间。
我该如何显示国家旗帜?
调用获取国家旗帜,使用所需的 country_code 参数,并在您的 UI 中使用返回的图像字节或从您的 CDN 提供它们。
准备好实现您的体育项目列表并在本周交付吗?在 SofaScore - Live API 页面上订阅并获取您的密钥:在 SofaScore - Live API 上开始 7 天试用。