Você precisa de detalhes da liga para um aplicativo esportivo esta semana: IDs de liga, nomes de liga e como eles se conectam a equipes e jogadores. Ao final deste guia, você será capaz de consultar a API FotMob no Zyla API Hub para pesquisar ligas, obter perfis de equipes que incluem contexto da liga e mapear fusos horários dos usuários para uma melhor experiência de agendamento—tudo com requisições copiáveis e coláveis.
O que esta API faz e como ela ajuda você a entregar
A API FotMob fornece dados estruturados de futebol que desenvolvedores em atividade podem colocar diretamente em produção. No contexto de “detalhes da liga”, você pode:
- Descobrir ligas pelo nome e recuperar seus IDs usando o endpoint de Pesquisa (ele retorna leagueId e leagueName em entidades correspondentes).
- Buscar detalhes da equipe, que incluem metadados gerais e contexto da liga (conforme descrito pelo endpoint).
- Resolver e apresentar fusos horários para os usuários ao mostrar horários ou cronogramas de partidas.
Casos de uso típicos incluem: construir seletores de equipes e ligas, conectar elencos às suas competições e normalizar horários de eventos entre locais de usuários.
Começando no Zyla API Hub
Abra a página da API FotMob em Zyla API Hub, clique em Inscrever-se ou Iniciar Teste Gratuito, se disponível, e gere uma chave de API. A autenticação é via o cabeçalho HTTP Authorization: Bearer YOUR_API_KEY. A cobrança é por assinatura + cota (não é pago por chamada). Para a primeira API, você pode iniciar um teste de 7 dias na página de listagem; verifique a página da API para opções de acesso e preços atuais.
Cada requisição neste artigo usa a URL de execução do Zyla API Hub. Não use nenhum host de origem—você pode chamar diretamente do seu backend com sua única chave de API Zyla.
Endpoints principais que você usará
Abaixo estão os endpoints relevantes para construir recursos centrados na liga. Cada um é um GET e requer o cabeçalho de Autorização.
Pesquisar equipes, jogadores e ligas
Método: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29856/search-teams-players-and-leagues
Propósito: Retorna sugestões de pesquisa para equipes, jogadores e ligas que correspondem à consulta. Para fluxos de trabalho orientados a ligas, é aqui que você captura leagueId e leagueName dos resultados associados a equipes ou partidas.
Parâmetros obrigatórios:
- q (string): a consulta de pesquisa
Copie e cole cURL (pesquisando por “arsenal”):
curl -s -X GET "https://zylalabs.com/api/13505/fotmob-api/29833/get-timezones" \
-H "Authorization: Bearer YOUR_API_KEY"
Use isso para localizar rapidamente um leagueId e leagueName que você armazenará ou usará para filtrar dados a jusante. A resposta da pesquisa inclui entradas como:
[
"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…
Com essas sugestões, você pode extrair leagueId e leagueName para contextos de equipe ou partida, que muitas vezes é tudo o que você precisa para filtrar ou vincular conteúdo por competição.
Obter detalhes da equipe
Método: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29857/get-team-details
Propósito: Retorna os detalhes gerais (nome, país, liga, links) de uma equipe. Use-o para confirmar o contexto da liga de uma equipe e mostrar nomes canônicos na sua interface.
Parâmetros obrigatórios:
- team_id (string): o identificador da equipe
Exemplo de requisição (para team_id 8634):
A resposta contém metadados gerais da equipe. Use-o para alinhar registros de equipes com a liga que você descobriu na Pesquisa. Como o exemplo abaixo é autoritativo, mantenha seus nomes de campo e tipos como estão ao modelar sua integração:
{
"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."
}
}…
Notas práticas:
- Use latestSeason para delimitar sua interface por temporada (por exemplo, filtre elencos ou partidas que você possui em outro lugar por essa string de temporada).
- Armazene país e gênero se você permitir que os usuários filtrem por região ou tipo de competição.
Obter detalhes do jogador
Método: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29855/get-player-details
Propósito: Retorna o perfil do jogador (bio, equipe atual, características e dados de carreira). Ao construir visualizações de liga, vincule a primaryTeam de um jogador a uma equipe, e então derive seu contexto de liga usando dados de equipe ou de pesquisa.
Parâmetros obrigatórios:
- player_id (string): o identificador do jogador
Exemplo de requisição (para player_id 961995):
Resposta de exemplo (truncada para campos-chave que você irá conectar):
{
"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
}
},…
Notas práticas:
- Use primaryTeam.teamId para conectar jogadores ao registro da equipe que você obteve dos detalhes da equipe ou sugestões de pesquisa.
- Os campos de tempo usam UTC; converta usando a preferência de fuso horário do seu usuário.
Obter fusos horários (exemplo oficial)
Método: GET
URL: https://zylalabs.com/api/13505/fotmob-api/29833/get-timezones
Propósito: Retorna identificadores de fusos horários suportados. Use isso para apresentar uma lista segura e permitida para configurações de usuário ou para mapear horários de partidas agendadas.
cURL oficial:
Resposta JSON oficial:
[
"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…
Use esses identificadores com qualquer biblioteca de data/hora para converter timestamps UTC de partidas ou contratos para exibição.
Como montar “detalhes da liga” com os endpoints disponíveis
Embora não haja um endpoint dedicado para “obter detalhes da liga”, você pode derivar as peças essenciais para a maioria das interfaces de produção:
- Pesquise por palavra-chave de equipe ou liga com o endpoint de Pesquisa e capture leagueId e leagueName das sugestões.
- Opcionalmente, enriqueça o contexto buscando detalhes da equipe para equipes relevantes; o perfil da equipe inclui detalhes gerais e contexto da liga.
- Vincule jogadores a equipes via primaryTeam.teamId (dos detalhes do jogador) ao construir listas de elencos filtradas por liga.
- Localize horários usando o endpoint de fusos horários mais quaisquer campos utcTime encontrados nos metadados de partidas de jogadores ou de pesquisa.
Exemplo de código: pesquisar ligas por palavra-chave (Python)
Este exemplo chama o endpoint de Pesquisa, depois extrai pares leagueId/leagueName das sugestões. Ele espelha o cURL mostrado anteriormente.
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", []):
# Sugestões podem ser equipe, jogador, partida, liga (varia).
# Nós apenas coletamos entradas que expõem 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})
# Remova duplicatas enquanto preserva a ordem
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)
Dicas:
- Cache resultados por consulta q por um curto TTL (por exemplo, algumas horas) se você renderizar uma interface de pesquisa enquanto digita.
- leagueId é numérico no exemplo; armazene-o como um inteiro no seu banco de dados para evitar incompatibilidades de tipo.
Detalhes práticos de implementação
- Autenticação: defina Authorization: Bearer YOUR_API_KEY em cada chamada.
- Timestamps: valores utcTime estão em UTC. Converta usando um fuso horário suportado do endpoint de fusos horários ou seu próprio mapa.
- Cache: endpoints de pesquisa são bons candidatos para caches de curta duração para evitar reconsultas na mesma entrada.
- Quotas: a cobrança é por assinatura + cota, não pago por chamada. A primeira API oferece um teste de 7 dias na página do item; verifique a listagem para limites atuais antes de realizar testes de carga.
- Tratamento de erros: trate respostas não-2xx como transitórias (tente novamente com backoff) ou erros de validação (mostre ao usuário) dependendo do contexto.
Casos de uso do mundo real
- Selecionador de ligas: Use o endpoint de Pesquisa para preencher um dropdown com pares leagueName/leagueId conforme o usuário digita. Persista leagueId para filtragem posterior.
- Diretório de equipes por liga: Após o usuário selecionar uma liga dos resultados da pesquisa, mostre equipes conhecidas que mapeiam para essa liga. Use detalhes da equipe para confirmar identidade e metadados (nome, país, última temporada).
- Explorador de elencos: Busque detalhes dos jogadores, vincule pela primaryTeam.teamId e mostre apenas jogadores cujas equipes pertencem à liga que o usuário selecionou.
- Horários cientes do tempo: Se você também mostrar partidas futuras do seu próprio armazenamento, apresente matchDate e utcTime ao lado de um fuso horário do get-timezones para que os usuários vejam horários de início localizados.
Chamando a API de agentes de IA via MCP
Se você estiver trabalhando dentro de um cliente compatível com MCP (por exemplo, Claude Code, Cursor, Windsurf), você pode direcionar chamadas para os mesmos endpoints através do endpoint MCP da Zyla:
Forneça sua chave de API Zyla ao configurar a ferramenta MCP para que seu agente possa chamar endpoints da API FotMob usando a mesma autorização. Isso mantém seus fluxos de trabalho IDE/agente e código do servidor no mesmo contrato de dados.
Fluxo de ponta a ponta para obter detalhes da liga esta semana
- Inscreva-se na listagem da API FotMob e obtenha sua chave de API.
- Implemente uma caixa de pesquisa simples que chama o endpoint de Pesquisa e captura leagueId/leagueName das sugestões.
- Armazene o leagueId selecionado. Opcionalmente, busque detalhes da equipe para as equipes que você exibirá sob essa liga.
- Quando você mostrar jogadores ou partidas, derive o contexto da liga através de sua equipe relacionada ou via as sugestões de pesquisa que você já possui.
- Use o endpoint de fusos horários para renderizar horários localizados para eventos com campos utcTime.
FAQ
Como eu obtenho um leagueId?
Use o endpoint de Pesquisa com uma string de consulta (por exemplo, um nome de liga ou equipe). O array de sugestões inclui leagueId e leagueName para entidades correspondentes.
Posso buscar um perfil de liga diretamente?
Um endpoint dedicado para “detalhes da liga” não está listado aqui. Derive informações da liga via Pesquisa (leagueId, leagueName) e detalhes da equipe para contexto.
Em que fuso horário estão os campos de data/hora?
UTC. Converta usando um fuso horário do endpoint get-timezones e a preferência do seu usuário.
Há um plano gratuito?
Nenhum plano gratuito é indicado. A cobrança é por assinatura + cota. A listagem da API FotMob oferece um teste de 7 dias; verifique a página do item para opções de acesso atuais.
Como eu me autentico?
Envie Authorization: Bearer YOUR_API_KEY em cada requisição para os endpoints do Zyla API Hub.
Pronto para conectar isso? Crie sua conta, obtenha sua chave e comece a construir com a API FotMob. O teste de 7 dias começa na página do item: Iniciar teste de 7 dias na API FotMob. O Zyla API Hub agrega mais de 10.000 APIs públicas sob uma chave, para que você possa adicionar a próxima integração sem mudar seu fluxo de autenticação.
Resposta oficial da 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…