Documentação da API

Políticos BR API

API REST pública e gratuita com dados de 70.834 políticos em mandato no Brasil — prefeitos, vereadores, senadores e deputados. Sem autenticação. Sem custo. Pronto para usar.

Pública & gratuita Sem autenticação CORS habilitado Dados do TSE 2024
70.834
Políticos em mandato
5.568
Municípios cobertos
36
Partidos com dados
11
Endpoints disponíveis

URL Base

Todas as requisições devem usar HTTPS. Não há versionamento na URL — a API é estável.

BASE URL https://maquinapublica.com.br/api
CORS habilitado — você pode chamar a API diretamente do seu frontend em fetch() sem precisar de proxy ou backend.

Autenticação

🔓 Nenhuma autenticação necessária. Não há API key, token ou cadastro. Basta fazer a requisição.

A API é inteiramente pública. Os dados são oficiais do TSE (dadosabertos.tse.jus.br) e não há restrição de uso para fins de informação e pesquisa.

Formato das respostas

Todas as respostas são em JSON com charset UTF-8. O header Content-Type: application/json é sempre enviado.

📄 Os endpoints de listagem retornam um objeto com total, pagina, por_pagina e resultados (array). Os de detalhe retornam o objeto diretamente.

Em caso de erro, a API retorna o código HTTP adequado (404, 422, 500) com um JSON {"detail": "mensagem"}.

Endpoints

GET /politicos Busca paginada com filtros

Busca de políticos com filtros opcionais combinados. Retorna resultados paginados.

Parâmetros

ParâmetroTipoObrigatórioDescrição
nomestringopcionalBusca parcial por nome civil ou de urna, sem distinguir acentos
municipiostringopcionalNome do município (busca parcial)
ufstringopcionalSigla do estado: SP, RJ, MG…
cargostringopcionalPREFEITO · VICE-PREFEITO · VEREADOR · SENADOR · DEPUTADO FEDERAL · DEPUTADO ESTADUAL · DEPUTADO DISTRITAL
partidostringopcionalSigla do partido: PT, PL, MDB…
paginaintegeropcionalNúmero da página (padrão: 1)
por_paginaintegeropcionalItens por página (padrão: 20, máx: 200)

Exemplos de código

cURL
JavaScript
Python
# Prefeitos do PT em São Paulo
curl "https://maquinapublica.com.br/api/politicos?cargo=PREFEITO&partido=PT&uf=SP"
const params = new URLSearchParams({
  cargo: 'PREFEITO',
  partido: 'PT',
  uf: 'SP',
  por_pagina: 50
});

const res = await fetch(
  `https://maquinapublica.com.br/api/politicos?${params}`
);
const data = await res.json();
console.log(data.total, 'políticos encontrados');
console.log(data.resultados);
import requests

res = requests.get(
    "https://maquinapublica.com.br/api/politicos",
    params={
        "cargo": "PREFEITO",
        "partido": "PT",
        "uf": "SP",
        "por_pagina": 50
    }
)
data = res.json()
print(data["total"], "políticos")
for p in data["resultados"]:
    print(p["nome_urna"], "-", p["municipio"])
🧪 Testar agora
GET /politicos/{id} Detalhes de um político

Retorna todos os campos de um político pelo seu id numérico retornado em /politicos.

🧪 Testar agora
GET /partidos Lista de partidos com total de eleitos

Retorna todos os partidos cadastrados com sigla, nome, número eleitoral e total de eleitos. Sem paginação — são 36 partidos.

🧪 Testar agora
GET /partidos/{sigla} Composição completa de um partido

Retorna eleitos por cargo, presidente e diretoria nacional vigente de um partido.

🧪 Testar agora
GET /ranking Ranking partidos × Fundo Eleitoral

Ranking gamificado cruzando total de eleitos com o Fundo Eleitoral (FEFC) recebido em 2022 e 2024.

ParâmetroTipoValores
ordenar_porstringeleitos · fundo_total · fundo_2024 · fundo_2022 · eficiencia
🧪 Testar agora
GET /municipios Busca de municípios

Lista municípios com seus códigos TSE. Aceita filtro por nome e UF.

🧪 Testar agora
GET /municipios/{codigo_tse}/politicos Todos os eleitos de um município

Retorna prefeito, vice-prefeito e vereadores de um município pelo código TSE (use /municipios para obter o código).

🧪 Testar agora
GET /despesas-municipais Gasto total das 26 capitais

Gasto total executado (despesa empenhada) de cada uma das 26 capitais estaduais em 2023. Fonte: SICONFI / Tesouro Nacional. Não é salário de ninguém — é o orçamento inteiro da prefeitura.

🧪 Testar agora
GET /cargos Lista de cargos com contagem

Lista os cargos disponíveis com o total de políticos em cada um. Útil para popular filtros.

🧪 Testar agora
GET /stats Estatísticas gerais da base

Total de políticos por cargo, top 10 partidos, total por UF e número de municípios cobertos.

🧪 Testar agora

Exemplos completos

JavaScript — buscar todos os prefeitos de um estado

JavaScript
// Busca todos os prefeitos do RJ (até 200 por vez)
async function prefeitos(uf) {
  const base = 'https://maquinapublica.com.br/api';
  let pagina = 1, todos = [];

  while (true) {
    const res = await fetch(
      `${base}/politicos?cargo=PREFEITO&uf=${uf}&pagina=${pagina}&por_pagina=200`
    );
    const data = await res.json();
    todos = todos.concat(data.resultados);

    if (todos.length >= data.total) break;
    pagina++;
  }
  return todos;
}

const lista = await prefeitos('RJ');
console.log(`${lista.length} prefeitos no RJ`);

Python — exportar CSV de vereadores

Python
import requests, csv

BASE = "https://maquinapublica.com.br/api"

def buscar_tudo(**params):
    pagina, todos = 1, []
    while True:
        r = requests.get(f"{BASE}/politicos",
            params={**params, "pagina": pagina, "por_pagina": 200}
        ).json()
        todos.extend(r["resultados"])
        if len(todos) >= r["total"]: break
        pagina += 1
    return todos

# Exporta todos os vereadores de SP para CSV
vereadores = buscar_tudo(cargo="VEREADOR", uf="SP")
campos = ["nome_urna", "partido_sigla", "municipio", "genero", "grau_instrucao"]

with open("vereadores_sp.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.DictWriter(f, fieldnames=campos, extrasaction="ignore")
    w.writeheader()
    w.writerows(vereadores)

print(f"{len(vereadores)} vereadores exportados")

cURL — exemplos rápidos

cURL
# Todos os senadores do Brasil
curl "https://maquinapublica.com.br/api/politicos?cargo=SENADOR&por_pagina=30"

# Prefeitos eleitos pelo PL
curl "https://maquinapublica.com.br/api/politicos?cargo=PREFEITO&partido=PL&por_pagina=200"

# Ranking de eficiência (menor R$/eleito)
curl "https://maquinapublica.com.br/api/ranking?ordenar_por=eficiencia"

# Composição do MDB
curl "https://maquinapublica.com.br/api/partidos/MDB"

# Vereadores de Campinas (código TSE: 62910)
curl "https://maquinapublica.com.br/api/municipios/62910/politicos"

# Gastos das capitais ordenados
curl "https://maquinapublica.com.br/api/despesas-municipais"

Sobre os dados

📊 Todos os dados vêm de fontes oficiais do governo federal, baixadas em agosto de 2026.
DatasetFonteCobertura
Políticos eleitosTSE — dadosabertos.tse.jus.brEleições 2022 e 2024
Diretoria partidáriaTSE — órgão_partidario.zipVigente 2026
Fundo Eleitoral (FEFC)TSE — fefc_fp_2024.zip / fefc_fp_2022.zip2022 e 2024
Gastos das capitaisSICONFI / Tesouro NacionalExercício 2023
⚠️ Os dados refletem a situação na eleição. Trocas de partido após a posse não são capturadas automaticamente.

Swagger interativo

Além desta documentação, a API disponibiliza a interface Swagger gerada automaticamente pelo FastAPI, com todos os schemas e possibilidade de testar cada endpoint.

Abrir Swagger UI →   Abrir ReDoc →