Campaign Finance Monitor
Under maintenancePricing
from $10.00 / 1,000 results
Campaign Finance Monitor
Under maintenanceTicker-first feed of US federal campaign contributions from the employees and corporate PACs of given public companies — sourced from FEC Schedule A, enriched with the recipient candidate, office, and party. Corporate political exposure as a clean, auditable feed.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
alfred dias
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 days ago
Last modified
Share
What does the Campaign Finance Monitor do?
The Campaign Finance Monitor turns the FEC's public Schedule A filings into a single, clean, ticker-first feed of US federal campaign contributions flowing from the employees and corporate PACs of the public companies you name. Input a list of tickers (or company names) and a date window; the Actor resolves each company to its SEC-registered identity, queries the FEC OpenFEC API for itemized contributions whose contributor_employer matches, enriches every row with the recipient candidate, office, party, and state, and tags it with the input company's ticker — corporate political exposure as a clean, auditable feed.
Use it to follow the money around specific tickers (e.g. ["AAPL","MSFT"]), or run it wider across a watchlist. Because it runs as an Apify Actor, you can schedule it (for example monthly across a two-year cycle) and pipe new rows into Slack, email, webhooks, Zapier, Make, or your data warehouse via Apify's integrations — no scraping code required.
Why use it?
- Precision-first employer→ticker attribution — the core differentiator. The Actor matches
contributor_employeragainst authoritative SEC-registered name variants only, then re-validates each returned record. It is deliberately conservative: it would rather miss a messy spelling than attribute a donation to the wrong company. "Apple Inc." matches Apple; "Applebee's" never does. - Corporate political exposure for ESG, risk, and journalism — see which candidates and parties a company's workforce and PAC are funding, across an entire cycle, without hand-querying the FEC.
- A "follow the money" trilogy — pairs with
sec-insider-trading(insider trades) andbiotech-catalyst-monitor(regulatory catalysts) for a unified public-disclosure intelligence stack.
How to use it
- Click Try for free.
- Enter one or more tickers or company names in
companies(e.g.["AAPL","MSFT"]). - Optionally narrow the window with
dateFrom/dateTo, cap volume withmaxResults, or filter recipients withoffices/parties. - Set
contactEmail(used in the User-Agent sent to the FEC) and, for anything beyond a trial, your ownfecApiKey. - Click Start, then open the Dataset tab to download JSON, CSV, or Excel — or connect via the API. Schedule recurring runs to accumulate a rolling cycle.
Input
companies(array, required) — public-company tickers or names, e.g.["AAPL","Tesla"].dateFrom/dateTo(string, YYYY-MM-DD) — contribution receipt-date window. Defaults: start of the current FEC two-year cycle → today.maxResults(integer) — per-company cap on returned contributions. Default1000.offices(array) — filter recipients by the office they seek:PRESIDENT,SENATE,HOUSE. Empty = all.parties(array) — filter recipients by party (e.g.DEM,REP). Empty = all.fecApiKey(string) — your free FEC OpenFEC API key. TheDEMO_KEYdefault works for trials but is heavily rate-limited (~30 calls/hour); sign up at the FEC developer portal for the standard 1,000 calls/hour allotment.contactEmail(string, required) — used in the User-Agent header. The FEC asks for a descriptive User-Agent with a real contact; use a mailbox you monitor.
Output
Each dataset item is one itemized contribution, enriched with the recipient candidate and the input company's ticker. Example:
{"ticker": "AAPL","company": "Apple Inc","matchMethod": "employer","contributionType": "Individual","donorName": "Priya Sharma","donorEmployer": "Apple Inc.","donorOccupation": "Software Engineer","amount": 2900.00,"receiptDate": "2025-09-14","recipientCommittee": "Aldridge for Senate","recipientCommitteeId": "C00800001","committeeType": "Campaign","recipientCandidate": "Daniel Aldridge","office": "S","party": "DEM","state": "CA","incumbent": "Challenger","cycle": 2026,"isAmendment": false,"source": "FEC","fecUrl": "https://www.fec.gov/data/committee/C00800001/","rowHash": "a1b2c3d4e5f6a7b8"}
A SUMMARY record is written to the run's key-value store with run-level metadata: companiesRequested, rowsCount, contributionsSeen, dedupedAmendments, dateFrom, dateTo, fecPageCapHit, fecRateLimited, fecError, and unresolvedCompanies. Check it when a run returns fewer rows than expected.
Data fields
| Field | Type | Description |
|---|---|---|
ticker | string | Resolved input company ticker. |
company | string | Canonical company name (SEC-registered). |
matchMethod | string | How the contribution was attributed: employer (individual, employer-field match) or pac (company-sponsored PAC committee). |
contributionType | string | Individual, CorpPAC, or Other. |
donorName | string | Contributor name as filed on Schedule A. |
donorEmployer | string | Raw contributor_employer as filed. |
donorOccupation | string | Raw contributor_occupation as filed. |
amount | number | Contribution receipt amount (USD). |
receiptDate | string | Contribution receipt date (ISO). |
recipientCommittee | string | Recipient committee name. |
recipientCommitteeId | string | FEC committee ID. |
committeeType | string | Committee type, full (e.g. PAC, Campaign, Party). |
recipientCandidate | string | Linked candidate name; null for non-candidate committees (PAC-only, party-only). |
office | string | Office sought: P, S, or H; null when no candidate is linked. |
party | string | Candidate party (e.g. DEM, REP); null when not applicable. |
state | string | Candidate state; null when not applicable. |
incumbent | string | Incumbent, Challenger, or Open; null when not reported. |
cycle | integer | Two-year transaction period (e.g. 2026). |
isAmendment | boolean | true if the record comes from an amended or superseded filing. |
source | string | Always FEC. |
fecUrl | string | Human-readable link to the committee or filing on FEC.gov. |
rowHash | string | Dedupe key (donor + amount + date + committee + cycle). |
Pricing
This Actor uses Apify's pay-per-result pricing model with a free tier included, so you can try it at no cost before scaling up. Indicative rate: ~$0.01 per contribution row plus a ~$0.02 run-start fee. See the Pricing tab on this page for current rates.
FAQ, disclaimers, and support
Federal only — no state or local finance. The FEC covers US federal candidates and committees only. State and local campaign finance lives in 50+ separate systems and is out of scope for v1.
Why am I not seeing small individual contributions? The FEC itemizes individual contributions only above its reporting threshold (roughly $200/cycle aggregated per recipient). Smaller individual gifts appear in aggregate totals, not as distinct rows. Corporate PAC contributions are always itemized.
Why might a known employee contribution be missing? Employer matching is precision-first: the Actor validates each record's contributor_employer against SEC-registered name variants and rejects ambiguous or common-word matches. A genuinely messy employer spelling may be missed rather than risk attributing a donation to the wrong company. This tradeoff is the product's core promise.
Why do PAC contributions disappear when I filter by offices? By design. The offices filter acts on the recipient candidate's office. PAC-only contributions go to committees with no linked candidate, so they carry office: null and are excluded whenever an office filter is active. Leave offices empty to retain PAC rows.
Do I need an FEC API key? The DEMO_KEY default works for trials but is heavily rate-limited (~30 calls/hour). For anything larger, sign up free at the FEC developer portal and pass your key as fecApiKey for the standard 1,000 calls/hour allotment. A 7,200/hour tier is available from the FEC for heavy users.
How current is the data, and how are amendments handled? As current as the FEC's own filings. Amended filings supersede originals; the Actor dedupes superseded records and flags any remaining amended rows with isAmendment: true. Run-level warnings (fecRateLimited, fecPageCapHit, fecError) appear in the SUMMARY key-value store.
Is this investment or legal advice? No. This Actor is a data-aggregation tool over public FEC filings. Nothing it outputs is a recommendation to buy, sell, or hold any security, or a substitute for your own due diligence. Always verify against the linked fecUrl before acting.
Something looks wrong or missing. Please open an issue on the Actor's Issues tab with the run ID and what you expected — we read every report.