Discover/Gov API
live

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.

Endpoint health
verified 2h ago
list_roll_types
list_parts
2/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

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.

This call costs1 credit / call— charged only on success
Try it
Year of revision as a 4-digit string (the portal offers the current year and the two preceding years).
Portal state/UT code as used in the State dropdown.
→ api.parse.bot/scraper/6f18378d-76cf-42de-9442-df7ac8ee1d08/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
All endpoints · 2 totalmissing one? ·

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.

Input
ParamTypeDescription
yearrequiredstringYear of revision as a 4-digit string (the portal offers the current year and the two preceding years).
state_coderequiredstringPortal state/UT code as used in the State dropdown.
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a constituency lookup tool that lists all polling parts for an Assembly Constituency using list_parts and ac_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_id and languages fields from list_parts.
  • Audit roll publication timelines by comparing revision_number values across states and years.
  • Populate state-level roll-type dropdowns in civic tech applications using roll_id and display_name from list_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_code and part_number from list_parts.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does the Election Commission of India provide an official developer API for electoral roll data?+
The ECI does not publish a documented public developer API for electoral roll data. The voters.eci.gov.in portal (https://voters.eci.gov.in/download-eroll) provides a citizen-facing web interface; this Parse API surfaces the same published metadata in a structured, machine-readable form.
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?+
No. The API returns roll revision metadata and polling-part inventory only — fields like 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?+
Coverage is limited to the current year and the two preceding years, matching the year dropdown on the portal. Historical revisions older than three years are not available through this API. You can fork it on Parse and revise to extend coverage if you have access to archived roll data from another source.
Does `list_parts` paginate, and how many parts should I expect?+
There is no pagination. All polling parts for the requested Assembly Constituency and roll revision are returned in a single response. A typical AC returns between 150 and 300 parts. The parts array will be empty (and roll will be null) if no revision has been published for the requested state, year, and AC combination.
Page content last updated . Spec covers 2 endpoints from voters.eci.gov.in.
Related APIs in Government PublicSee all →