Neutral, sourced election calendar: polling days, when provisional and final results are due.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Works without a key (60 requests/min per IP); a free key from https://electionindex.org/keys raises it to 1,000/min.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Is a question about a given count stage answerable at a given time? Returns verdict ok / too-early / inside-window / too-late, settle_after, and the resolvable sources. Built to stop questions that read the provisional count when they mean the final one.
Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections
Race id, e.g. "president"; optional when the election has one race
Default final-result
ISO date-time; default now
Is a question about a given count stage answerable at a given time? Returns verdict ok / too-early / inside-window / too-late, settle_after, and the resolvable sources. Built to stop questions that read the provisional count when they mean the final one.
| Argument | Type | Description |
|---|---|---|
| race | string | Race id, e.g. "president"; optional when the election has one race |
| stage | string | Default final-result |
| ask_at | string | ISO date-time; default now |
| election* | string | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections |
{
"type": "object",
"required": [
"election"
],
"properties": {
"race": {
"type": "string",
"description": "Race id, e.g. \"president\"; optional when the election has one race"
},
"stage": {
"enum": [
"exit-poll",
"election-night",
"media-call",
"intermediate-count",
"final-result",
"court-validation",
"government"
],
"type": "string",
"description": "Default final-result"
},
"ask_at": {
"type": "string",
"description": "ISO date-time; default now"
},
"election": {
"type": "string",
"description": "Election id, e.g. \"brazil-general-2026\"; list ids with upcoming_elections"
}
}
}Coverage, stale records, races still lacking a results page, and publisher-gate warnings, as counts with the first 20 of each (full report at /v1/health). Use to judge how far to trust an answer.
No arguments.
{
"type": "object",
"properties": {}
}Full record of one election: races, polls-close times, every count stage window (exit poll, election night, intermediate count, final result, government) with confidence and citation, the authority, sources, recorded vote counts, and whether the record is stale.
| Argument | Type | Description |
|---|---|---|
| election* | string | Election id, e.g. "latvia-parliamentary-2026" |
{
"type": "object",
"required": [
"election"
],
"properties": {
"election": {
"type": "string",
"description": "Election id, e.g. \"latvia-parliamentary-2026\""
}
}
}The next elections in one country, however far ahead: polling day and whether it is declared, still tentative, or only expected within a period, what is elected, the counting authority, and when results are expected. Answers "When is the next election in Austria?" or "When are the US midterms?". National elections by default; level "regional" answers "When are the next state elections in Germany?". Covers 411 elections in 100 countries, 2021–2030, including 23 of the 27 EU member states, the 2026 US midterms in all 50 states and the certified 2024 US presidential result, with vote counts, in all 50 states and DC.
| Argument | Type | Description |
|---|---|---|
| count | integer | How many upcoming elections to return, soonest first; default 3 |
| level | string | national: the country votes; regional: a state, region or autonomous community elects its own parliament or head (German Länder, Spanish autonomous communities, Italian regions). Default national; the answer also counts upcoming regional elections |
| country* | string | Country name or ISO 3166-1 alpha-2 code, e.g. "Austria" or "AT", "United States" or "US" |
{
"type": "object",
"required": [
"country"
],
"properties": {
"count": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many upcoming elections to return, soonest first; default 3"
},
"level": {
"enum": [
"national",
"regional",
"all"
],
"type": "string",
"description": "national: the country votes; regional: a state, region or autonomous community elects its own parliament or head (German Länder, Spanish autonomous communities, Italian regions). Default national; the answer also counts upcoming regional elections"
},
"country": {
"type": "string",
"description": "Country name or ISO 3166-1 alpha-2 code, e.g. \"Austria\" or \"AT\", \"United States\" or \"US\""
}
}
}Every known source URL for a race, classified (race_results, feed, results_index, emb_home, directory, media). Only race_results and feed can answer a results question; homepages never can. A results page whose HTML shows no count once one is due (figures_in_html false) is not resolvable. Sources a settlement oracle has answered from come first (oracle_reads). For our own copy of the count, see secondary_source in check_question.
| Argument | Type | Description |
|---|---|---|
| race | string | Race id, e.g. "president"; optional when the election has one race |
| election* | string | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections |
| resolvable_only | boolean | Only sources that can answer a results question (race_results, feed); default false |
{
"type": "object",
"required": [
"election"
],
"properties": {
"race": {
"type": "string",
"description": "Race id, e.g. \"president\"; optional when the election has one race"
},
"election": {
"type": "string",
"description": "Election id, e.g. \"brazil-general-2026\"; list ids with upcoming_elections"
},
"resolvable_only": {
"type": "boolean",
"description": "Only sources that can answer a results question (race_results, feed); default false"
}
}
}Report a mistake or a missing election, with a URL that proves it (ideally the official authority page). The report is public and is checked like any other claim; it never changes the data by itself. Returns the report id; follow it at https://electionindex.org/corrections.
| Argument | Type | Description |
|---|---|---|
| race | string | Race id within that election, if the report is about one race |
| claim* | string | What is wrong and what is right, 10 to 2000 characters |
| election | string | Election id, if the report is about a listed election |
| evidence* | string | http(s) URL of the page that proves it |
{
"type": "object",
"required": [
"claim",
"evidence"
],
"properties": {
"race": {
"type": "string",
"description": "Race id within that election, if the report is about one race"
},
"claim": {
"type": "string",
"description": "What is wrong and what is right, 10 to 2000 characters"
},
"election": {
"type": "string",
"description": "Election id, if the report is about a listed election"
},
"evidence": {
"type": "string",
"description": "http(s) URL of the page that proves it"
}
}
}List elections by date range and/or country, soonest first, with each race's expected count stage right now. Answers "Which elections are in Europe this autumn?", "Which elections are this month?" or "What elections does Germany have coming up?". Without dates it starts today; with a country and no end date it covers every future election of that country, otherwise the next 365 days. Covers 411 elections in 100 countries, 2021–2030, including 23 of the 27 EU member states, the 2026 US midterms in all 50 states and the certified 2024 US presidential result, with vote counts, in all 50 states and DC.
| Argument | Type | Description |
|---|---|---|
| to | string | End date YYYY-MM-DD; default +365 days, or no end when a country is given |
| from | string | Start date YYYY-MM-DD; default today |
| level | string | national: the country votes; regional: a state, region or autonomous community elects its own parliament or head (German Länder, Spanish autonomous communities, Italian regions). Default all |
| limit | integer | Most elections to return, soonest first; default 25, max 200. Narrow with from/to or country for more. |
| country | string | Country name or ISO 3166-1 alpha-2 code, e.g. "Austria" or "AT", "United States" or "US" |
| include_discovered | boolean | Also list elections found on Wikidata but not yet verified by Global Election Index |
When will a race's final (certified) result exist? Returns the expected window, its confidence (announced / precedent / estimate) and basis, how many days the final took last time, and the final count itself once we hold it. Use this before asking or settling any "final result" question.
| Argument | Type | Description |
|---|---|---|
| race | string | Race id, e.g. "president"; optional when the election has one race |
| election* | string | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections |
{
"type": "object",
"required": [
"election"
],
"properties": {
"race": {
"type": "string",
"description": "Race id, e.g. \"president\"; optional when the election has one race"
},
"election": {
"type": "string",
"description": "Election id, e.g. \"brazil-general-2026\"; list ids with upcoming_elections"
}
}
}{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "End date YYYY-MM-DD; default +365 days, or no end when a country is given"
},
"from": {
"type": "string",
"description": "Start date YYYY-MM-DD; default today"
},
"level": {
"enum": [
"national",
"regional",
"all"
],
"type": "string",
"description": "national: the country votes; regional: a state, region or autonomous community elects its own parliament or head (German Länder, Spanish autonomous communities, Italian regions). Default all"
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Most elections to return, soonest first; default 25, max 200. Narrow with from/to or country for more."
},
"country": {
"type": "string",
"description": "Country name or ISO 3166-1 alpha-2 code, e.g. \"Austria\" or \"AT\", \"United States\" or \"US\""
},
"include_discovered": {
"type": "boolean",
"description": "Also list elections found on Wikidata but not yet verified by Global Election Index"
}
}
}