Politica Electoral

API de dados eleitorais do mundo democrático: partidos políticos, perfis ideológicos e programas eleitorais.

Documentação

Política Electoral — Servidor MCP

Uma API de dados políticos que cobre o mundo democrático: partidos, políticos, figuras públicas, eventos, votações no congresso, instituições, procedimentos parlamentares e conceitos políticos. Disponível como um servidor MCP (Model Context Protocol) via HTTP para integrações com agentes de IA, além de uma API REST em /api/v1/* e versões Markdown cruas por página ({any-page}.md).

Todo o conteúdo está em espanhol. (Um piloto em inglês existiu até agosto de 2026; URLs legadas de perfil /en/ agora retornam 301 para sua versão em espanhol, e qualquer outra URL /en/ retorna 404.)


Endpoints

URLDescrição
POST /mcp-serverEndpoint principal JSON-RPC 2.0
GET /mcp-serverInformações do servidor
GET /.well-known/mcp.jsonDescoberta MCP
GET /llms.txtÍndice de conteúdo amigável para LLM (URLs em ES + EN)
GET /openapi.jsonEspecificação OpenAPI 3.1 para a API REST
GET /api/docsDocumentação interativa da API REST (Scalar)

Protocolo

MCP 2024-11-05 via HTTP (JSON-RPC 2.0).

Requisição mínima:

POST /mcp-server
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_parties_list",
    "arguments": { "country": "es" }
  }
}

Handshake completo:

# 1. Initialize
curl -X POST https://www.politicaelectoral.com/mcp-server \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'

# 2. Notify ready (no response expected)
curl -X POST https://www.politicaelectoral.com/mcp-server \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'

# 3. List available tools
curl -X POST https://www.politicaelectoral.com/mcp-server \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Códigos de país

O argumento country é sempre um código ISO 3166-1 alpha-2.

CódigoPaís
esEspanha
arArgentina
mxMéxico
clChile
coColômbia
uyUruguai
pePeru
veVenezuela
brBrasil
usEstados Unidos
gbGrã-Bretanha
frFrança
deAlemanha
itItália
ptPortugal
nlPaíses Baixos
seSuécia
plPolônia
huHungria
grGrécia
ilIsrael
euUnião Europeia

Ferramentas

O servidor expõe 25 ferramentas, agrupadas por finalidade:

Todos os exemplos de ferramentas abaixo usam o método JSON-RPC tools/call:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "<TOOL>", "arguments": { ... } }
}

Descoberta e busca

summarize_country

Resumo político de alto nível: chefe de governo, principais partidos, últimas/próximas eleições, eventos recentes, totais por tipo de recurso.

{ "name": "summarize_country", "arguments": { "country": "es" } }

search

Busca de texto livre entre recursos (políticos, partidos, figuras públicas, eventos, votações, instituições, procedimentos, conceitos), classificada por pontuação.

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
qstringsimConsulta de texto livre (≥ 2 caracteres)
limitintegernãoMáximo de resultados (1–50, padrão 20)
{ "name": "search", "arguments": { "country": "es", "q": "sanchez", "limit": 5 } }

Partidos e políticos

get_parties_list

Lista de partidos políticos em um país.

{ "name": "get_parties_list", "arguments": { "country": "es" } }

get_party_profile

Perfil ideológico e histórico de um partido (Markdown).

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
partystringsimSlug do partido (ex.: pp, psoe, vox)
{ "name": "get_party_profile", "arguments": { "country": "es", "party": "psoe" } }

get_politicians_list

Lista de políticos em um país, opcionalmente filtrada por partido.

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
partystringnãoSlug do partido para filtrar
{ "name": "get_politicians_list", "arguments": { "country": "es", "party": "psoe" } }

get_politician_profile

Perfil detalhado de um político: trajetória, função atual e posicionamento ideológico (Markdown).

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
politicianstringsimSlug do político (ex.: pedro-sanchez)
{ "name": "get_politician_profile", "arguments": { "country": "es", "politician": "pedro-sanchez" } }

compare_parties

Comparação lado a lado de dois partidos do mesmo país.

{ "name": "compare_parties", "arguments": { "country": "es", "party_a": "pp", "party_b": "psoe" } }

compare_politicians

Comparação lado a lado de dois políticos.

{ "name": "compare_politicians", "arguments": { "country": "es", "politician_a": "pedro-sanchez", "politician_b": "alberto-nunez-feijoo" } }

Eleições

get_elections_list

Lista de eleições disponíveis para um país, com tipo (generales, autonomicas, europeas) e data.

{ "name": "get_elections_list", "arguments": { "country": "es" } }

get_election_regions

Lista de regiões (comunidades autônomas, estados, etc.) disponíveis para uma eleição específica.

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
electionstringsimSlug da eleição (ex.: generales-2023, autonomicas-2024)
{ "name": "get_election_regions", "arguments": { "country": "es", "election": "generales-2023" } }

get_election_region

Página de visão geral para uma eleição + região específica: contexto, partidos participantes, dados-chave.

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
electionstringsimSlug da eleição
regionstringsimSlug da região (ex.: nacional, cataluna, madrid)
{ "name": "get_election_region", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }

get_election_region_parties

Lista de partidos com conteúdo eleitoral para uma eleição + região específica.

{ "name": "get_election_region_parties", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }

get_election_region_party

Resumo do programa eleitoral de um partido em uma eleição + região específica (Markdown).

{ "name": "get_election_region_party",
  "arguments": { "country": "es", "election": "generales-2023", "region": "nacional", "party": "pp" } }

Figuras públicas

Figuras públicas não-políticas com relevância política: monarcas, jornalistas, líderes empresariais, assessores, juízes, promotores, etc.

get_public_figures_list

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
kindstringnãoFiltrar por tipo: monarca, periodista, empresario, asesor, juez, fiscal, figura
{ "name": "get_public_figures_list", "arguments": { "country": "gb", "kind": "monarca" } }

get_public_figure

{ "name": "get_public_figure", "arguments": { "country": "gb", "slug": "king-charles-iii" } }

Votações no Congresso (somente Espanha)

get_votes_list

Votações-chave do Congresso espanhol.

{ "name": "get_votes_list", "arguments": { "country": "es" } }

get_vote

Análise detalhada de uma votação: resultado, detalhamento por partido, contexto.

{ "name": "get_vote", "arguments": { "country": "es", "vote": "ley-amnistia-2024" } }

Instituições, procedimentos e conceitos

get_institutions_list · get_institution

Instituições do Estado (parlamento, governo, judiciário, órgãos de controle, órgãos consultivos).

{ "name": "get_institution", "arguments": { "country": "es", "institution": "tribunal-constitucional" } }

get_procedures_list · get_procedure

Procedimentos parlamentares (ex.: investidura, moção de censura).

{ "name": "get_procedure", "arguments": { "country": "es", "procedure": "mocion-de-censura" } }

get_political_concepts_list · get_political_concept

Conceitos políticos (separação de poderes, método D'Hondt, voto em branco vs. nulo, etc.).

ArgumentoTipoObrigatórioDescrição
countrystringsimCódigo de país ISO-2
subcategorystringnãofundamental ou electoral
{ "name": "get_political_concept", "arguments": { "country": "es", "concept": "division-de-poderes" } }

Eventos

Principais eventos políticos: escândalos, crises, episódios de política externa, reformas constitucionais, etc.

{ "name": "get_events_list", "arguments": { "country": "es" } }
{ "name": "get_event", "arguments": { "country": "es", "event": "atentados-11m-2004" } }

Fluxo recomendado

Obter o programa eleitoral de um partido:

get_elections_list(country)               → pick election slug
get_election_regions(country, election)   → pick region slug
get_election_region_parties(...)          → pick party slug
get_election_region_party(...)            → programme as Markdown

Obter o perfil de um partido:

get_parties_list(country)        → pick party slug
get_party_profile(country, ...)  → ideological profile as Markdown

Exploração de texto livre:

search(country, q="<term>")      → ranked mixed-resource results

Versões Markdown cruas (URLs .md)

Toda página pública também serve uma versão Markdown crua ao anexar .md à URL.

Todas as entidades (espanhol):

/es/{country-es}/partido/{slug}.md                 → party profile
/es/{country-es}/politicos/{slug}.md               → politician profile
/es/{country-es}/personajes/{slug}.md              → public figure profile
/es/{country-es}/eventos/{slug}.md                 → political event
/es/{country-es}/votaciones/{slug}.md              → Congress vote (Spain)
/es/{country-es}/instituciones/{slug}.md           → state institution
/es/{country-es}/procedimientos/{slug}.md          → parliamentary procedure
/es/{country-es}/conceptos-politicos/{slug}.md     → political concept
/es/{country-es}/{election}/{region}.md            → election landing
/es/{country-es}/{election}/{region}/{party}.md    → party programme summary

Exemplos:

https://www.politicaelectoral.com/es/espana/politicos/pedro-sanchez.md
https://www.politicaelectoral.com/es/reino-unido/personajes/king-charles-iii.md
https://www.politicaelectoral.com/es/eeuu/partido/republicano.md

Se não houver .md publicado para esse slug, a URL retorna 404.


API REST

Além do MCP, os mesmos dados são expostos como uma API REST com raiz em /api/v1/. Especificação: /openapi.json. Documentação interativa: /api/docs.

# List parties for Spain
curl 'https://www.politicaelectoral.com/api/v1/parties?country=es'

# Politician profile
curl 'https://www.politicaelectoral.com/api/v1/politicians/pedro-sanchez?country=es'

# Free-text search
curl 'https://www.politicaelectoral.com/api/v1/search?q=sanchez&country=es&limit=5'

country é sempre ISO-2. lang tem como padrão es e é o único valor suportado (qualquer outro retorna 400).


Licença e uso

Os dados são provenientes dos programas eleitorais oficiais de cada partido. Perfis e análises são gerados com IA a partir de fontes públicas. Uso gratuito para projetos não comerciais com atribuição.

Site: politicaelectoral.com