CivorenRequest access

Introduction

Introduction

Civoren models U.S. governance as one connected graph of regions, authorities, offices, contests, candidates, parties and results, with a citation behind every assertion. You reach it through whichever layer fits how you build.

51,821
Candidacies
116,647
Offices
64,072
Mapped boundaries
51,371
Authorities
18,237
Contests
1,203,442
Provenance rows

Measured from the production graph on 20 August 2026.

What makes this different

Most election data ships as a flat export of candidates and races, which leaves you reconstructing the relationships yourself. Civoren keeps those relationships intact, so a question that would be several uncertain joins elsewhere is a single traversal here.

  • Depth where others stop. The graph reaches down to county, municipal, school district and judicial races, which are precisely the tiers competitors sample or skip entirely.
  • Every fact is cited. Provenance rows point at source documents, each stored with a content hash and with the raw value the source gave us alongside the value we normalised it to. You can ask why the graph believes something and get a URL back.
  • Confidence is a real field, not a footnote. Curated data, official feeds and machine research carry distinct scores on an envelope that every node and edge shares, so you set your own quality floor with a single filter rather than trusting ours.
  • Geography is built in. One coordinate returns every jurisdiction that touches it, at any date in history, without a third-party district service in the path.
  • Data straight from candidates. Bios, images, contact channels and stated positions come from the campaigns themselves rather than from scraped approximations, and the position text is searchable by meaning as well as by keyword.

Three stores, one source of truth

Postgres holds the graph and is the only store anything writes to. Two read models are rebuilt from it rather than edited directly, so a traversal, a spatial query and a semantic search are all views of the same committed state instead of three datasets quietly drifting apart.

StoreRoleWhat it holds
Postgres and PostGISSource of truthNodes, typed edges, the full history envelope, every provenance row, and boundary geometry behind a spatial index
Neo4jDerived, for traversalA mirror with alias-aware full-text search, reconciled nightly and projected without personal data by construction
QdrantDerived, for meaningEmbeddings of candidate position text, with indexed metadata so a search can be narrowed before it runs

Both read models rebuild fully from Postgres and reconcile on a schedule, each run producing a field-level change record for human audit.

What you can call today

The documentation ships ahead of the APIs it describes, and each page says plainly where it stands. Data maturity and endpoint maturity are rated separately because those answers currently differ: the graph holds a great deal that is not yet exposed over HTTP.

CapabilityStatus
GeospatialData LiveAPI Planned
CypherData LiveAPI Planned
Semantic searchData BetaAPI Planned
GraphQLData LiveAPI Planned
RESTData LiveAPI Planned
Agents and MCPData LiveAPI Planned
WebhooksData PlannedAPI Planned
Bulk exportData LiveAPI Planned

An endpoint is only marked live when a customer holding a key can call it. It never turns green because a capability works internally. If you are evaluating Civoren now, the honest summary is that the data is real and the gateway is being built, and we would rather you read that here than discover it after signing.