Você precisa de uma API para buscar detalhes da competição rapidamente—nomes, IDs e metadados como disponibilidade de classificações—para que você possa integrá-la à sua página de jogos, seletor de ligas ou pipeline de ingestão esta semana. Ao final deste artigo, você será capaz de consultar competições de futebol por país e esporte, analisar a resposta que precisa e, opcionalmente, enriquecer a interface com detalhes dos jogadores da mesma fonte.
O que esta API faz e quando usá-la
A API 365Scores no Zyla API Hub expõe dados esportivos estruturados. Para competições, ela retorna uma lista de competições para um determinado esporte e país, juntamente com metadados úteis, como se possuem classificações, estatísticas, classificações ao vivo e o número da temporada atual. Casos de uso típicos:
- Preencher o diretório de competições de um país (por exemplo, mostrar todas as ligas de futebol de Portugal).
- Impulsionar menus suspensos para seleção de ligas por esporte e país.
- Armazenar identificadores de ligas para solicitar dados relacionados mais tarde (por exemplo, classificações ou estatísticas em seus próprios sistemas).
- Enriquecer páginas de times ou jogadores com links cruzados para competições nas quais participam.
Você também pode puxar dados focados em jogadores (estatísticas de destaque, partidas e perfis completos) da mesma API para fornecer contexto em torno de uma competição.
Começando no Zyla API Hub
Abra a listagem da API 365Scores no Zyla API Hub e inscreva-se. O Hub funciona em um modelo de assinatura + cota (não por chamada). Para novos usuários, a primeira API geralmente oferece um teste de 7 dias ou 50 solicitações; verifique a listagem para saber o que está ativo no momento. Após a inscrição, você receberá uma chave de API. Todas as solicitações usam o cabeçalho Authorization: Bearer YOUR_API_KEY.
Iniciar teste de 7 dias na API 365Scores
Endpoint: Obter competições
Este endpoint retorna competições para um determinado esporte e país, juntamente com arrays de suporte para esportes e países. É um GET somente leitura no Zyla API Hub. Inclua sua chave de API via Authorization: Bearer YOUR_API_KEY.
Método HTTP e URL
GET https://zylalabs.com/api/13503/365scores-api/29728/get-competitions
Parâmetros de consulta obrigatórios
- sportId: identificador numérico do esporte (o exemplo abaixo usa futebol: 1)
- countryId: identificador numérico do país
- langId: ID do idioma
- timezone: fuso horário Olson (por exemplo, Europe/Berlin). Codifique a barra.
Exemplo oficial de cURL
curl -s -X GET "https://zylalabs.com/api/13503/365scores-api/29728/get-competitions?sportId=1&countryId=11&langId=1&timezone=Europe%2FBerlin" \
-H "Authorization: Bearer YOUR_API_KEY"
Resposta JSON oficial
{
"sports": [
{
"id": 1,
"name": "Football",
"nameForURL": "football",
"drawSupport": true,
"imageVersion": 1
}
],
"countries": [
{
"id": 11,
"name": "Portugal",
"nameForURL": "portugal",
"sportTypes": [
2,
8,
1
],
"imageVersion": 1,
"isInternational": false
}
],
"competitions": [
{
"id": 73,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal",
"longName": "Portuguese Primeira Liga",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal",
"popularityRank": 10055229,
"tableName": "Standings",
"currentSeasonNum": 94,
"currentStageNum": 1,
"color": "#000925",
"competitorsType": 1,
"imageVersion": 7,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 74,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal 2",
"shortName": "Liga Pro",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal-2",
"popularityRank": 650667,
"tableName": "Standings",
"currentSeasonNum": 38,
"currentStageNum": 1,
"color": "#186839",
"competitorsType": 1,
"imageVersion": 5,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 75,
"countryId": 11,
"sportId"…
O que você realmente usará:
- competitions[].id: identificador estável para a competição (armazene isso).
- competitions[].name / longName / nameForURL: rótulo de exibição e slug amigável para SEO.
- competitions[].hasStandings / hasStats / hasTransfers / hasLiveStandings: alternar módulos da interface.
- competitions[].currentSeasonNum e currentStageNum: contexto para a exibição do estado da sua temporada.
- sports[] e countries[]: o esporte e o país resolvidos usados para sua consulta atual.
Fusos horários: passe um fuso horário válido (por exemplo, Europe/Berlin) para garantir que os campos de data e hora—quando presentes em outros endpoints—sejam localizados conforme esperado. Neste endpoint, o fuso horário ainda é necessário, mesmo que os registros de competição acima não incluam datas formatadas.
Exemplo em Python: buscar competições por país e esporte
O trecho abaixo chama o mesmo endpoint e imprime os IDs das competições, nomes e algumas bandeiras que você provavelmente exibirá em um alternador de interface. Ele usa a string de consulta exata mostrada no cURL oficial, para que você possa copiá-la e trocar seus valores depois.
import requests
API_KEY = "YOUR_API_KEY"
url = "https://zylalabs.com/api/13503/365scores-api/29728/get-competitions"
params = {
"sportId": "1",
"countryId": "11",
"langId": "1",
"timezone": "Europe/Berlin"
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=20)
resp.raise_for_status()
data = resp.json()
# Validação básica
competitions = data.get("competitions", [])
for comp in competitions:
cid = comp.get("id")
name = comp.get("name")
has_standings = comp.get("hasStandings")
has_stats = comp.get("hasStats")
print(f"{cid}: {name} | standings={has_standings} stats={has_stats}")
Notas que economizam tempo:
- O cabeçalho de autorização é obrigatório: Authorization: Bearer YOUR_API_KEY.
- Armazene listas estáveis (competitions) em seu aplicativo por pelo menos alguns minutos para reduzir a latência.
- Sempre codifique a barra do fuso horário se você montar a URL manualmente.
Endpoints adicionais que você pode emparelhar com competições
Além das competições, a API 365Scores também permite que você busque dados focados em jogadores. Esses endpoints ajudam quando você deseja vincular competições a perfis de jogadores ou desempenhos recentes. Use o mesmo cabeçalho de autorização e forneça os parâmetros de consulta obrigatórios exatamente como mostrado.
Obter detalhes do jogador
Retorna detalhes completos (biografia, carreira, troféus, transferências) sobre um jogador específico.
Método: GET
URL: https://zylalabs.com/api/13503/365scores-api/29748/get-player-details
Parâmetros obrigatórios:
- playerId: 153026
- langId: 1
- timezone: Europe/Berlin
A resposta inclui um array de atletas de nível superior com objetos que contêm detalhes do perfil, como idade, nationalityName, posição, formationPosition, shortBio e highlightStats.
Obter partidas do jogador
Retorna as partidas recentes e futuras para um jogador específico.
Método: GET
URL: https://zylalabs.com/api/13503/365scores-api/29749/get-player-matches
Parâmetros obrigatórios:
- playerId: 153026
- langId: 1
- timezone: Europe/Berlin
A resposta inclui atletas mais arrays de suporte para esportes e países. Use isso para mostrar o clube atual de um jogador e os próximos jogos ao lado do contexto da competição.
Obter estatísticas do jogador
Retorna estatísticas de destaque e carreira para um jogador específico.
Método: GET
URL: https://zylalabs.com/api/13503/365scores-api/29750/get-player-stats
Parâmetros obrigatórios:
- playerId: 153026
- langId: 1
- timezone: Europe/Berlin
A resposta contém atletas com highlightStats que vinculam estatísticas a competições (por exemplo, competitionId e um nome como “Copa do Brasil”). Isso é útil para cruzar os IDs de competição que você recebeu anteriormente.
Juntando tudo: padrões de integração práticos
- Diretório de ligas do país: chame Obter competições para seu país e esporte-alvo para renderizar uma lista de ligas. Armazene competitions[].id para uso posterior.
- Páginas de jogadores cientes da competição: quando um usuário navega para uma página de jogador, busque Obter estatísticas do jogador e exiba estatísticas agrupadas por nome da competição. Use competitionId para vincular de volta ao seu diretório de ligas.
- Filtros rápidos: filtre competições do lado do cliente por bandeiras como hasStandings ou hasStats para expor os módulos da interface corretos apenas quando relevante.
- URLs SEO: use nameForURL de competições para construir caminhos de URL consistentes (mantenha suas próprias regras de roteamento; não assuma que os slugs são únicos em todos os países).
Chamada de agentes de IA via MCP
Toda API no Zyla API Hub pode ser chamada via o endpoint MCP, que funciona com ferramentas de desenvolvedor compatíveis com MCP (por exemplo, Claude Code, Cursor, Windsurf). Aponte seu cliente para o endpoint MCP e passe sua chave como um parâmetro de consulta:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
A partir daí, você pode orquestrar chamadas de ferramentas que atingem os mesmos endpoints do Hub que você viu acima. Para detalhes de configuração e configuração específica do cliente, veja MCP.
Dicas operacionais
- Autenticação: todas as solicitações requerem Authorization: Bearer YOUR_API_KEY.
- Teste e cotas: Zyla usa assinatura + cota. A primeira API geralmente oferece um teste de 7 dias ou 50 solicitações; verifique a página do item para confirmar o que está ativo.
- Localização: passe langId e timezone consistentemente em todas as solicitações para que os rótulos da lista e quaisquer campos sensíveis ao tempo se alinhem em sua interface.
- Cache: competições não mudam com frequência; armazene resultados para reduzir o volume de solicitações e melhorar a experiência do usuário.
FAQ
Quais parâmetros são necessários para listar competições?
Forneça sportId, countryId, langId e timezone no GET https://zylalabs.com/api/13503/365scores-api/29728/get-competitions.
Como faço para autenticar?
Envie Authorization: Bearer YOUR_API_KEY no cabeçalho da solicitação.
Posso obter a temporada atual e se as classificações existem?
Sim. O array de competições inclui campos como currentSeasonNum e hasStandings para guiar sua interface.
Como relaciono estatísticas de jogadores a uma competição específica?
Use Obter estatísticas do jogador. Ele retorna objetos highlightStats que contêm competitionId e nome, que você pode corresponder aos IDs de Obter competições.
Há um plano gratuito?
Não há Plano Gratuito. O marketplace usa um modelo de assinatura + cota. Verifique a página da API 365Scores para opções de acesso atuais; a primeira API geralmente oferece um teste de 7 dias ou 50 solicitações.
Pronto para enviar sua integração? Inscreva-se e obtenha sua chave na listagem: Iniciar teste de 7 dias na API 365Scores. Construa no catálogo do Zyla API Hub com mais de 10.000 APIs públicas com uma conta, uma chave e acesso MCP consistente.
Resposta oficial da API
{
"sports": [
{
"id": 1,
"name": "Football",
"nameForURL": "football",
"drawSupport": true,
"imageVersion": 1
}
],
"countries": [
{
"id": 11,
"name": "Portugal",
"nameForURL": "portugal",
"sportTypes": [
2,
8,
1
],
"imageVersion": 1,
"isInternational": false
}
],
"competitions": [
{
"id": 73,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal",
"longName": "Portuguese Primeira Liga",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal",
"popularityRank": 10055229,
"tableName": "Standings",
"currentSeasonNum": 94,
"currentStageNum": 1,
"color": "#000925",
"competitorsType": 1,
"imageVersion": 7,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 74,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal 2",
"shortName": "Liga Pro",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal-2",
"popularityRank": 650667,
"tableName": "Standings",
"currentSeasonNum": 38,
"currentStageNum": 1,
"color": "#186839",
"competitorsType": 1,
"imageVersion": 5,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 75,
"countryId": 11,
"sportId"…
Resposta oficial da API
{
"sports": [
{
"id": 1,
"name": "Football",
"nameForURL": "football",
"drawSupport": true,
"imageVersion": 1
}
],
"countries": [
{
"id": 11,
"name": "Portugal",
"nameForURL": "portugal",
"sportTypes": [
2,
8,
1
],
"imageVersion": 1,
"isInternational": false
}
],
"competitions": [
{
"id": 73,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal",
"longName": "Portuguese Primeira Liga",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal",
"popularityRank": 10055229,
"tableName": "Standings",
"currentSeasonNum": 94,
"currentStageNum": 1,
"color": "#000925",
"competitorsType": 1,
"imageVersion": 7,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 74,
"countryId": 11,
"sportId": 1,
"name": "Liga Portugal 2",
"shortName": "Liga Pro",
"hasStandings": true,
"hasBrackets": false,
"hasStats": true,
"hasTransfers": true,
"hasLiveStandings": false,
"hasStandingsGroups": false,
"hasBets": false,
"totalGames": 0,
"liveGames": 0,
"nameForURL": "liga-portugal-2",
"popularityRank": 650667,
"tableName": "Standings",
"currentSeasonNum": 38,
"currentStageNum": 1,
"color": "#186839",
"competitorsType": 1,
"imageVersion": 5,
"hideOnCatalog": false,
"hideOnSearch": false,
"hasCurrentStageStandings": true,
"hasHistory": true,
"isActive": true
},
{
"id": 75,
"countryId": 11,
"sportId"…