Resultado final · TSE
Início › Dados › Aprenda

API de resultados · JSON

API do TSE: como pegar o resultado da eleição em JSON

Por Voto Aberto · atualizado em 27/10/2026 · fonte: Tribunal Superior Eleitoral (TSE)

Resposta curta

O resultado oficial fica em arquivos JSON públicos em resultados.tse.jus.br/oficial/ele2026/. Não precisa de cadastro nem de chave.

O endereço segue um padrão: <eleição>/dados/<uf>/<uf><município>-c0001-e<eleição com 6 dígitos>-u.json. Para presidente, a eleição 6257 é o 1º turno e a 6258, o 2º.

E a API do Portal de Dados Abertos?

O Portal de Dados Abertos do TSE usa o CKAN, que tem API própria. Para listar os arquivos de um conjunto, com endereço e data de atualização, abra https://dadosabertos.tse.jus.br/api/3/action/package_show?id=resultados-2026 (troque o final por resultados-2026-boletim-de-urna ou eleitorado-2026). Use essa API para achar o arquivo e a API de Resultados para o número da noite da apuração.

Passo a passo com os arquivos do TSE

  1. Escolha a eleição. 6257 para o 1º turno de presidente (04/10/2026) e 6258 para o 2º (25/10/2026).
  2. Pegue o código do município. A lista com código TSE (5 dígitos), código IBGE (7) e nome está em <eleição>/config/mun-e<eleição>-cm.json.
  3. Monte o endereço do resultado. br para o Brasil, sp para o estado ou sp71072 para a cidade de São Paulo. O cargo 1 (c0001) é presidente.
  4. Leia os campos. s traz as seções (ts total, st totalizadas), e o eleitorado (c comparecimento) e carg[0].agr[].par[].cand[] os candidatos, com os votos em vap.

Código pronto para copiar

# Resultado oficial da eleição de 2026 direto da API JSON do TSE (só biblioteca padrão)
import json, urllib.request

BASE = "https://resultados.tse.jus.br/oficial/ele2026"
ELEICAO = 6258  # presidente: 6257 = 1º turno, 6258 = 2º turno

def tse(caminho):
    req = urllib.request.Request(f"{BASE}/{caminho}", headers={"User-Agent": "estudo-dados-tse/1.0"})
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)

def resultado(uf="br", municipio=""):
    """uf='br' para o país; uf='sp', municipio='71072' para a cidade de São Paulo."""
    d = tse(f"{ELEICAO}/dados/{uf}/{uf}{municipio}-c0001-e{ELEICAO:06d}-u.json")
    cands = sorted((c for agr in d["carg"][0]["agr"] for par in agr["par"] for c in par["cand"]), key=lambda c: int(c["n"]))
    return {
        "atualizado": f'{d["dg"]} {d["hg"]}',
        "secoes_totalizadas": f'{d["s"]["st"]} de {d["s"]["ts"]}',
        "comparecimento": int(d["e"]["c"]),
        "votos": {f'{c["n"]} {c["nmu"]}': int(c["vap"]) for c in cands},
    }

# Lista de municípios: código TSE (5 dígitos), código IBGE (7) e nome
cfg = tse(f"{ELEICAO}/config/mun-e{ELEICAO:06d}-cm.json")
municipios = [(uf["cd"], m["cd"], m["cdi"], m["nm"]) for uf in cfg["abr"] for m in uf["mu"]]
print(len(municipios), "municípios e localidades; ex.:", municipios[0])

print(resultado())                 # Brasil
print(resultado("sp", "71072"))    # São Paulo (SP)

O código em R usa os pacotes jsonlite e data.table (install.packages(c("jsonlite", "data.table"))).

Saída do Python em 26/10/2026: Brasil com 499.248 de 499.248 seções totalizadas, 13 LULA 64.256.232 e 22 FLAVIO BOLSONARO 59.826.041 votos. O código em Python foi executado pelo Voto Aberto em 26/10/2026.

Erros comuns

Quer o dado já limpo?

O Voto Aberto publica o resultado de presidente em 2026 por município e por local de votação, com endereço e coordenadas, conferido com o total oficial do TSE. Licença CC BY 4.0.

Baixar o datasetTodos os dados

Perguntas frequentes

O TSE tem API de dados abertos?

Tem duas. O site de Resultados publica arquivos JSON por município, estado e país. O Portal de Dados Abertos usa o CKAN, cuja API (package_show) lista os arquivos de cada conjunto com endereço e data de atualização.

A API do TSE é oficial e gratuita?

Sim. São os mesmos arquivos JSON que alimentam o site de resultados do TSE. O acesso é livre, sem cadastro e sem chave.

Qual o código da eleição de presidente em 2026?

6257 para o 1º turno (04/10/2026) e 6258 para o 2º turno (25/10/2026).

Onde acho o código do município?

No arquivo de configuração mun-e006258-cm.json, que traz o código do TSE, o do IBGE e o nome de cada município.

Dá para pegar o resultado por seção nessa API?

Por seção, use os Dados Abertos do TSE (arquivo votacao_secao) ou os boletins de urna. A API de resultados agrega por município, estado e país.

Outros guias

Resultado por seção eleitoral: como ver e baixarDados Abertos · votação por seçãoBoletim de urna: o que é, como consultar e baixarBoletim de urna · BULocais de votação 2026: lista com endereço e coordenadasDados Abertos · eleitorado por local de votação

Fontes: Resultados — TSE · Configuração de municípios (2º turno). Como citar: “Voto Aberto, com dados do TSE”.

Às Claras · Leia também

Todos os textos do Às Claras →