Entity resolution API — U.S. federal campaign finance
Civion is an entity-resolution and enrichment API for federal campaign finance data. It matches donors, committees, and candidates across FEC filings into persistent entity IDs, then cross-references each one against corporate registries, lobbying disclosures, state filings, and SEC records.
Method
Every entity is matched twice before it's queryable: once deterministically, against shared FEC and committee identifiers, and once probabilistically, by clustering the names, employers, and addresses that refer to the same person or organization. What's left is enriched against records outside the FEC.
Self-reported and hand-entered, with no shared identifier linking a donor's records across committees, forms, or cycles.
Matched deterministically on shared identifiers where they exist, and probabilistically on name, employer, and address clusters where they don't. Every match is scored, not assumed.
The FEC filing is one record among several referencing the same entity. We check the others and attach what we find, with its source and date.
Every resolved entity is checked against
FEC filings·State campaign finance systems·Lobbying disclosures (LDA)·Corporate & LLC registries·SEC filings·Federal procurement records
Graph
A donor, a committee, a candidate, a PAC — each resolved entity sits inside a graph of who gave, who received, and who's aligned. A query returns the relationships, not just the records.
Full lineage of a contribution from source to spend, across every intermediary committee.
How concentrated a PAC's giving is around a candidate, sector, or ideological cluster.
The same edges, tracked cycle over cycle, so a relationship reads as a trend, not a snapshot.
Query
Donors, committees, candidates, and PACs sit in a single resolved graph. A query returns the entities and the edges between them as typed JSON — not rows you have to join and deduplicate yourself.
{
"query": "top_donors",
"cycle": "2024",
"geography": "TX-07",
"results": [
{ "entity_id": "CVN-8841203", "name": "Harrison, Marguerite T.", "total": 48200, "committees": 11 }
]
}{
"query": "pac_alignment",
"industry": "pharmaceuticals",
"cycle": "2022",
"pacs": [
{ "pac_id": "CVN-PAC-00042", "top_recipient": "CVN-CAN-01187", "alignment_score": 0.81 }
]
}{
"query": "lobbying_overlap",
"cycle": "2024",
"results": [
{ "entity_id": "CVN-8841203", "name": "Harrison, Marguerite T.", "registered_lobbyist": false, "employer_registered_lobbyist": true }
]
}Same dataset over REST or GraphQL. Every response carries entity IDs, match confidence, and a source citation for each enriched field.
Users
Fundraising research, opposition finance research, and donor prospecting on resolved, not raw, data.
A clean entity layer to build products on top of, instead of maintaining your own resolution pipeline.
Cross-cycle, cross-committee analysis without the deduplication work eating the research budget.
Track industry and PAC influence around specific issues, races, or legislative committees.
Check employee or client political giving against pay-to-play and conflict-of-interest rules.
A licensable, structured backbone to embed inside a broader data product.
Access
Civion isn't self-serve. We onboard a limited number of campaigns, analytics firms, researchers, and data vendors directly, and scope rate limits and entity coverage to what you're building.
For academic and non-commercial use. Query the resolved entity graph directly.
Full API access for teams building on the resolved, enriched dataset.
Bulk licensing and dedicated infrastructure for larger integrations.
Received — we'll follow up at the address you gave us.