Endorsement Stream
Returning for 2028Who endorses what, contest by contest
An endorsement is an organization or official telling voters how to vote on one contest: a candidate, a ranked slate, or Yes or No on a measure. We collect them from published slates, voter guides and endorsement pages, link each one to the exact choice on the printed ballot, and keep the source. No one publishes a complete list of every race and endorsement, so we gather as many as we can find and add more every hour.
Read the Endorsement Stream docs for the file formats, every field and how each delivery works.
Coming back for 2028
The Endorsement Stream isn’t sold until it returns for the 2028 elections. Leave your name and email, and we’ll tell you when it’s back. The BallotData API has every endorsement we have today.
Hear when it’s back
Delivered how you want it
- Email. Each change as it happens, or an hourly or daily summary of what changed.
- CSV or JSON files. A fresh file every day, from your account or a private link your scripts can fetch.
- Live stream. Every change the moment it publishes, over the API’s event stream (Server-Sent Events).
- Postback to your server. We POST each change to your HTTPS endpoint as signed JSON.
- Something else. Tell us what you need (SFTP, S3, a spreadsheet, another format) and we’ll set it up.
Filter any delivery to the kinds of endorsers you care about: Voter guides & editorial boards, Labor, Environment & transportation, Housing & business, Political parties, Political clubs, Community & advocacy, Elected officials. Need a different format? Just ask.
CSV or JSON
The CSV has one row per endorsement, with the election, contest, district, choice and endorser on each row, so it opens straight into Excel, Google Sheets or pandas. The JSON keeps the shape of the ballot: contests hold their choices in ballot order, and each choice lists its endorsements.
Every column and field, with examples, is in the Endorsement Stream docs and the API reference.