{
 "researched": "2026-10-21",
 "election": "2026-11-03",
 "states": [
  {
   "state": "AK",
   "name": "Alaska",
   "category": "scrape",
   "official_url": "https://www.elections.alaska.gov/election-results/",
   "platform": "AK Division of Elections",
   "format": "HTML/PDF summary; ranked-choice tabulation published later",
   "box_check": "TLS certificate chain error from box",
   "update_frequency": "Election night; RCV tabulation ~15 days later",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.elections.alaska.gov/results/24GENR/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "Ranked-choice voting: first-choice totals only on election night.",
   "polls_close_utc": "2026-11-04T06:00:00Z",
   "polls_close_note": "Aleutians close 8 pm HAST",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 1
   }
  },
  {
   "state": "AL",
   "name": "Alabama",
   "category": "scrape",
   "official_url": "https://www2.alabamavotes.gov/electionnight/statewideresultsbycontest.aspx",
   "platform": "AL SOS",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.sos.alabama.gov/alabama-votes/voter/enr-current-list"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 7
   }
  },
  {
   "state": "AR",
   "name": "Arkansas",
   "category": "scrape",
   "official_url": "https://www.sos.arkansas.gov/elections/research/election-results",
   "platform": "AR SOS (new vendor, arkansasresults.azurewebsites.us)",
   "format": "HTML (+ 'Statewide and County Exports')",
   "box_check": "Timeout from box",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.sos.arkansas.gov/uploads/elections/GE2024_report.pdf",
    "2024 General Election Results by Precinct CSV (after canvass)"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "AR left Clarity for a new ENR vendor in 2025-26; exports exist but were not reachable from the box.",
   "polls_close_utc": "2026-11-04T01:30:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 4
   }
  },
  {
   "state": "AZ",
   "name": "Arizona",
   "category": "scrape",
   "official_url": "https://results.arizona.vote/",
   "platform": "AZ SOS (cdn1.arizona.vote JSON behind Cloudflare challenge)",
   "format": "JSON exists but bot-walled",
   "box_check": "403 Cloudflare challenge",
   "update_frequency": "Sporadic batches as counties report; Maricopa/Pima updates once or twice daily for ~10 days",
   "terms": "Cloudflare blocks automated clients; do not circumvent.",
   "evidence_2024": [
    "https://results.arizona.vote/#/featured/47/0 (2024 general)"
   ],
   "nov2026": "2026 General listed",
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 9
   }
  },
  {
   "state": "CA",
   "name": "California",
   "category": "feed",
   "official_url": "https://electionresults.sos.ca.gov/",
   "platform": "CA SOS ENR REST API",
   "format": "JSON (documented)",
   "box_check": "200 OK",
   "update_frequency": "Every ~5-10 min election night; then daily/weekly during the 30-day canvass",
   "terms": "Documented public API, no key (api.sos.ca.gov). Cite CA SOS.",
   "evidence_2024": [
    "https://api.sos.ca.gov/returns/us-rep/district/all"
   ],
   "nov2026": "Live endpoints for 2026 general (pre-election test values withheld)",
   "adapter": "california",
   "notes": "",
   "polls_close_utc": "2026-11-04T04:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 52
   }
  },
  {
   "state": "CO",
   "name": "Colorado",
   "category": "feed",
   "official_url": "https://results.enr.clarityelections.com/CO/",
   "platform": "Clarity/Scytl ENR",
   "format": "JSON + CSV/XML zip",
   "box_check": "200 OK (intermittent CloudFront 403 'Request blocked')",
   "update_frequency": "Election night every few minutes as counties upload; daily during canvass",
   "terms": "Public government results site hosted by Clarity/Scytl ENR (CivicPlus). No published API terms; CloudFront WAF rate-limits automated clients. Poll politely, cite the state.",
   "evidence_2024": [
    "https://results.enr.clarityelections.com/CO/122598/367167/json/en/summary.json",
    "https://results.enr.clarityelections.com/CO/122598/367167/reports/summary.zip"
   ],
   "nov2026": "Not yet in CO elections.json on Oct 21; new EID usually appears days before",
   "adapter": "clarity",
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 8
   }
  },
  {
   "state": "CT",
   "name": "Connecticut",
   "category": "feed",
   "official_url": "https://ctemspublic.tgstg.net/",
   "platform": "CT SOTS EMS public reporting",
   "format": "JSON (ng-app/data/election/{id}/{version}/Lookupdata.json, stateVotes_Electiondata.json)",
   "box_check": "200 OK",
   "update_frequency": "As towns report (town clerks enter results; slower than tabulator feeds)",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://ctemspublic.tgstg.net/ng-app/data/election/91/Version.json"
   ],
   "nov2026": "Election 108 '11/03/2026 State Election' configured (Governor + 5 House)",
   "adapter": "connecticut",
   "notes": "Cross-endorsed party lines (e.g. D + WF) are summed per candidate, as the state reports totals; no certification flag \u2192 unofficial.",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 5
   }
  },
  {
   "state": "DC",
   "name": "District of Columbia",
   "category": "scrape",
   "official_url": "https://electionresults.dcboe.org/",
   "platform": "DCBOE",
   "format": "HTML (+ downloadable reports)",
   "box_check": "200 OK",
   "update_frequency": "Election night batches; then periodic",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionresults.dcboe.org/election_results/2024-General-Election"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 0
   }
  },
  {
   "state": "DE",
   "name": "Delaware",
   "category": "scrape",
   "official_url": "https://elections.delaware.gov/results/html/index.html",
   "platform": "DE DOE",
   "format": "HTML",
   "box_check": "200 OK (index.shtml moved to index.html)",
   "update_frequency": "Election night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://elections.delaware.gov/results/html/index.html"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 1
   }
  },
  {
   "state": "FL",
   "name": "Florida",
   "category": "feed",
   "official_url": "https://results.elections.myflorida.com/",
   "platform": "FL DOS",
   "format": "Tab-delimited county rows (POST ResultsExtract.Asp, ISO-8859-1)",
   "box_check": "200 OK",
   "update_frequency": "Every few minutes on election night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://results.elections.myflorida.com/ResultsExtract.Asp (POST ElectionDate=11/5/2024)"
   ],
   "nov2026": "Extract empty for 11/3/2026 on Oct 21 (published after polls close)",
   "adapter": "florida",
   "notes": "Counties summed to statewide; uncontested races (e.g. FL-20 in 2024) are not on the ballot and not in the file.",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": "Panhandle closes 7 pm CT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 28
   }
  },
  {
   "state": "GA",
   "name": "Georgia",
   "category": "feed",
   "official_url": "https://results.sos.ga.gov/results/public/Georgia",
   "platform": "Enhanced Voting",
   "format": "JSON (+ media export JSON, Excel)",
   "box_check": "200 OK (JSON; HTML behind Cloudflare JS check, API not)",
   "update_frequency": "Near real time as counties upload on election night",
   "terms": "Public government results site (Enhanced Voting platform). No published API terms; data is public record. Poll politely (>=60 s), cite the state.",
   "evidence_2024": [
    "https://results.sos.ga.gov/results/public/api/elections/Georgia/2024NovGen/data",
    "https://results.sos.ga.gov/cdn/results/Georgia/export-2024NovGen.json"
   ],
   "nov2026": "Not yet listed on Oct 21 (latest: 2026-08-25); adapter auto-discovers by date",
   "adapter": "enhanced_voting",
   "notes": "",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 14
   }
  },
  {
   "state": "HI",
   "name": "Hawaii",
   "category": "scrape",
   "official_url": "https://elections.hawaii.gov/election-results/",
   "platform": "HI Office of Elections",
   "format": "PDF/HTML summary reports (ASCII text files in past cycles)",
   "box_check": "200 OK",
   "update_frequency": "Printouts at ~7:45 p.m. HST then every few hours",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://elections.hawaii.gov/election-results/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T05:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 2
   }
  },
  {
   "state": "IA",
   "name": "Iowa",
   "category": "feed",
   "official_url": "https://electionresults.iowa.gov/IA/",
   "platform": "Clarity/Scytl ENR",
   "format": "JSON + CSV/XML zip",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government results site hosted by Clarity/Scytl ENR (CivicPlus). No published API terms; CloudFront WAF rate-limits automated clients. Poll politely, cite the state.",
   "evidence_2024": [
    "https://results.enr.clarityelections.com/IA/elections.json (lists 2026 primary EID 126082; 2024 general archived)"
   ],
   "nov2026": "Not yet listed; EID discovered via elections.json",
   "adapter": "clarity",
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 4
   }
  },
  {
   "state": "ID",
   "name": "Idaho",
   "category": "feed",
   "official_url": "https://results.voteidaho.gov/results/public/id",
   "platform": "Enhanced Voting",
   "format": "JSON (2025+); 2024 archive XML pages",
   "box_check": "200 OK (JSON)",
   "update_frequency": "As counties report on election night",
   "terms": "Public government results site (Enhanced Voting platform). No published API terms; data is public record. Poll politely (>=60 s), cite the state.",
   "evidence_2024": [
    "https://archive.voteidaho.gov/results/2024/general/xml.html (2024 used an older XML site)"
   ],
   "nov2026": "Not yet listed on Oct 21 (latest: may2026); auto-discovered by date",
   "adapter": "enhanced_voting",
   "notes": "Idaho moved to Enhanced Voting in 2025; 2024 evidence is the older archive.voteidaho.gov XML pages.",
   "polls_close_utc": "2026-11-04T04:00:00Z",
   "polls_close_note": "Northern ID closes 8 pm PT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 2
   }
  },
  {
   "state": "IL",
   "name": "Illinois",
   "category": "none",
   "official_url": "https://www.elections.il.gov/",
   "platform": "ISBE",
   "format": "Certified results only (after canvass)",
   "box_check": "200 OK",
   "update_frequency": "No statewide ENR; 108 election authorities post their own results",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.elections.il.gov/electionoperations/votetotalsearch.aspx"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 17
   }
  },
  {
   "state": "IN",
   "name": "Indiana",
   "category": "feed",
   "official_url": "https://enr.indianavoters.in.gov/",
   "platform": "IN SOS ENR",
   "format": "JSON (site/data/settings.json, statewideElectionsC_A.json, OffCatC_{id}_A.json)",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://enr.indianavoters.in.gov/site/data/settings.json (serves only the current election: tested on the certified 05/05/2026 primary)"
   ],
   "nov2026": "Not yet: feed still serves the 05/05/2026 primary on Oct 21; adapter switches automatically when CurrentElection = 11/03/2026",
   "adapter": "indiana",
   "notes": "Certified=T in settings \u2192 official; isWinner flags shown only as the state's own designation.",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": "Most of IN closes 6 pm ET; western counties 6 pm CT",
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 9
   }
  },
  {
   "state": "KS",
   "name": "Kansas",
   "category": "scrape",
   "official_url": "https://www.sos.ks.gov/ent/national.html",
   "platform": "KS SOS",
   "format": "Static HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.sos.ks.gov/ent/national.html"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": "Western counties close 8 pm MT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 4
   }
  },
  {
   "state": "KY",
   "name": "Kentucky",
   "category": "feed",
   "official_url": "https://elect.ky.gov/results/",
   "platform": "Clarity/Scytl ENR",
   "format": "JSON + CSV/XML zip (expected)",
   "box_check": "403 from box (CloudFront) on KY paths",
   "update_frequency": "As counties report",
   "terms": "Public government results site hosted by Clarity/Scytl ENR (CivicPlus). No published API terms; CloudFront WAF rate-limits automated clients. Poll politely, cite the state.",
   "evidence_2024": [
    "https://results.enr.clarityelections.com/KY/ (state used Clarity for unofficial election-night results)"
   ],
   "nov2026": "Unverified from box: KY Clarity paths returned 403 on Oct 21",
   "adapter": "clarity",
   "notes": "Treat as feed-if-reachable; fall back to link-out.",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": "Western KY closes 6 pm CT",
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 6
   }
  },
  {
   "state": "LA",
   "name": "Louisiana",
   "category": "feed",
   "official_url": "https://voterportal.sos.la.gov/graphical",
   "platform": "LA SOS",
   "format": "JSON (ElectionResults/Data?blob=ElectionDates.htm, {date}/RacesCandidates_Multiparish.htm, {date}/Votes_Multiparish.htm)",
   "box_check": "200 OK",
   "update_frequency": "Every few minutes on election night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://voterportal.sos.la.gov/ElectionResults/ElectionResults/Data?blob=20241105/Votes_Multiparish.htm"
   ],
   "nov2026": "20261103 RacesCandidates/Votes blobs published (Senate + 6 House)",
   "adapter": "louisiana",
   "notes": "ResultsOfficial=1 \u2192 official; 'Elected' outcome shown only as the SOS designation. Nov ballot can send races to a Dec runoff.",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 6
   }
  },
  {
   "state": "MA",
   "name": "Massachusetts",
   "category": "none",
   "official_url": "https://electionstats.state.ma.us/",
   "platform": "MA SOC (ElectionStats)",
   "format": "CSV after certification",
   "box_check": "200 OK (electionstats); 403 on sec.state.ma.us",
   "update_frequency": "No statewide ENR; 351 cities/towns report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionstats.state.ma.us/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 9
   }
  },
  {
   "state": "MD",
   "name": "Maryland",
   "category": "scrape",
   "official_url": "https://elections.maryland.gov/elections/",
   "platform": "MD SBE",
   "format": "HTML (+ CSV after election)",
   "box_check": "200 OK (2024 page path moved)",
   "update_frequency": "Election night batches; mail ballots counted for days",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://elections.maryland.gov/elections/2024/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 8
   }
  },
  {
   "state": "ME",
   "name": "Maine",
   "category": "none",
   "official_url": "https://www.maine.gov/sos/elections-voting/election-results-data",
   "platform": "ME SOS",
   "format": "XLSX days after; RCV tabulation later",
   "box_check": "200 OK",
   "update_frequency": "No statewide ENR on election night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.maine.gov/sos/elections-voting/election-results-data"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 2
   }
  },
  {
   "state": "MI",
   "name": "Michigan",
   "category": "none",
   "official_url": "https://www.michigan.gov/sos/elections/election-results-and-data",
   "platform": "MI BOE",
   "format": "Official tab-delimited ZIP after canvass (mvic.sos.state.mi.us)",
   "box_check": "TLS EOF from box on mielections.us",
   "update_frequency": "No statewide unofficial feed on election night (counties report)",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://mvic.sos.state.mi.us/VoteHistory/GetPrecinctResultsFile?electionId=699"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": "Upper Peninsula counties close 8 pm CT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 13
   }
  },
  {
   "state": "MN",
   "name": "Minnesota",
   "category": "feed",
   "official_url": "https://electionresults.sos.mn.gov/",
   "platform": "MN SOS media files",
   "format": "Semicolon-delimited text",
   "box_check": "200 OK (files host); 403 on directory listing",
   "update_frequency": "Every few minutes on election night",
   "terms": "Public 'media files' explicitly provided for news media/public. Cite MN SOS.",
   "evidence_2024": [
    "https://electionresultsfiles.sos.mn.gov/20241105/ussenate.txt",
    "https://electionresultsfiles.sos.mn.gov/20241105/ushouse.txt"
   ],
   "nov2026": "20261103 files live (ussenate, ushouse, Governor, attorneygen, stsenate, judicial) with TEST votes on Oct 21 \u2014 withheld until polls close",
   "adapter": "minnesota",
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 8
   }
  },
  {
   "state": "MO",
   "name": "Missouri",
   "category": "scrape",
   "official_url": "https://enr.sos.mo.gov/",
   "platform": "MO SOS",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://enr.sos.mo.gov/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 8
   }
  },
  {
   "state": "MS",
   "name": "Mississippi",
   "category": "none",
   "official_url": "https://www.sos.ms.gov/elections-voting/election-results",
   "platform": "MS SOS",
   "format": "Certified PDF only",
   "box_check": "200 OK",
   "update_frequency": "SOS states it does not post unofficial election-night results",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.sos.ms.gov/elections/electionresults/2024%20Official%20Statewide%20Results.pdf"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 4
   }
  },
  {
   "state": "MT",
   "name": "Montana",
   "category": "scrape",
   "official_url": "https://electionresults.mt.gov/",
   "platform": "MT SOS (resultsSW.aspx platform)",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionresults.mt.gov/resultsSW.aspx?eid=450002785&map=CTY&type=STATE"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T03:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 2
   }
  },
  {
   "state": "NC",
   "name": "North Carolina",
   "category": "feed",
   "official_url": "https://er.ncsbe.gov/",
   "platform": "NCSBE ENR",
   "format": "JSON (results_0.txt) + zipped tab-delimited precinct files",
   "box_check": "200 OK",
   "update_frequency": "Every few minutes on election night",
   "terms": "Public data, NCSBE publishes bulk files on dl.ncsbe.gov for public use. Cite NCSBE.",
   "evidence_2024": [
    "https://er.ncsbe.gov/enr/20241105/data/results_0.txt",
    "https://s3.amazonaws.com/dl.ncsbe.gov/ENRS/2024_11_05/results_pct_20241105.zip"
   ],
   "nov2026": "20261103 results_0.txt live with zero votes (contests/candidates)",
   "adapter": "north_carolina",
   "notes": "",
   "polls_close_utc": "2026-11-04T00:30:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 14
   }
  },
  {
   "state": "ND",
   "name": "North Dakota",
   "category": "scrape",
   "official_url": "https://results.sos.nd.gov/",
   "platform": "ND SOS (resultsSW.aspx platform)",
   "format": "HTML",
   "box_check": "502 from box on Oct 21 (intermittent)",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://results.sos.nd.gov/ResultsSW.aspx?map=CTY&text=All&type=SW"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T04:00:00Z",
   "polls_close_note": "Counties set closing between 7 and 9 pm local",
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 1
   }
  },
  {
   "state": "NE",
   "name": "Nebraska",
   "category": "feed",
   "official_url": "https://electionresults.nebraska.gov/",
   "platform": "NE SOS (same platform as SD)",
   "format": "CSV (resultsCSV.aspx?text=All&type=SW|CG|LD|PS|PA&map=CTY|DIST)",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionresults.nebraska.gov/resultsCSV.aspx?text=All&type=SW&map=CTY"
   ],
   "nov2026": "2026 General files live (zero votes, 0/N precincts) on Oct 21",
   "adapter": "nebraska_sd",
   "notes": "Serves only the current election (no 2024 archive to test); validated on the live 2026 file structure.",
   "polls_close_utc": "2026-11-04T03:00:00Z",
   "polls_close_note": "Western NE closes 8 pm MT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 3
   }
  },
  {
   "state": "NH",
   "name": "New Hampshire",
   "category": "none",
   "official_url": "https://www.sos.nh.gov/elections/elections/election-results",
   "platform": "NH SOS",
   "format": "XLSX/PDF days after",
   "box_check": "403 from box",
   "update_frequency": "No statewide ENR; town clerks report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.sos.nh.gov/elections/elections/election-results"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 2
   }
  },
  {
   "state": "NJ",
   "name": "New Jersey",
   "category": "none",
   "official_url": "https://www.nj.gov/state/elections/election-information-results.shtml",
   "platform": "NJ DOS",
   "format": "Unofficial/official PDFs after election night",
   "box_check": "200 OK",
   "update_frequency": "No statewide ENR; 21 county clerks post results",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.nj.gov/state/elections/election-information-results.shtml"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 12
   }
  },
  {
   "state": "NM",
   "name": "New Mexico",
   "category": "scrape",
   "official_url": "https://electionresults.sos.nm.gov/",
   "platform": "NM SOS (resultsSW.aspx platform)",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionresults.sos.nm.gov/Default.aspx?eid=2882"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 3
   }
  },
  {
   "state": "NV",
   "name": "Nevada",
   "category": "scrape",
   "official_url": "https://silverstateelection.nv.gov/",
   "platform": "NV SOS",
   "format": "HTML (Incapsula bot wall)",
   "box_check": "403 Incapsula",
   "update_frequency": "As counties report; mail ballots counted for days",
   "terms": "Bot-protected; do not circumvent.",
   "evidence_2024": [
    "https://www.nvsos.gov/SOSelectionPages/results/2024StateWideGeneral/ElectionSummary.aspx"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T03:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 4
   }
  },
  {
   "state": "NY",
   "name": "New York",
   "category": "scrape",
   "official_url": "https://nyenr.elections.ny.gov/",
   "platform": "NYS BOE",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://nyenr.elections.ny.gov/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 26
   }
  },
  {
   "state": "OH",
   "name": "Ohio",
   "category": "scrape",
   "official_url": "https://liveresults.ohiosos.gov/",
   "platform": "OH SOS",
   "format": "HTML (Cloudflare challenge)",
   "box_check": "403 Cloudflare challenge",
   "update_frequency": "As counties report",
   "terms": "Bot-protected; do not circumvent.",
   "evidence_2024": [
    "https://www.ohiosos.gov/elections/election-results-and-data/2024-official-election-results/ (XLSX after canvass)"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T00:30:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 15
   }
  },
  {
   "state": "OK",
   "name": "Oklahoma",
   "category": "scrape",
   "official_url": "https://results.okelections.gov/OKER/",
   "platform": "OK State Election Board",
   "format": "HTML + ZIP export",
   "box_check": "403 (IIS) from box",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://results.okelections.gov/OKER/?elecDate=20241105 (Export tab: ZIP)"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 5
   }
  },
  {
   "state": "OR",
   "name": "Oregon",
   "category": "scrape",
   "official_url": "https://results.oregonvotes.gov/",
   "platform": "OR SOS (same vendor platform as AR)",
   "format": "HTML (+ exports)",
   "box_check": "Redirect to sos.oregon.gov on Oct 21 (site not live between elections)",
   "update_frequency": "Every ~15 min on election night (per OR SOS, May 2026)",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://sos.oregon.gov/blue-book/Documents/elections/2024-general.pdf"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T04:00:00Z",
   "polls_close_note": "Eastern Malheur Co. closes 8 pm MT; ballots must arrive by 8 pm PT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 6
   }
  },
  {
   "state": "PA",
   "name": "Pennsylvania",
   "category": "feed",
   "official_url": "https://www.electionreturns.pa.gov/",
   "platform": "PA DOS ENR",
   "format": "JSON-in-JSON (undocumented /api/ElectionReturn: GetAllElections, GET?methodName=GetSummaryData, GetOfficeData)",
   "box_check": "200 OK on /api (HTML pages behind Imperva, not used)",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.electionreturns.pa.gov/api/ElectionReturn/GET?methodName=GetSummaryData&electionid=105&electiontype=G&isactive=0"
   ],
   "nov2026": "2026 General listed; summary has TEST numbers (withheld before polls close); U.S. House office data not yet loaded",
   "adapter": "pennsylvania",
   "notes": "Feed has no certification flag: always shown as unofficial; certified results are on the DOS site.",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 17
   }
  },
  {
   "state": "RI",
   "name": "Rhode Island",
   "category": "scrape",
   "official_url": "https://elections.ri.gov/",
   "platform": "RI BOE",
   "format": "HTML (+ summary PDF/Excel after)",
   "box_check": "200 OK",
   "update_frequency": "Election night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://www.ri.gov/election/results/2024/general_election/data/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 2
   }
  },
  {
   "state": "SC",
   "name": "South Carolina",
   "category": "feed",
   "official_url": "https://scvotes.gov/elections-statistics/election-results/",
   "platform": "Clarity/Scytl ENR (white-label enr-scvotes.org)",
   "format": "JSON + CSV/XML zip",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government results site hosted by Clarity/Scytl ENR (CivicPlus). No published API terms; CloudFront WAF rate-limits automated clients. Poll politely, cite the state.",
   "evidence_2024": [
    "https://www.enr-scvotes.org/SC/122436/359624/json/en/summary.json"
   ],
   "nov2026": "EID set from scvotes.gov link on election day",
   "adapter": "clarity",
   "notes": "",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 7
   }
  },
  {
   "state": "SD",
   "name": "South Dakota",
   "category": "feed",
   "official_url": "https://electionresults.sd.gov/",
   "platform": "SD SOS (same platform as NE)",
   "format": "CSV (resultsCSV.aspx?text=All&type=SWR|BQ|LEG&map=CTY|DIST)",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionresults.sd.gov/resultsCSV.aspx?text=All&type=SWR&map=CTY"
   ],
   "nov2026": "2026 General files live with TEST data on Oct 21 (withheld before polls close)",
   "adapter": "nebraska_sd",
   "notes": "Serves only the current election (no 2024 archive to test); validated on the live 2026 file structure.",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": "Western SD closes 7 pm MT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 1
   }
  },
  {
   "state": "TN",
   "name": "Tennessee",
   "category": "scrape",
   "official_url": "https://elections.tn.gov/results.php",
   "platform": "TN SOS",
   "format": "HTML",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://elections.tn.gov/results.php"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T01:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 9
   }
  },
  {
   "state": "TX",
   "name": "Texas",
   "category": "feed",
   "official_url": "https://results.texas-election.com/",
   "platform": "Civix (TX SOS)",
   "format": "JSON (static/data/election/{id}/...)",
   "box_check": "403 Cloudflare challenge (Oct 21, 2026; whole host incl. root)",
   "update_frequency": "As counties report",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://results.texas-election.com/static/data/election/49664/1012/Federal.json (not reachable from box)"
   ],
   "nov2026": "Not checkable: host returns a Cloudflare 'Just a moment' challenge to automated requests",
   "adapter": null,
   "notes": "Parser written to the published JSON layout (adapter 'texas') but DISABLED in config: the host is bot-walled and we do not work around it. Link to the official page; enable only if TX SOS allows automated access.",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": "El Paso area closes 7 pm MT",
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 38
   }
  },
  {
   "state": "UT",
   "name": "Utah",
   "category": "feed",
   "official_url": "https://electionresults.utah.gov/results/public/Utah",
   "platform": "Enhanced Voting",
   "format": "JSON",
   "box_check": "200 OK (JSON)",
   "update_frequency": "Election night as counties upload; then daily during canvass",
   "terms": "Public government results site (Enhanced Voting platform). No published API terms; data is public record. Poll politely (>=60 s), cite the state.",
   "evidence_2024": [
    "https://electionresults.utah.gov/results/public/api/elections/utah/general11052024/data"
   ],
   "nov2026": "Not yet listed on Oct 21 (latest: 2026-06-23 primary); auto-discovered by date",
   "adapter": "enhanced_voting",
   "notes": "",
   "polls_close_utc": "2026-11-04T03:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 4
   }
  },
  {
   "state": "VA",
   "name": "Virginia",
   "category": "feed",
   "official_url": "https://enr.elections.virginia.gov/results/public/Virginia",
   "platform": "Enhanced Voting",
   "format": "JSON",
   "box_check": "200 OK (JSON)",
   "update_frequency": "Near real time as localities report",
   "terms": "Public government results site (Enhanced Voting platform). No published API terms; data is public record. Poll politely (>=60 s), cite the state.",
   "evidence_2024": [
    "https://enr.elections.virginia.gov/results/public/api/elections/Virginia/2024NovemberGeneral/data"
   ],
   "nov2026": "Election '2026-November-General' published",
   "adapter": "enhanced_voting",
   "notes": "",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 11
   }
  },
  {
   "state": "VT",
   "name": "Vermont",
   "category": "scrape",
   "official_url": "https://electionarchive.vermont.gov/",
   "platform": "VT SOS (ElectionStats; election-night ENR by town)",
   "format": "GraphQL/JSON archive (post-election); election night HTML",
   "box_check": "200 OK",
   "update_frequency": "Town clerks report through the night",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://electionarchive.vermont.gov/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T00:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 1
   }
  },
  {
   "state": "WA",
   "name": "Washington",
   "category": "feed",
   "official_url": "https://results.votewa.gov/results/public/washington",
   "platform": "Enhanced Voting",
   "format": "JSON (+ Excel report)",
   "box_check": "200 OK (JSON)",
   "update_frequency": "Election night ~8:15 p.m. PT, then once each business day as counties count (mail state)",
   "terms": "Public government results site (Enhanced Voting platform). No published API terms; data is public record. Poll politely (>=60 s), cite the state.",
   "evidence_2024": [
    "https://results.votewa.gov/results/public/api/elections/washington/20261103/data"
   ],
   "nov2026": "Election 20261103 published (contests + candidates; votes after polls close)",
   "adapter": "enhanced_voting",
   "notes": "",
   "polls_close_utc": "2026-11-04T04:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": false,
    "us_house_seats": 10
   }
  },
  {
   "state": "WI",
   "name": "Wisconsin",
   "category": "none",
   "official_url": "https://elections.wi.gov/elections/election-results",
   "platform": "WEC",
   "format": "Certified results only (XLSX after canvass)",
   "box_check": "403 from box",
   "update_frequency": "No statewide ENR; 72 county clerks post results",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://elections.wi.gov/elections/election-results"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": false,
    "governor": true,
    "us_house_seats": 8
   }
  },
  {
   "state": "WV",
   "name": "West Virginia",
   "category": "feed",
   "official_url": "https://sos.wv.gov/elections/election-data",
   "platform": "Clarity/Scytl ENR",
   "format": "JSON + CSV/XML zip",
   "box_check": "200 OK",
   "update_frequency": "As counties report",
   "terms": "Public government results site hosted by Clarity/Scytl ENR (CivicPlus). No published API terms; CloudFront WAF rate-limits automated clients. Poll politely, cite the state.",
   "evidence_2024": [
    "https://results.enr.clarityelections.com/WV/122766/356048/json/en/summary.json"
   ],
   "nov2026": "EID not published in a listing (WV elections.json is empty); must be set from the SOS link on election day",
   "adapter": "clarity",
   "notes": "",
   "polls_close_utc": "2026-11-04T00:30:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": false,
    "us_house_seats": 2
   }
  },
  {
   "state": "WY",
   "name": "Wyoming",
   "category": "none",
   "official_url": "https://sos.wyo.gov/Elections/",
   "platform": "WY SOS",
   "format": "County PDFs/Excel on election night; statewide after canvass",
   "box_check": "404 on old results path",
   "update_frequency": "County-by-county",
   "terms": "Public government data; no specific terms of use for the results files found. Cite the source; poll politely.",
   "evidence_2024": [
    "https://sos.wyo.gov/Elections/"
   ],
   "nov2026": null,
   "adapter": null,
   "notes": "",
   "polls_close_utc": "2026-11-04T02:00:00Z",
   "polls_close_note": null,
   "races_2026": {
    "us_senate": true,
    "governor": true,
    "us_house_seats": 1
   }
  }
 ]
}