Você precisa de uma lista definitiva de esportes, com IDs, slugs e nomes estáveis, para impulsionar a navegação, filtros ou buscas em seu aplicativo. Ao final deste guia, você terá uma integração que busca todos os esportes disponíveis a partir de um único endpoint, analisa em código e, opcionalmente, enriquece sua interface com bandeiras de países e busca global usando a mesma família de APIs.
O que esta API oferece
A API SofaScore - Live no Zyla API Hub expõe um endpoint de leitura simples que retorna todos os esportes disponíveis como um array de objetos, cada um com um id, nome e slug. Esta lista é adequada para inicializar sua taxonomia de esportes, impulsionar dropdowns ou mapear slugs de esportes para rotas. A mesma API também fornece:
- Um endpoint de bandeira de país (bytes de imagem) para decoração ou atribuição da interface.
- Um endpoint de busca entre entidades para times, clubes e entidades relacionadas por consulta de texto.
Como isso roda no Zyla API Hub, você usa uma conta e uma chave de API sob um modelo de assinatura + cota (não por chamada). A plataforma hospeda mais de 10.000 APIs públicas com autenticação e cobrança consistentes. Para sua primeira API, você pode iniciar um teste de 7 dias ou 50 requisições (sem Plano Gratuito). Verifique a página da API para opções de acesso e preços atuais.
Começando no Zyla API Hub
Abra a página da API SofaScore - Live e inicie o teste para obter uma chave de API:
- Vá para Iniciar teste de 7 dias na API SofaScore - Live.
- Clique em Assinar ou Iniciar Teste Gratuito quando disponível, em seguida, copie sua chave de API.
- Envie requisições com o cabeçalho: Authorization: Bearer YOUR_API_KEY
Você pode gerenciar sua chave e assinaturas diretamente da sua conta Zyla API Hub.
Endpoints que você usará
Esta seção documenta os três endpoints relevantes para “API para obter todos os esportes”, com suas URLs de requisição exatas, métodos e parâmetros (somente onde especificado). Não adicione corpos de requisição; esses endpoints são simples GETs com parâmetros de consulta conforme mostrado.
1) Obter todos os esportes
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- Descrição: Retorna uma lista de todos os esportes disponíveis.
- Parâmetros: nenhum documentado.
- Auth: Authorization: Bearer YOUR_API_KEY
cURL (exemplo oficial):
curl -s -X GET "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports" \
-H "Authorization: Bearer YOUR_API_KEY"
Exemplo JSON (exemplo oficial):
[
{
"id": 1,
"name": "Futebol",
"slug": "futebol"
},
{
"id": 5,
"name": "Tênis",
"slug": "tenis"
},
{
"id": 2,
"name": "Basquete",
"slug": "basquete"
},
{
"id": 64,
"name": "Beisebol",
"slug": "beisebol"
},
{
"id": 23,
"name": "Voleibol",
"slug": "voleibol"
},
{
"id": 63,
"name": "Futebol americano",
"slug": "futebol-americano"
},
{
"id": 6,
"name": "Handebol",
"slug": "handebol"
},
{
"id": 20,
"name": "Tênis de mesa",
"slug": "tenis-de-mesa"
},
{
"id": 4,
"name": "Hóquei no gelo",
"slug": "hoquei-no-gelo"
},
{
"id": 22,
"name": "Dardos",
"slug": "dardos"
},
{
"id": 72,
"name": "E-sports",
"slug": "esports"
},
{
"id": 11,
"name": "Motorsport",
"slug": "motorsport"
},
{
"id": 65,
"name": "Ciclismo",
"slug": "ciclismo"
},
{
"id": 62,
"name": "Críquete",
"slug": "criquete"
},
{
"id": 76,
"name": "Artes Marciais Mistas",
"slug": "mma"
},
{
"id": 12,
"name": "Rugby",
"slug": "rugby"
},
{
"id": 29,
"name": "Futsal",
"slug": "futsal"
},
{
"id": 31,
"name": "Badminton",
"slug": "badminton"
},
{
"id": 26,
"name": "Polo aquático",
"slug": "polo-aquatico"
},
{
"id": 19,
"name": "Snooker",
"slug": "snooker"
},
{
"id": 13,
"name": "Regras australianas",
"slug": "regras-australianas"
},
{
"id": 34,
"name": "Vôlei de praia",
"slug": "volei-de-praia"
},
{
"id": 109,
"name": "Minifutebol",
"slug": "minifutebol"
},
{
"id": 7,
"name": "Floorball",
"slug": "floorball"
},
{
"id": 15,
"name": "Bandy",
"slug": "bandy"
},
{
"id": 110,
"name": "Padel",
"slug": "padel"
}
]
O que usar:
- id: identificador inteiro estável. Use-o como sua chave primária ou mapeie para sua própria taxonomia.
- name: rótulo de exibição para interfaces.
- slug: identificador em minúsculas, amigável para URL (bom para rotas e parâmetros de consulta).
Notas práticas:
- Cache: Esta lista é relativamente estática. Armazene em cache em seu aplicativo por horas ou um dia, dependendo das necessidades de atualização. Quebre o cache em implantações ou via um controle manual de administrador.
- Localização: A resposta mostra nomes em inglês. Se você precisar de camadas de localização, mapeie slugs para suas próprias strings i18n.
- Ordenação: Se você precisar de uma ordem específica, classifique por nome ou aplique um mapa de peso personalizado (por exemplo, priorize Futebol, Basquete, Tênis).
2) Obter bandeira do país
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- Descrição: Retorna os bytes da imagem da bandeira do país.
- Parâmetros (obrigatórios): country_code (string). Exemplo de valor: EN
- Auth: Authorization: Bearer YOUR_API_KEY
cURL:
Exemplo de resposta:
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…
Notas de uso:
- A resposta é bytes de imagem bruta. Armazene em disco, faça cache via CDN ou converta para base64 na memória para renderização imediata em um cliente web.
- country_code é uma string (exemplo: EN). Valide suas entradas para evitar tentativas desnecessárias.
3) Buscar todas as entidades
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- Descrição: Busca todas as entidades do SofaScore por string de consulta.
- Parâmetros (obrigatórios): q (string). Exemplo de valor: real madrid
- Auth: Authorization: Bearer YOUR_API_KEY
cURL:
Exemplo de resposta:
[{"entity":{"id":2829,"name":"Real Madrid","slug":"real-madrid","imagePath":"https:\/\/img.sofascore.com\/api\/v1\/team\/2829\/image","proxyImagePath":"https:\/\/betting.asdasddsgdfgfdsgfj.website\/sofascore\/image-proxy?imagePath=https:\/\/img.sofascore.com\/api\/v1\/team\/2829\/image","fullName":null,"shortName":null,"nameCode":"RMA","gender":"M","country":{"name":"Espanha","slug":"spain","alpha2":"ES","alpha3":null,"imagePath":"https:\/\/img.sofascore.com\/api\/v1\/country\/ES\/flag","proxyImagePath":"https:\/\/betting.asdasddsgdfgfdsgfj.website\/sofascore\/image-proxy?imagePath=https:\/\/img.sofascore.com\/api\/v1\/country\/ES\/flag"},"foundationDateTimestamp":null,"manager":[],"ranking":null,"national":false,"venue":[],"sport":{"id":1,"name":"Futebol","slug":"futebol"}},"score":4293164.5,"type":"team"},{"entity":{"id":2816,"name":"Real Betis","slug":"real-betis","imagePath":"https:\/\/img.sofascore.com\/api\/v1\/team\/2816\/image","proxyImagePath":"https:\/\/betting.asdasddsgdfgfdsgfj.website\/sofascore\/image-proxy?imagePath=https:\/\/img.sofascore.com\/api\/v1\/team\/2816\/image","fullName":null,"shortName":null,"nameCode":"BET","gender":"M","country":{"name":"Espanha","slug":"spain","alpha2":null,"alpha3":null,"imagePath":"https:\/\/img.sofascore.com\/api\/v1\/country\/ES\/flag","proxyImagePath":"https:\/\/betting.asdasddsgdfgfdsgfj.website\/sofascore\/image-proxy?imagePath=https:\/\/img.sofascore.com\/api\/v1\/country\/ES\/flag"},"foundationDateTimestamp":null,"manager":[],"ranking":null,"national":false,"venue":[],"sport":{"id":1,"name":"Futebol","slug":"futebol"}},"score":...}]
Notas de uso:
- Use q para implementar barras de busca globais para times e entidades. Debounce no lado do cliente para reduzir chamadas.
- A estrutura da resposta inclui metadados da entidade, como id, nome, slug, país e esporte. Armazene em cache consultas populares.
Código para copiar e colar: carregar a lista de esportes em Python
O exemplo abaixo chama Obter todos os esportes, verifica o status HTTP, analisa o JSON em uma lista de dicionários e constrói duas estruturas de busca que você realmente usará: id-para-nome e slug-para-id. Insira sua chave de API onde indicado.
import os
import sys
import json
import urllib.request
API_URL = "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports"
API_KEY = os.environ.get("ZYLALABS_API_KEY", "YOUR_API_KEY")
req = urllib.request.Request(API_URL, method="GET")
req.add_header("Authorization", f"Bearer {API_KEY}")
try:
with urllib.request.urlopen(req, timeout=10) as resp:
if resp.status != 200:
sys.stderr.write(f"HTTP {resp.status}\n")
sys.exit(1)
data = json.loads(resp.read().decode("utf-8"))
except Exception as e:
sys.stderr.write(f"Request failed: {e}\n")
sys.exit(1)
# Construir buscas úteis em aplicativos reais:
id_to_name = {item["id"]: item["name"] for item in data}
slug_to_id = {item["slug"]: item["id"] for item in data}
# Exemplo de uso: construção de rotas e validação
def sport_exists(slug):
return slug in slug_to_id
# Imprimir um resumo rápido e um exemplo de rota
print(f"Carregado {len(data)} esportes")
for s in data[:5]:
print(f"- {s['name']} (id={s['id']}, slug={s['slug']})")
example_slug = "futebol"
if sport_exists(example_slug):
sport_id = slug_to_id[example_slug]
print(f"/sports/{example_slug} mapeia para sport_id={sport_id}")
else:
print(f"{example_slug} não presente")
Dicas de implementação:
- Timeouts: defina timeouts razoáveis (por exemplo, 5–10s) para evitar requisições penduradas.
- Tentativas: para erros transitórios, tente novamente com backoff exponencial. Evite loops sem limites.
- Cache: cache de arquivo ou cache TTL na memória é frequentemente suficiente para esta lista estática.
Casos de uso práticos que você pode enviar esta semana
- Bootstrap de navegação: Busque esportes uma vez na inicialização do servidor e gere rotas /sports/{slug} e sitemaps.
- Interfaces de filtro: Preencha seletores de esportes em painéis ou aplicativos móveis usando nome e slug.
- Busca + detalhes: Combine Obter todos os esportes com Buscar todas as entidades para construir uma única caixa de busca que retorna times filtrados por esporte.
- Branding e bandeiras: Quando você exibir times ou competições retornadas pela busca, decore com bandeiras de países usando Obter bandeira do país.
- Renderização do lado do servidor: Busque a lista de esportes no tempo de construção (ou sob demanda com cache) para acelerar o carregamento das páginas.
De ponta a ponta: da lista ao polimento da interface
1) Carregar todos os esportes
Chame o endpoint Obter todos os esportes uma vez e armazene a resposta. Use slug para links seguros para URL e id para junções de banco de dados ou marcação de análises.
2) Adicionar busca rápida
Conecte uma entrada ao endpoint Buscar todas as entidades. Debounce em 250–500 ms e armazene em cache as últimas consultas. Renderize nome, país e nome do esporte onde disponível.
3) Decore com bandeiras
Quando uma entidade incluir um país, chame Obter bandeira do país com o country_code necessário. Armazene em cache os bytes da imagem ou armazene-os na primeira requisição.
MCP: chame esta API de um agente de IA
Toda API no Zyla também pode ser chamada via o endpoint compatível com MCP, que funciona com Claude Code, Cursor, Windsurf e outros clientes MCP. Direcione seu agente ou ferramenta para:
- Endpoint: https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
Isso permite que seu agente invoque as mesmas operações da API SofaScore - Live com sua chave Zyla em ambientes que suportam o protocolo MCP. Consulte MCP para detalhes sobre a configuração do cliente. Mantenha a mesma abordagem de Autorização para chamadas HTTP diretas; dentro do MCP, forneça sua chave Zyla conforme exigido pela configuração do seu cliente MCP.
Orientações operacionais
- Autenticação: Sempre envie Authorization: Bearer YOUR_API_KEY.
- Quotas e cobrança: Modelo de assinatura + cota (não por chamada). Para sua primeira API, você pode começar com um teste de 7 dias ou 50 requisições. Sem Plano Gratuito. Verifique a lista para opções de acesso atuais.
- Tratamento de erros: Trate status não-200 de forma adequada. Não tente novamente em 4xx, exceto 429 com backoff, se aplicável.
- Observabilidade: Registre endpoint, status e latência. Para cache, registre acertos vs erros de cache para manter o volume de chamadas previsível.
Referência: Todos os três endpoints em um relance
- Obter todos os esportes
- GET https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- Params: nenhum documentado
- Retorna: array de { id, name, slug }
- Obter bandeira do país
- GET https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- Params: country_code (string, obrigatório), por exemplo, EN
- Retorna: bytes de imagem
- Buscar todas as entidades
- GET https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- Params: q (string, obrigatório), por exemplo, real madrid
- Retorna: lista de entidades correspondentes com metadados, incluindo esporte
FAQ
Como faço para autenticar requisições?
Adicione o cabeçalho Authorization: Bearer YOUR_API_KEY a cada requisição.
Há um plano gratuito?
Sem Plano Gratuito. Para sua primeira API, você pode iniciar um teste de 7 dias ou 50 requisições. Consulte a página da API para opções de acesso atuais e preços.
Com que frequência devo atualizar a lista de esportes?
A lista de esportes é relativamente estável. Armazene em cache e atualize em uma programação que se encaixe em seu aplicativo (por exemplo, diariamente) ou na implantação. Invalide manualmente se precisar de atualizações imediatas.
Posso obter imagens (como bandeiras) diretamente da API?
Sim. Use Obter bandeira do país com o country_code necessário para receber bytes de imagem bruta. Armazene em cache ou CDN essas respostas para desempenho.
Posso buscar times ou clubes?
Sim. Use Buscar todas as entidades com q para encontrar times e outras entidades. Analise os objetos de entidade retornados para renderizar nomes, slugs e informações do país.
Pronto para enviar? Crie sua conta no Zyla API Hub, em seguida, inicie seu teste e conecte os endpoints acima. Comece aqui: Iniciar teste de 7 dias na API SofaScore - Live.