Gov APIvoters.eci.gov.in ↗
Access India's Election Commission electoral roll metadata: published roll revisions by state/year and polling part lists with PDF language options per Assembly Constituency.
What is the Gov API?
The voters.eci.gov.in API exposes 2 endpoints covering published electoral roll data from the Election Commission of India citizen portal. list_roll_types returns every roll revision published for a given state and year, while list_parts returns the complete list of polling parts for an Assembly Constituency — including part IDs, part numbers, district codes, and the PDF languages available for that roll.
curl -X GET 'https://api.parse.bot/scraper/6f18378d-76cf-42de-9442-df7ac8ee1d08/list_roll_types?year=2025&state_code=U05' \ -H 'X-API-Key: $PARSE_API_KEY'
Lists the electoral-roll revisions the portal has published for one state and one year of revision (the 'Roll Type' dropdown). One request, no pagination. Returns one object per published roll with its roll_id (consumed by list_parts.roll_id), display name, revision number and publish date. A year with no published rolls returns an empty roll_types array.
| Param | Type | Description |
|---|---|---|
| yearrequired | string | Year of revision as a 4-digit string (the portal offers the current year and the two preceding years). |
| state_coderequired | string | Portal state/UT code as used in the State dropdown. |
{
"type": "object",
"fields": {
"year": "echo of the requested year string",
"roll_types": "array of published roll revisions: roll_id (string id used by list_parts), display_name, roll_type (FinalRoll/DraftRoll or null for supplements), roll_type_ref_id, pdf_gen_type, revision_no (integer), year (integer), publish_date (ISO date), published (boolean)",
"state_code": "echo of the requested state code"
},
"sample": {
"data": {
"year": "2025",
"roll_types": [
{
"year": 2025,
"roll_id": "U05-2025-SUPP-5",
"published": true,
"roll_type": null,
"revision_no": 5,
"display_name": "Supplement-5 2025",
"pdf_gen_type": "SUPPLEMENTGEN",
"publish_date": "2025-10-10",
"roll_type_ref_id": "all_together"
},
{
"year": 2025,
"roll_id": "U05-2025-FIR",
"published": true,
"roll_type": "FinalRoll",
"revision_no": 1,
"display_name": "Final Roll - 2025",
"pdf_gen_type": "EROLLGEN",
"publish_date": "2025-01-06",
"roll_type_ref_id": "FinalRoll"
}
],
"state_code": "U05"
},
"status": "success"
}
}About the Gov API
What the API covers
The API surfaces published electoral roll metadata from the Election Commission of India's voter services portal (voters.eci.gov.in). It covers up to three years of revisions per state or Union Territory, reflecting the portal's own dropdowns for year and state. Data is returned at two levels: the roll revision catalogue for a state-year pair, and the polling-part inventory for a specific Assembly Constituency.
list_roll_types
list_roll_types takes two required parameters — state_code and year — and returns a roll_types array. Each entry includes a roll_id (used as input to list_parts), a human-readable display_name, a revision_number, and a roll_type field indicating whether the revision is a FinalRoll, DraftRoll, or null for special cases. The state_code and year values are echoed back in the response for traceability. There is no pagination; all published revisions for that state-year are returned in a single call.
list_parts
list_parts takes state_code, year, and ac_number as required inputs, with an optional roll_id to target a specific revision (omitting it defaults to the portal's current roll for that state and year). The response includes a parts array — each part carrying part_id, part_number, part_name, district_code, and ac_number — alongside a languages array of {code, name} objects describing the PDF languages the portal makes available for that roll and constituency. The matched roll object (same shape as a roll_types entry) is returned in full, or null if no revision is published. Assembly Constituencies with 150–300 parts are typical; all parts are returned in a single response.
Coverage and freshness
Coverage spans all states and Union Territories that the ECI portal exposes through its State dropdown. Year coverage is limited to the current year and the two preceding years, matching the portal's own controls. Roll data reflects what the portal has published at the time of the request; unpublished or pending revisions are not returned.
The Gov API is a managed, monitored endpoint for voters.eci.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when voters.eci.gov.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official voters.eci.gov.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a constituency lookup tool that lists all polling parts for an Assembly Constituency using
list_partsandac_number. - Track which roll revisions (Draft vs Final) have been published for a given state across multiple years using
list_roll_types. - Generate download manifests for electoral roll PDFs by combining
part_idandlanguagesfields fromlist_parts. - Audit roll publication timelines by comparing
revision_numbervalues across states and years. - Populate state-level roll-type dropdowns in civic tech applications using
roll_idanddisplay_namefromlist_roll_types. - Identify which PDF languages are available per Assembly Constituency and roll revision for multilingual voter outreach tools.
- Map district-level polling part distribution across an AC using
district_codeandpart_numberfromlist_parts.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Election Commission of India provide an official developer API for electoral roll data?+
What does `list_roll_types` return and how does it differ from `list_parts`?+
list_roll_types returns all published roll revisions for a state-year pair — each with a roll_id, display_name, revision_number, and roll_type (FinalRoll, DraftRoll, or null). It says nothing about individual polling parts. list_parts goes one level deeper: given an ac_number and optionally a roll_id, it returns every polling part in that Assembly Constituency along with the PDF languages available for that roll.Does the API return voter names, EPIC numbers, or individual voter records from the electoral rolls?+
roll_id, part_number, part_name, district_code, and available PDF languages. Individual voter records are not exposed. You can fork this API on Parse and revise it to add an endpoint that retrieves voter-level data if the portal exposes that surface.How far back does year coverage go?+
Does `list_parts` paginate, and how many parts should I expect?+
parts array will be empty (and roll will be null) if no revision has been published for the requested state, year, and AC combination.