Since 2011, Democracy Works has tracked state and municipal elections for TurboVote users. Our full-time research team maintains a detailed calendar of upcoming state, special, and local elections, which we release as our Elections API.


About the data

We scour state and local election department websites, the Voting Information Project election coverage, the Election Assistance Commission electionblog, Ballotpedia, the Green Papers, and local news services to know when and where elections are happening, then follow up individually to verify the deadlines for voter registration, absentee ballot requests, and more.

This research process is designed to identify as many regularly-scheduled elections as possible, and all elections taking place in jurisdictions of at least 5,000 voters.



For each election, we provide:

  • a simple descriptive name
  • the election date
  • the jurisdiction it affects (defined using an Open Civic Data Identifier, or OCD-ID)
  • a type label (e.g. - municipal, special, school)
  • the deadline to register to vote
  • the deadline to request an absentee ballot
  • whether or not same-day voter registration is available
  • whether or not absentee voting requires an excuse
  • (for primary elections) whether participation is open to voters without a party affiliation, or closed to party members only

If you’re interested in supplementing this information with other Democracy Works datasets, we also collect and publish information on election officials, absentee voting procedures, and voter registration separately.



The Elections API includes federal, state, county, and municipal elections, as well as many elections affecting school districts, city council districts, and other sub-municipal jurisdictions.
Our coverage is primarily limited by the availability of Open Civic Data mappings currently available via the Google Civic Information API. Democracy Works and many of our partners rely on the Civic Info API to link these jurisdictions to individual addresses when sending reminders to voters, and data gaps in Google's political geography limit our ability to track elections at those (sub-municipal) levels.


Using the API

The Elections API is simple to use: we've designed a single HTTP GET request to retrieve all upcoming elections in our database (in JSON format), so you can see everything we're tracking and update your own records as regularly as you need.
From there, you can design your own reminders, visualizations, outreach campaigns, and much more.



Democracy Works uses Open Civic Data Identifiers (OCD-IDs) to define the districts where elections are taking place. OCD-IDs are a common naming standard. We chose OCD-IDs because Google's Civic Information API makes it easy to match an individual address to all its political jurisdictions using these labels.

Civic tech firms like Azavea and Datamade also use the OCD-ID standard, which lets you link election dates and deadlines to other kinds of civic and political data that are connected to that same place. And because an OCD-ID includes the name of each jurisdiction in its format, you can easily convert them back into plain, human-readable names if that's what you prefer.



Finding election announcements is time-consuming work; so is running quality assurance checks to make sure we're getting all the deadlines and jurisdictions just right. We work to share these costs fairly with our data partners based on their audience size, usage needs, and ability to contribute. If you're interested in using this data, don't hesitate to reach out—we'll be happy to work with you.



If you are interested in finding out more about the Democracy Works Elections API, please contact