您本周需要联赛详细信息用于体育应用:联赛 ID、联赛名称,以及它们如何与球队和球员连接。在本指南结束时,您将能够在 Zyla API Hub 上查询 FotMob API,以搜索联赛,提取包含联赛上下文的球队资料,并映射用户时区以改善调度用户体验——所有这些都可以通过复制粘贴请求来完成。
此 API 的功能及其如何帮助您交付
FotMob API 提供结构化的足球数据,开发人员可以直接投入生产。在“联赛详细信息”的上下文中,您可以:
- 通过名称发现联赛,并使用搜索端点检索它们的 ID(它返回匹配实体的 leagueId 和 leagueName)。
- 获取球队详细信息,包括一般元数据和联赛上下文(如端点所述)。
- 在显示比赛时间或时间表时,为用户解析和呈现时区。
典型用例包括:构建球队和联赛选择器,将球队与其比赛连接,以及在用户地区之间规范事件时间。
在 Zyla API Hub 上入门
打开 Zyla API Hub 上的 FotMob API 页面,点击订阅或开始免费试用(如果可用),并生成 API 密钥。身份验证通过 HTTP 头 Authorization: Bearer YOUR_API_KEY。计费为订阅 + 配额(而非按调用计费)。对于第一个 API,您可以在列表页面开始 7 天的试用;请查看 API 页面以获取当前访问选项和定价。
本文中的每个请求都使用 Zyla API Hub 执行 URL。请勿使用任何源主机——您可以直接从后端调用,使用您的单个 Zyla API 密钥。
您将使用的核心端点
以下是与构建以联赛为中心的功能相关的端点。每个都是 GET 请求,并需要 Authorization 头。
搜索球队、球员和联赛
方法: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29856/search-teams-players-and-leagues
目的: 返回与查询匹配的球队、球员和联赛的搜索建议。对于以联赛为驱动的工作流程,这是您从与球队或比赛相关的结果中捕获 leagueId 和 leagueName 的地方。
所需参数:
- q (字符串):搜索查询
复制粘贴 cURL(搜索“arsenal”):
curl -s -X GET "https://zylalabs.com/api/13505/fotmob-api/29833/get-timezones" \
-H "Authorization: Bearer YOUR_API_KEY"
使用此方法快速定位您将存储或用于过滤下游数据的 leagueId 和 leagueName。搜索响应包括如下条目:
[
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Costa_Rica",
"America/Coyhaique",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America…
从这些建议中,您可以提取用于球队或比赛上下文的 leagueId 和 leagueName,这通常是您过滤或链接内容所需的全部信息。
获取球队详细信息
方法: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29857/get-team-details
目的: 返回球队的一般详细信息(名称、国家、联赛、链接)。使用它来确认球队的联赛上下文,并在您的用户界面中显示规范名称。
所需参数:
- team_id (字符串):球队标识符
示例请求(对于 team_id 8634):
响应包含一般球队元数据。使用它将球队记录与您从搜索中发现的联赛对齐。由于下面的示例是权威的,因此在建模您的集成时,请保持其字段名称和类型不变:
{
"id": 8634,
"type": "team",
"name": "Barcelona",
"latestSeason": "2026/2027",
"shortName": "Barcelona",
"country": "ESP",
"gender": "male",
"faqJSONLD": {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "When is Barcelona's next match?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Barcelona's next match is at 15:30 BST on Sun, 16 Aug 2026 against Basel."
}
},
{
"@type": "Question",
"name": "Where is Barcelona's stadium?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Barcelona stadium is located in Barcelona and is called Spotify Camp Nou."
}
},
{
"@type": "Question",
"name": "What is the capacity of Spotify Camp Nou?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The capacity for Spotify Camp Nou is 99787."
}
}…
实用笔记:
- 使用 latestSeason 根据赛季范围您的用户界面(例如,通过该赛季字符串过滤您在其他地方持有的名单或比赛)。
- 如果您让用户按地区或比赛类型过滤,请存储国家和性别。
获取球员详细信息
方法: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29855/get-player-details
目的: 返回球员资料(个人简介、当前球队、特征和职业数据)。在构建联赛视图时,将球员的 primaryTeam 链接到球队,然后使用球队或搜索数据推导其联赛上下文。
所需参数:
- player_id (字符串):球员标识符
示例请求(对于 player_id 961995):
示例响应(截断为您将连接的关键字段):
{
"id": 961995,
"name": "Bukayo Saka",
"birthDate": {
"utcTime": "2001-09-05T00:00:00.000Z",
"timezone": "UTC"
},
"contractEnd": {
"utcTime": "2030-06-30T00:00:00.000Z",
"timezone": "UTC"
},
"isCoach": false,
"isCaptain": false,
"gender": "male",
"primaryTeam": {
"teamId": 9825,
"teamName": "Arsenal",
"onLoan": false,
"teamColors": {
"color": "#bd0510",
"colorAlternate": "#bd0510",
"colorAway": "#101010",
"colorAwayAlternate": "#ffffff"
}
},
"positionDescription": {
"positions": [
{
"strPos": {
"label": "Right Winger",
"key": "rightwinger"
},
"strPosShort": {
"label": "RW",
"key": "rightwinger_short"
},
"occurences": 41,
"position": "82",
"isMainPosition": true,
"pitchPositionData": {
"right": 0.83,
"top": 0.26
}
},…
实用笔记:
- 使用 primaryTeam.teamId 将球员连接到您从球队详细信息或搜索建议中获得的球队记录。
- 时间字段使用 UTC;使用用户的时区偏好进行转换。
获取时区(官方示例)
方法: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29833/get-timezones
目的: 返回支持的时区标识符。使用此方法为用户设置提供安全的白名单列表,或映射计划的比赛时间。
官方 cURL:
官方 JSON 响应:
[
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Costa_Rica",
"America/Coyhaique",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America…
使用这些标识符与任何日期时间库一起转换比赛或合同的 UTC 时间戳以进行显示。
如何使用可用端点组装“联赛详细信息”
虽然没有专门的“获取联赛详细信息”端点,但您可以推导出大多数生产用户界面的基本部分:
- 使用搜索端点按球队或联赛关键字搜索,并从建议中捕获 leagueId 和 leagueName。
- 可选地通过获取相关球队的球队详细信息来丰富上下文;球队资料包括一般详细信息和联赛上下文。
- 在构建按联赛过滤的球队列表时,通过 primaryTeam.teamId 将球员链接到球队。
- 使用时区端点和在球员或搜索比赛元数据中找到的任何 utcTime 字段本地化时间。
代码示例:按关键字搜索联赛(Python)
此示例调用搜索端点,然后从建议中提取 leagueId/leagueName 对。它反映了之前显示的 cURL。
import os
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
q = "arsenal"
url = "https://zylalabs.com/api/13505/fotmob-api/29856/search-teams-players-and-leagues"
headers = {"Authorization": f"Bearer {API_KEY}"}
params = {"q": q}
resp = requests.get(url, headers=headers, params=params, timeout=30)
resp.raise_for_status()
data = resp.json()
league_refs = []
for block in data:
for s in block.get("suggestions", []):
# Suggestions can be team, player, match, league (varies).
# We only collect entries that expose leagueId/leagueName.
league_id = s.get("leagueId")
league_name = s.get("leagueName")
if league_id is not None and league_name is not None:
league_refs.append({"leagueId": league_id, "leagueName": league_name})
# Deduplicate while preserving order
seen = set()
unique_leagues = []
for item in league_refs:
key = (item["leagueId"], item["leagueName"])
if key not in seen:
seen.add(key)
unique_leagues.append(item)
print(unique_leagues)
提示:
- 如果您呈现搜索即输入的用户界面,请按查询 q 缓存结果,TTL 较短(例如,几个小时)。
- 示例中的 leagueId 是数字;在您的数据库中将其存储为整数以避免类型不匹配。
实际实施细节
- 身份验证:在每次调用时设置 Authorization: Bearer YOUR_API_KEY。
- 时间戳:utcTime 值为 UTC。使用来自时区端点的支持时区或您自己的映射进行转换。
- 缓存:搜索端点是短期缓存的良好候选者,以避免对相同输入的重新查询。
- 配额:计费为订阅 + 配额,而非按调用计费。第一个 API 在项目页面提供 7 天试用;在负载测试之前,请检查列表以获取当前限制。
- 错误处理:根据上下文将非 2xx 响应视为临时(重试并退避)或验证错误(向用户显示)。
现实世界用例
- 联赛选择器:使用搜索端点填充下拉列表,包含 leagueName/leagueId 对,用户输入时显示。持久化 leagueId 以便后续过滤。
- 按联赛的球队目录:在用户从搜索结果中选择联赛后,显示已知映射到该联赛的球队。使用球队详细信息确认身份和元数据(名称、国家、最新赛季)。
- 球队探索器:获取球员详细信息,通过 primaryTeam.teamId 链接,并仅显示属于用户选择的联赛的球队的球员。
- 时间感知的时间表:如果您还显示来自自己商店的即将到来的比赛,请呈现 matchDate 和 utcTime,并附上来自 get-timezones 的时区,以便用户看到本地化的开球时间。
通过 MCP 从 AI 代理调用 API
如果您在 MCP 兼容的客户端(例如,Claude Code、Cursor、Windsurf)中工作,您可以通过 Zyla MCP 端点将调用路由到相同的端点:
在配置 MCP 工具时提供您的 Zyla API 密钥,以便您的代理可以使用相同的授权调用 FotMob API 端点。这使您的 IDE/代理工作流和服务器代码保持在相同的数据合同上。
获取本周联赛详细信息的端到端流程
- 在 FotMob API 列表上订阅并获取您的 API 密钥。
- 实现一个简单的搜索框,调用搜索端点并捕获建议中的 leagueId/leagueName。
- 存储所选的 leagueId。可选地获取您将在该联赛下显示的球队的详细信息。
- 当您显示球员或比赛时,通过其相关球队或您已经拥有的搜索建议推导联赛上下文。
- 使用时区端点为具有 utcTime 字段的事件呈现用户本地时间。
常见问题
我如何获得 leagueId?
使用带有查询字符串的搜索端点(例如,联赛或球队名称)。建议数组包括匹配实体的 leagueId 和 leagueName。
我可以直接获取联赛资料吗?
此处未列出专门的“联赛详细信息”端点。通过搜索(leagueId、leagueName)和球队详细信息推导联赛信息以获取上下文。
日期时间字段的时区是什么?
UTC。使用来自 get-timezones 端点的时区和用户的偏好进行转换。
是否有免费计划?
未指明免费计划。计费为订阅 + 配额。FotMob API 列表提供 7 天试用;请查看项目页面以获取当前访问选项。
我如何进行身份验证?
在每个请求中发送 Authorization: Bearer YOUR_API_KEY 到 Zyla API Hub 端点。
准备好将其连接起来了吗?创建您的帐户,获取您的密钥,并开始使用 FotMob API 构建。7 天试用在项目页面开始:在 FotMob API 上开始 7 天试用。Zyla API Hub 在一个密钥下聚合超过 10,000 个公共 API,因此您可以在不更改身份验证流程的情况下添加下一个集成。
官方 API 响应
[
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Costa_Rica",
"America/Coyhaique",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America…