Campaign Finance Monitor avatar

Campaign Finance Monitor

Under maintenance

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Campaign Finance Monitor

Campaign Finance Monitor

Under maintenance

Ticker-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

alfred dias

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 days ago

Last modified

Categories

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_employer against 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) and biotech-catalyst-monitor (regulatory catalysts) for a unified public-disclosure intelligence stack.

How to use it

  1. Click Try for free.
  2. Enter one or more tickers or company names in companies (e.g. ["AAPL","MSFT"]).
  3. Optionally narrow the window with dateFrom / dateTo, cap volume with maxResults, or filter recipients with offices / parties.
  4. Set contactEmail (used in the User-Agent sent to the FEC) and, for anything beyond a trial, your own fecApiKey.
  5. 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. Default 1000.
  • 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. The DEMO_KEY default 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

FieldTypeDescription
tickerstringResolved input company ticker.
companystringCanonical company name (SEC-registered).
matchMethodstringHow the contribution was attributed: employer (individual, employer-field match) or pac (company-sponsored PAC committee).
contributionTypestringIndividual, CorpPAC, or Other.
donorNamestringContributor name as filed on Schedule A.
donorEmployerstringRaw contributor_employer as filed.
donorOccupationstringRaw contributor_occupation as filed.
amountnumberContribution receipt amount (USD).
receiptDatestringContribution receipt date (ISO).
recipientCommitteestringRecipient committee name.
recipientCommitteeIdstringFEC committee ID.
committeeTypestringCommittee type, full (e.g. PAC, Campaign, Party).
recipientCandidatestringLinked candidate name; null for non-candidate committees (PAC-only, party-only).
officestringOffice sought: P, S, or H; null when no candidate is linked.
partystringCandidate party (e.g. DEM, REP); null when not applicable.
statestringCandidate state; null when not applicable.
incumbentstringIncumbent, Challenger, or Open; null when not reported.
cycleintegerTwo-year transaction period (e.g. 2026).
isAmendmentbooleantrue if the record comes from an amended or superseded filing.
sourcestringAlways FEC.
fecUrlstringHuman-readable link to the committee or filing on FEC.gov.
rowHashstringDedupe 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.