Tabela de classificação: um endpoint, a tabela inteira

Publicado em , atualizado em .

A tabela é o texto sagrado do pontos corridos — título, G-4 e Z-4 se decidem nela. Veja como pegar posição, pontos, saldo, aproveitamento e variação em uma chamada.

O documento mais lido do futebol brasileiro

O modelo de pontos corridos chegou ao Brasileirão em 2003 e trouxe junto uma obsessão nacional: a tabela. Trinta e oito rodadas, vinte clubes, e uma lista ordenada que resume nove meses de campeonato em vinte linhas.

Nenhum outro dado do futebol carrega tanto significado por byte. As quatro primeiras posições valem Libertadores. As quatro últimas valem rebaixamento — e no Brasil isso significa orçamento cortado, elenco desmontado e um ano inteiro na Série B. Entre esses dois extremos existe a zona morna, onde os clubes brigam por vaga na Sul-Americana e por uma cota de TV que muda o planejamento de 2027.

Por isso a tabela é o primeiro lugar onde o torcedor olha no domingo à noite, e por isso ela é o dado mais consultado de qualquer produto de futebol. Um app sem tabela não é um app de futebol.

E por que ela é mais difícil do que parece

Montar uma tabela parece trivial: some três por vitória, um por empate, ordene. Na prática, a coisa complica rápido.

Os critérios de desempate importam mais do que a soma: número de vitórias vem antes de saldo de gols, saldo vem antes de gols marcados, e o confronto direto entra em algumas competições e não em outras. Jogos adiados por convocação, chuva ou decisão de tribunal deixam clubes com número diferente de partidas — e aí só o aproveitamento compara de verdade. Punições podem tirar pontos depois do jogo já ter terminado.

Cada uma dessas regras é um bug esperando acontecer no seu código. A API já resolve todas antes de te entregar a lista.

A tabela na API

É uma chamada só:

curl https://api.dadosfutebol.com.br/v1/campeonatos/3/tabela \
  -H "Authorization: Bearer SUA_CHAVE_AQUI"

Cada linha traz o pacote completo de estatísticas do time na competição:

{
  "data": {
    "campeonato_id": 3,
    "campeonato_nome": "Brasileirão Série A",
    "temporada": "2026",
    "classificacao": [
      {
        "posicao": 1,
        "time": {
          "id": 2,
          "nome": "Palmeiras",
          "sigla": "PAL",
          "escudo_url": "https://assets.dadosfutebol.com.br/escudos/palmeiras.png"
        },
        "pontos": 47,
        "jogos": 21,
        "vitorias": 14,
        "empates": 5,
        "derrotas": 2,
        "gols_pro": 38,
        "gols_contra": 16,
        "saldo": 22,
        "aproveitamento": 74.6,
        "variacao_posicao": 0
      }
    ]
  }
}

Campos que economizam código

  • aproveitamento já vem calculado (pontos conquistados ÷ disputados) — o Palmeiras lidera com 74,6%. É o campo que salva a comparação quando os clubes têm número diferente de jogos.
  • variacao_posicao compara com a rodada anterior: positivo subiu, negativo caiu. É o que alimenta aquelas setinhas verdes e vermelhas.
  • escudo_url aponta para o nosso próprio CDN de assets — pode usar direto no <img>, com CORS liberado.

Atualização

A tabela é recalculada automaticamente conforme os jogos terminam — e durante as rodadas ela reflete os resultados já encerrados. O cache do endpoint é de 60 segundos; para um site ou app, consultar a cada minuto te mantém em dia sem queimar cota.

Grupos e fases

Em campeonatos com fase de grupos, a resposta traz o bloco grupos com uma classificação por grupo. E cada fase pode ser consultada isoladamente em GET /v1/campeonatos/{id}/fases/{faseId}/tabela — útil na Libertadores, onde a fase de grupos convive com o mata-mata.

Quer saber quem está fazendo os gols que movem essa tabela? Confira a artilharia.