Open data
TAKE THE
RECORD.
Everything on the site is generated from one dataset. Download it, check it, build on it. Attribution to HasanBacked is appreciated but not required; the sources belong to their publishers.
19 candidate files · 8 litmus issues · 12 controversy files · 118 unique sources.
JSON · FULL
candidates.json
Every field: race, status, support records, sources, editorial profile, and the eight-cell position matrix per candidate.
/api/candidates ↗CSV · FLATcandidates.csv
One row per candidate with race, outcome, connection type, dates, and a column per litmus issue. Opens in any spreadsheet.
/api/candidates.csv ↗JSON · WITH PIKER RECORDfull.json
Candidates plus the controversy archive, litmus definitions, research queue, and the deduplicated source index.
/api/candidates?include=controversies ↗SCHEMA NOTES
- status: active, advanced, elected, lost, withdrawn, unconfirmed. Always paired with statusDate and statusSource.
- support[].type: explicit endorsement, campaign appearance, organizing/fundraising, positive platforming, reported support. Definitions on the methodology page.
- positions[issue].value: yes (documented break), partial, no, unknown (not documented). Every non-unknown cell carries a note; every yes/partial cell carries a source.
- lastVerified: the date the file was last checked end-to-end. Files are dated, not live.
The API is read-only and unauthenticated. Please cache responses; the data changes only when a file is updated.