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.
URL Base
Todas as requisições devem usar HTTPS. Não há versionamento na URL — a API é estável.
fetch() sem precisar de proxy ou backend.
Autenticaçã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.
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
Busca de políticos com filtros opcionais combinados. Retorna resultados paginados.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| nome | string | opcional | Busca parcial por nome civil ou de urna, sem distinguir acentos |
| municipio | string | opcional | Nome do município (busca parcial) |
| uf | string | opcional | Sigla do estado: SP, RJ, MG… |
| cargo | string | opcional | PREFEITO · VICE-PREFEITO · VEREADOR · SENADOR · DEPUTADO FEDERAL · DEPUTADO ESTADUAL · DEPUTADO DISTRITAL |
| partido | string | opcional | Sigla do partido: PT, PL, MDB… |
| pagina | integer | opcional | Número da página (padrão: 1) |
| por_pagina | integer | opcional | Itens por página (padrão: 20, máx: 200) |
Exemplos de código
# 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"])
Retorna todos os campos de um político pelo seu id numérico retornado em /politicos.
Retorna todos os partidos cadastrados com sigla, nome, número eleitoral e total de eleitos. Sem paginação — são 36 partidos.
Retorna eleitos por cargo, presidente e diretoria nacional vigente de um partido.
Ranking gamificado cruzando total de eleitos com o Fundo Eleitoral (FEFC) recebido em 2022 e 2024.
| Parâmetro | Tipo | Valores |
|---|---|---|
| ordenar_por | string | eleitos · fundo_total · fundo_2024 · fundo_2022 · eficiencia |
Lista municípios com seus códigos TSE. Aceita filtro por nome e UF.
Retorna prefeito, vice-prefeito e vereadores de um município pelo código TSE (use /municipios para obter o código).
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.
Lista os cargos disponíveis com o total de políticos em cada um. Útil para popular filtros.
Total de políticos por cargo, top 10 partidos, total por UF e número de municípios cobertos.
Exemplos completos
JavaScript — buscar todos os prefeitos de um estado
// 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
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
# 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
| Dataset | Fonte | Cobertura |
|---|---|---|
| Políticos eleitos | TSE — dadosabertos.tse.jus.br | Eleições 2022 e 2024 |
| Diretoria partidária | TSE — órgão_partidario.zip | Vigente 2026 |
| Fundo Eleitoral (FEFC) | TSE — fefc_fp_2024.zip / fefc_fp_2022.zip | 2022 e 2024 |
| Gastos das capitais | SICONFI / Tesouro Nacional | Exercício 2023 |
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 →