Campaign Finance data-use policy
Campaign Finance republishes public campaign-finance records in the public interest. This page states the legal basis and the hard firewall rules the pipeline enforces.
Legal basis
Campaign Finance operates as a press-like publisher of public records under the 11 CFR 104.15(c) media / publication exception, consistent with FEC v. Political Contributions Data, Inc., 943 F.2d 190 (2d Cir. 1991), which narrowly construes "commercial purpose" and treats a for-profit compiler of public FEC data as press-like. Campaign Finance does not rely on the aggregated-data advisory opinions (AO 2012-22 / 2014-07), which do not authorize individual-name display.
Statutory-use restriction (federal)
Federal law (52 U.S.C. §30111(a)(4); 11 CFR 104.15) bars using FEC contributor information to solicit contributions or for any commercial purpose. Iowa's IECDB data (Iowa Code 68B.32A(7)) is licensed CC BY-NC — stricter still. Where individual contributor data is shown, Campaign Finance posts the statutory notice and attributes the source ("Source: FEC" / "Source: IECDB").
Hard firewall rules (enforced in code)
- Never display individual donor street address or phone — anywhere (UI, API, export, page source, cached JSON). The permitted field set is name, city/state, employer, occupation, amount, date, recipient.
- Monetize the value layer, never the raw list. Campaign Finance does not sell, rent, or paywall the raw individual-contributor records, and builds no donor-propensity model (the MUR 7062 line).
- Fundraising firewall. Campaign Finance never uses displayed contributor data to solicit the people in it. Any Campaign Finance donation/opt-in list is built strictly from site opt-ins — never seeded from ingested data.
- Share cards are aggregate-only. The real defamation exposure is private donors (a negligence standard, unlike public officials' actual-malice standard). An entity-resolution false merge on a viral card is the risk, so shareable cards show aggregate figures only; named individuals appear only in the deeper table with a match-confidence indicator.
- No accusatory imputation. The auto-generated "notable context" line is leashed to on-page cited facts and hard-blocks accusatory/criminal terms.
v1 scope
v1 displays aggregate figures only — no individual-contributor rows are shown at all — so rules 1–4 are satisfied trivially today. They are documented here because they govern the deeper donor table shipped in a later phase, and are wired into the render layer from day one.
Bulk data
Every member's profile data is also available as one file — /data/all-members.json — the same aggregate-only records as the per-member pages, concatenated instead of fetched one at a time. It carries the same statutory-use restriction and firewall rules as the rest of this policy; nothing in it goes beyond what's already public on the site.
For spreadsheets, /data/all-members.csv has one row per member with the same aggregate-only figures, labeled as in the methodology; a blank cell means the figure could not be determined (the "—" on profile pages), never zero, and the same statutory-use restriction applies.
Embeds
Any member's profile can be embedded on another site — a compact card with name, party, state, cycle receipts, and small-donor share, linked back to the full profile. Same aggregate-only figures already on the public page; same statutory-use restriction and firewall rules as the rest of this policy.
Static iframe:
<iframe src="https://campaign.finance/embed/s000033.html" width="320" height="150"></iframe>JS snippet (stays current without re-embedding):
<div data-cf-bioguide="S000033"></div>
<script type="module" src="https://campaign.finance/embed.js"></script>The snippet renders any data-cf-bioguide placeholders present when the page loads; elements added later (e.g. by other page scripts) won't be picked up automatically.
Replace s000033 / S000033 with any member's bioguide ID — it's the last path segment of their profile URL (e.g. campaign.finance/s000033.html).