Você precisa de uma maneira confiável de listar todos os esportes que seu aplicativo pode cobrir, agora mesmo—não uma semana a partir de agora. Ao final deste guia, você será capaz de buscar todos os esportes disponíveis com uma única solicitação, renderizá-los em sua navegação ou configurações e aumentar sua interface com busca de times e bandeiras de países usando a mesma assinatura e chave de API do Zyla API Hub.
O que esta API faz e quando usá-la
A SofaScore - Live API no Zyla API Hub fornece metadados esportivos e utilitários de busca que você pode conectar diretamente a um placar, companheiro de apostas, aplicativo de notícias ou pipeline de dados. Neste artigo, focaremos em três endpoints que você pode implementar hoje:
- Obter todos os esportes: recupere uma lista de todos os esportes disponíveis com id, nome e slug.
- Buscar todas as entidades: encontre entidades SofaScore (por exemplo, times) por string de consulta.
- Obter bandeira do país: baixe os bytes da imagem da bandeira do país para exibição em sua interface.
Todos os exemplos usam o roteamento do Zyla API Hub e um único cabeçalho de Autorização. Sem hosts personalizados, sem contas separadas por API. Se você é novo no marketplace, pode explorar mais de 10.000 APIs públicas em zylalabs.com com uma conta e uma chave de API.
Começando no Zyla API Hub
Abra a listagem da SofaScore - Live API, inscreva-se e obtenha sua chave:
- Visite a página da API: Inicie o teste de 7 dias na SofaScore - Live API.
- Clique em Inscrever-se (ou Iniciar Teste Gratuito quando disponível) para obter sua chave de API.
- Use Authorization: Bearer YOUR_API_KEY em cada solicitação para os endpoints abaixo.
A cobrança no Zyla é por assinatura + cota (não por chamada). Para a primeira API que você adicionar, há um teste de 7 dias ou 50 solicitações. Verifique a página da API para opções de acesso e preços atuais.
Endpoint: Obter todos os esportes
Este é o ponto de entrada para construir seu seletor de esportes, alternadores de recursos ou tabelas de roteamento. Ele retorna um array de esportes, cada um com um id, nome e slug. Nenhum parâmetro de solicitação é necessário.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- Cabeçalhos: Authorization: Bearer YOUR_API_KEY
- Parâmetros de solicitação: nenhum
exemplo cURL
curl -s -X GET "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports" \
-H "Authorization: Bearer YOUR_API_KEY"
Resposta de 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": "Sinuca",
"slug": "sinuca"
},
{
"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"
}
]
Campos que você realmente usará:
- id: identificador numérico para o esporte. Armazene isso para buscas relacionais.
- name: nome exibido para menus e rótulos.
- slug: token estável e amigável para URL para construir rotas e alternadores de recursos.
Exemplo em Python: buscar, classificar e mapear por 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() # lista de {id, name, slug}
# Classificar alfabeticamente para um menu
sports_sorted = sorted(sports, key=lambda s: s["name"].lower())
# Construir mapas auxiliares
by_id = {s["id"]: s for s in sports_sorted}
by_slug = {s["slug"]: s for s in sports_sorted}
# Exemplo de uso
print("Esportes disponíveis:", ", ".join(s["name"] for s in sports_sorted))
print("id do Futebol:", by_slug["futebol"]["id"])
Endpoint: Buscar todas as entidades
Use isso quando precisar alimentar uma barra de busca para pular rapidamente para um time, competição ou entidade relacionada da SofaScore. Ele pesquisa entre entidades por string de consulta e retorna objetos correspondentes.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- Cabeçalhos: Authorization: Bearer YOUR_API_KEY
- Parâmetros de solicitação:
- q (string, obrigatório): a consulta de busca (por exemplo, real madrid)
exemplo cURL
Este endpoint retorna correspondências que incluem metadados da entidade, como id, nome, slug e informações do país. Use-o para preencher sugestões de autocomplete após o usuário escolher um esporte da sua lista de “todos os esportes”.
Endpoint: Obter bandeira do país
Ao renderizar contexto a nível de país (por exemplo, o país de um time), você pode solicitar uma imagem da bandeira pelo código do país e usar os bytes diretamente em sua interface ou camada de cache.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- Cabeçalhos: Authorization: Bearer YOUR_API_KEY
- Parâmetros de solicitação:
- country_code (string, obrigatório): por exemplo, EN
exemplo cURL
Resposta de exemplo
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…
Use o corpo da resposta como bytes da imagem. Armazene e sirva via seu CDN ou converta para o formato que seu frontend espera.
Padrões de integração do mundo real
- Construa um seletor de esportes: busque todos os esportes uma vez na inicialização do aplicativo, classifique por nome e renderize como um dropdown ou controle segmentado.
- Alternadores de recursos por esporte: use o slug para alternar módulos específicos de esportes (por exemplo, habilite “hoquei-no-gelo” quando os dados estiverem disponíveis).
- Rotas amigáveis para SEO: gere URLs como /sports/futebol/ ou /sports/mma/ a partir do campo slug.
- Autocomplete para times: quando o usuário seleciona um esporte, conecte sua caixa de busca para chamar Buscar todas as entidades para consultas como “real madrid”.
- Emblemas de país: use Obter bandeira do país para exibir bandeiras ao lado de times, ligas ou entradas de leaderboard.
Notas operacionais que economizam tempo
- Cache: a lista de todos os esportes é relativamente estável. Armazene em cache por horas ou um dia em seu backend. Mantenha uma estratégia simples de invalidação ao implantar.
- Localização: a carga útil de exemplo mostra nomes em inglês. Se sua interface suporta múltiplos idiomas, planeje mapear strings de exibição separadamente do slug.
- Identificadores: persista tanto o id quanto o slug. Use o id para junções no backend; use o slug para URLs e roteamento de recursos.
- Tratamento de erros: trate não-200s como transitórios por padrão e implemente uma nova tentativa com backoff para leituras. Superfície erros com o id da solicitação em seus logs.
- Apenas cabeçalhos: esses endpoints usam Authorization: Bearer YOUR_API_KEY. Não envie parâmetros de corpo extras em GETs.
- Cotas: Zyla usa assinatura + cota. Verifique a listagem para seus limites atuais e uso esperado. Evite polling desnecessário armazenando em cache.
Fluxo mínimo de ponta a ponta
- Na inicialização do servidor, solicite Obter todos os esportes e armazene o array em cache.
- Exponha a lista em cache para seu frontend construir a navegação, usando slug para roteamento e id para referências internas.
- Na busca do usuário, chame Buscar todas as entidades com q definido como a entrada do usuário e renderize sugestões.
- Quando precisar de visuais do país, chame Obter bandeira do país com o country_code apropriado e armazene os bytes.
Chamando de agentes de IA via MCP
Se você está prototipando em um cliente compatível com MCP (por exemplo, Claude Code, Cursor, Windsurf), pode chamar as mesmas APIs via o endpoint MCP do Zyla. Direcione sua ferramenta para:
Forneça sua chave de API do Zyla onde seu cliente espera. Seu agente pode então invocar os endpoints documentados da SofaScore - Live API usando o mesmo token bearer e URLs mostrados acima. Isso é útil para scripts de estruturação que buscam esportes, verificam slugs e geram arquivos de configuração.
Lista de verificação de testes
- GET bem-sucedido para get-all-sports retorna um array; confirme que cada item tem id, nome, slug.
- Ordem de classificação: gerencie sua própria classificação; a API não garante ordem.
- Segurança do slug: slugs são amigáveis para URL; valide se seu roteador lida com hífens.
- Barra de busca: debounce as teclas e chame search-all-entities com q após 200–300ms.
- Imagens de bandeira: trate a resposta como bytes de imagem; sirva via Content-Type apropriado ao retornar do seu backend.
Por que o Zyla ajuda você a entregar mais rápido
Com o Zyla API Hub, você reutiliza a mesma conta, chave e modelo de cobrança em milhares de APIs. Isso significa que você pode conectar endpoints adicionais de esportes ou jogos mais tarde sem refazer a autenticação ou aquisição. Explore o catálogo em zylalabs.com e escale além de uma única integração quando estiver pronto.
FAQ
Como faço para autenticar?
Adicione o cabeçalho Authorization: Bearer YOUR_API_KEY a cada solicitação.
Existem parâmetros de solicitação para Obter todos os esportes?
Não. O endpoint não documenta nenhum parâmetro de solicitação; apenas envie o GET com seu cabeçalho de autorização.
Quais campos de resposta devo armazenar?
No mínimo: id, nome, slug. Use id para referências internas e slug para URLs e alternadores de recursos.
Posso armazenar em cache a lista de esportes?
Sim. É uma boa ideia armazenar em cache para reduzir chamadas e melhorar o tempo de inicialização. Escolha uma expiração que se encaixe em seu ritmo de lançamento.
Como exibo uma bandeira de país?
Chame Obter bandeira do país com o parâmetro country_code obrigatório e use os bytes da imagem retornada em sua interface ou sirva-os de seu CDN.
Pronto para implementar sua lista de esportes e entregar esta semana? Inscreva-se e obtenha sua chave na página da SofaScore - Live API: Inicie o teste de 7 dias na SofaScore - Live API.