API, one state
per state
Every endorsement in one state, with the elections, contests, candidates, measures and endorsers behind it, through December 31, 2027.
Buy API, one stateBallotData API
The only source of AI-optimized endorsement and election data. BallotData collects endorsements nationwide and makes them available to researchers and their AI tools. The API answers in JSON with every endorsement we have in the states you buy, tied to the contest and choice on the printed ballot, with the elections, candidates, measures and endorsers behind them, and our MCP server lets Claude, ChatGPT and other assistants query it for you.
The same fields in every state, so one query can span the country. Officeholders and district boundaries are in the API too.
Per state, or every state we cover for one price. One payment, licensed through December 31, 2027, with every endorsement we add until then.
per state
Every endorsement in one state, with the elections, contests, candidates, measures and endorsers behind it, through December 31, 2027.
Buy API, one stateevery state we cover
The nationwide endorsement dataset: every state we cover, with the elections, contests, candidates, measures and endorsers behind it, through December 31, 2027.
Buy API, nationalcurl -H "Authorization: Bearer $BALLOTDATA_KEY" \ "https://api.ballotdata.ai/v1/endorsements?states=CA&categories=labor"
Or from Python, with the ballotdata package:
from ballotdata import BallotData
client = BallotData() # reads BALLOTDATA_API_KEY
for e in client.endorsements.list(states="CA,TX", categories="newspaper", limit=500):
print(e["endorser"]["name"], e["contest"]["title"], e["choice"]["label"])Choose your API password at checkout. Once you’ve paid, your API account opens on its own: confirm your email address, sign in and create keys, which read the states you bought. The reference at api.ballotdata.ai lists every endpoint, its parameters and its responses, and the libraries page covers Python and JavaScript.
New The only MCP server for U.S. endorsement data
Our MCP server is the best way to bring BallotData into Claude, ChatGPT and other AI assistants. Ask in plain language who endorsed a candidate, what a union or newspaper endorsed, or what changed this week, and your assistant looks it up through your own API account, in the states you bought.
Included with every API purchase, at no extra cost. How to connect
Server address
https://mcp.ballotdata.ai/mcpAdd it as a custom connector (MCP) in Claude, ChatGPT or your AI tool, then sign in with your BallotData API email and password.