/api/v1/flipsPaginated county comparisons and CSV export
API schema 1.0.0
The v1 API uses canonical five-digit FIPS geography, explicit confidence labels, stable envelopes, pagination metadata, release identifiers, and CSV or ZIP bulk paths.
{ data, meta }. Metadata includes generatedAt, source, schemaVersion, and releaseId. Live endpoints return releaseId: null; frozen manifests carry their dated ID. Collections also include total, limit, and offset. Errors use { data: null, error, meta } with the same schema metadata.Legacy unversioned endpoints remain available; new integrations should prefer v1.
/api/v1/flipsPaginated county comparisons and CSV export
/api/v1/counties/{fips}One permanent county profile
/api/v1/jurisdictionsPaginated canonical county registry
/api/v1/jurisdictions/searchFIPS, county-name, and alias search
/api/v1/confidenceShared confidence vocabulary
/api/v1/releasesVersioned national release catalog
/api/v1/releases/{releaseId}/downloadComplete national ZIP
/api/v1/equipment-systemsFeature-gated equipment catalog summaries
/api/v1/equipment-systems/{slug}One source-linked equipment dossier
curl "https://www.civicresultmaps.org/api/v1/flips?from=2020&to=2024&direction=blue_to_red&limit=100"
curl "https://www.civicresultmaps.org/api/v1/counties/40019"
Confidence describes the geography/source relationship, not whether a political outcome is credible.
The published row maps directly to the canonical county or county-equivalent geography.
The value is reproducibly aggregated, normalized, or calculated from official published rows.
An official row is available, but a field, jurisdiction, candidate total, or reconciliation item remains incomplete.
The value is contextual or supplemental and should not be treated as a silent replacement for an official certified total.
The reporting unit is statewide, UOCAVA, federal-only, or otherwise not a canonical county geography.
No comparable canonical county row is available for this data point.
Use limit and offset. Add view=compact for a national visualization payload; full JSON is capped at 1,000 rows. Filter server-side by year pair, direction, state, FIPS, or name.
Use a dated release ZIP instead of paging through live endpoints. Every archive includes caveats, a data dictionary, and the exact release manifest.