Você precisa implementar uma integração esportiva que possa: listar todos os esportes suportados, pesquisar equipes/ligas/jogadores pelo nome e renderizar bandeiras de países sem precisar procurar ativos de imagem. Ao final deste guia, você chamará o SofaScore - Live API no Zyla API Hub para fazer exatamente isso, com requisições copiáveis que você pode colocar em produção esta semana.
O que esta API faz e quando usá-la
O SofaScore - Live API no Zyla API Hub fornece três capacidades principais que você pode integrar em placares, fluxos de descoberta e componentes de UI:
- Obter todos os esportes: enumerar esportes suportados (id, nome, slug) para inicialização do aplicativo e filtros.
- Pesquisar todas as entidades: consultar entidades do SofaScore (por exemplo, equipes) por texto livre para alimentar barras de pesquisa e autocompletar.
- Obter bandeira do país: buscar bytes de imagem bruta para uma bandeira de país, útil ao mostrar a nacionalidade de uma equipe ou jogador.
É entregue através de uma única assinatura e chave do Zyla, com um cabeçalho de Autorização consistente em todos os endpoints. O Zyla hospeda mais de 10.000 APIs públicas por trás de uma conta e uma chave de API, para que você possa adicionar mais dados esportivos e de jogos depois sem reestruturar os fluxos de autenticação. Explore o catálogo em zylalabs.com.
Começando no Zyla API Hub
Abra a página do SofaScore - Live API no Zyla API Hub e assine. A primeira API na sua conta inclui um teste de 7 dias ou 50 requisições, e a cobrança utiliza um modelo de assinatura + cota (não pago por chamada). Para opções de acesso e preços atuais, verifique a página da API diretamente. Após assinar, você receberá uma chave de API.
Todas as requisições abaixo incluem este cabeçalho:
- Autorização: Bearer SUA_CHAVE_API
Endpoints que você pode integrar hoje
1) Obter todos os esportes
Use este endpoint para preencher uma lista estática de esportes para navegação, filtros ou integração. Ele retorna um array de esportes com id, nome e slug.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- Parâmetros: nenhum documentado
- Auth: Autorização: Bearer SUA_CHAVE_API
cURL (exemplo oficial):
curl -s -X GET "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports" \
-H "Autorização: Bearer SUA_CHAVE_API"
Resposta 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": "Voleibol de praia",
"slug": "voleibol-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 você realmente usará:
- id: identificador numérico estável por esporte (armazenar no DB; usar para filtros).
- nome: rótulo legível por humanos (exibir na UI).
- slug: identificador amigável para URL (usar para rotas ou chaves canônicas).
Exemplo em Python (requests):
import requests
API_KEY = "SUA_CHAVE_API"
url = "https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports"
headers = {"Autorização": f"Bearer {API_KEY}"}
resp = requests.get(url, headers=headers, timeout=10)
resp.raise_for_status()
sports = resp.json()
# Construir um mapeamento e imprimir um menu ordenado
slug_by_id = {s["id"]: s["slug"] for s in sports}
menu = [f'{s["id"]}: {s["name"]} ({s["slug"]})' for s in sports]
print("\n".join(sorted(menu, key=lambda x: x.lower())))
# Exemplo: pegar o id do esporte futebol
football_id = next((s["id"] for s in sports if s["slug"] == "futebol"), None)
print("football_id =", football_id)
2) Pesquisar todas as entidades
Use isso para pesquisar entidades do SofaScore por uma string de consulta de texto livre (por exemplo, nomes de equipes). Isso é ideal para autocompletar e recursos de “pular para a equipe”.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- Parâmetros:
- q (string, obrigatório): o termo de pesquisa. Exemplo: real madrid
- Auth: Autorização: Bearer SUA_CHAVE_API
cURL:
Exemplo de resposta (trecho conforme fornecido pelo hub):
[{"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":"Spain","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":"Football","slug":"football"}},"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":"Spain","slug":"spain","alpha2":…
Notas para implementadores:
- Leia entity.id, entity.name, entity.slug e type para categorizar resultados (por exemplo, equipe vs. outros tipos).
- A resposta inclui URLs de imagem que você pode usar como proxy, se necessário; use como está de acordo com sua UI.
- Para UIs rápidas, debounce a consulta e cache resultados recentes indexados por q.
3) Obter bandeira do país
Busque bytes de imagem da bandeira do país. Útil para mostrar a bandeira de um jogador ou equipe sem manter seu próprio repositório de ativos.
- Método: GET
- URL: https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- Parâmetros:
- country_code (string, obrigatório): EN
- Auth: Autorização: Bearer SUA_CHAVE_API
cURL:
Exemplo de resposta (trecho de bytes de imagem):
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAELUExURUdwTN/f37QVJd7e3t3d3d/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…
Dicas de implementação:
- A resposta é os dados da imagem; armazene ou transmita para seu frontend conforme necessário.
- Cache bandeiras em seu CDN ou repositório de objetos para evitar downloads repetidos.
Juntando tudo: padrões comuns de integração
- Bootstrap de filtros: chame Obter todos os esportes durante a inicialização do aplicativo, armazene id/nome/slug e exponha a lista em um dropdown.
- Barras de pesquisa: na entrada do usuário, chame Pesquisar todas as entidades com q. Debounce de 250–400 ms, cache por consulta para reduzir chamadas.
- Bandeiras nacionais: ao exibir um cartão de equipe ou jogador, chame Obter bandeira do país uma vez por código e cache o resultado; reutilize do cache entre páginas.
Autenticação e higiene de requisições
- Envie Autorização: Bearer SUA_CHAVE_API em cada requisição.
- Trate a lista de esportes como relativamente estática; atualize-a ocasionalmente em segundo plano e armazene localmente.
- Construa caminhos básicos de tratamento de erros: timeouts de rede, status não-200 e arrays vazios de pesquisa.
Chame esta API de agentes de IA via MCP
Se você usar agentes de codificação de IA (por exemplo, IDEs e ferramentas compatíveis com MCP), você pode chamar os mesmos endpoints através da ponte MCP do Zyla. Aponte seu cliente para o endpoint MCP e forneça sua chave de API do Zyla na string de consulta. Para detalhes, veja MCP. O agente pode então fazer as mesmas requisições GET mostradas acima, usando as URLs do hub e o cabeçalho de Autorização.
Notas operacionais que economizam tempo
- Idempotência: os endpoints documentados são GETs; eles são seguros para tentar novamente em falhas transitórias.
- Cache do cliente: cache Obter todos os esportes na memória e persista em um repositório de dados leve; atualize na inicialização do aplicativo.
- Manipulação de dados binários: o endpoint da bandeira retorna bytes de imagem. Ao fazer proxy para navegadores, defina cabeçalhos apropriados para seu ambiente para que o cliente possa renderizar ou baixar conforme pretendido.
- Planejamento de uso: as APIs do Zyla usam assinatura + cota. A primeira API na sua conta inclui um teste de 7 dias ou 50 requisições; verifique sua cota atual na página da API antes de realizar testes de carga.
Exemplos detalhados
Pesquisa: moldando resultados para uma lista de sugestões
Após chamar o endpoint de pesquisa, extraia uma projeção leve por resultado:
- id: id numérico da entidade
- label: entity.name
- type: tipo (por exemplo, equipe) para categorizar resultados
- sport: entity.sport.slug para escopo
- country: entity.country.alpha2 quando presente; se você precisar de uma bandeira, chame Obter bandeira do país com o parâmetro country_code necessário
Essa projeção é compacta e mantém sua UI rápida.
Bandeiras: servindo para o navegador
Quando seu backend recebe os bytes de imagem de Obter bandeira do país, você pode:
- Armazenar os bytes como um PNG em armazenamento de objetos e cache em CDN por uma chave normalizada (por exemplo, bandeira-EN.png).
- Retornar um URI de dados para seu frontend se você quiser uma renderização de zero roundtrip; note as implicações de tamanho para payloads HTML.
Referência completa
Obter todos os esportes
- GET https://zylalabs.com/api/12787/sofascore-live-api/25080/get-all-sports
- Params: nenhum documentado
- Auth: Autorização: Bearer SUA_CHAVE_API
Pesquisar todas as entidades
- GET https://zylalabs.com/api/12787/sofascore-live-api/25082/search-all-entities
- Params:
- q (string, obrigatório): a consulta de pesquisa
- Auth: Autorização: Bearer SUA_CHAVE_API
Obter bandeira do país
- GET https://zylalabs.com/api/12787/sofascore-live-api/31197/get-country-flag
- Params:
- country_code (string, obrigatório): EN
- Auth: Autorização: Bearer SUA_CHAVE_API
FAQ
Como autentico requisições?
Inclua o cabeçalho: Autorização: Bearer SUA_CHAVE_API em cada chamada para as URLs do hub.
Há um plano gratuito?
O modelo é assinatura + cota. Para sua primeira API no Zyla, você recebe um teste de 7 dias ou 50 requisições. Verifique a página da API para opções de acesso e preços atuais.
Posso paginar resultados da pesquisa?
Detalhes de paginação não estão documentados aqui. Use o endpoint de pesquisa fornecido e trate o array retornado como está.
Qual formato o endpoint da bandeira retorna?
Ele retorna bytes de imagem. O exemplo mostra um fluxo de bytes semelhante a PNG. Armazene ou sirva conforme apropriado para seu aplicativo.
Quais campos devo persistir da lista de esportes?
Persista id, nome e slug. id é uma boa chave estável; nome e slug são usados na UI e no roteamento.
Pronto para integrar isso ao seu aplicativo? Crie uma conta gratuita no Zyla, obtenha sua chave e comece a construir com o SofaScore - Live API. Comece aqui: Comece o teste de 7 dias no SofaScore - Live API. Você sempre pode explorar mais APIs de esportes e jogos depois em zylalabs.com.