FEC Campaign Finance Scraper - Donors, PACs & Lobbying avatar

FEC Campaign Finance Scraper - Donors, PACs & Lobbying

Pricing

from $2.00 / 1,000 contribution / donor records

Go to Apify Store
FEC Campaign Finance Scraper - Donors, PACs & Lobbying

FEC Campaign Finance Scraper - Donors, PACs & Lobbying

Scrape US federal campaign finance from the FEC: donors (name, employer, occupation, ZIP, amount), PACs, candidates, disbursements, independent expenditures & filings - plus Senate lobbying disclosures. Filter by name, employer, state or committee. Monitor mode. Export JSON, CSV, Excel.

Pricing

from $2.00 / 1,000 contribution / donor records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

FEC Campaign Finance Scraper — Donors, PACs, Candidates & Lobbying

Extract complete US federal campaign finance data straight from the FEC (OpenFEC) — individual donors (name, employer, occupation, ZIP, amount), PACs & committees (with treasurer, email, phone, website & address), candidates (with financial totals), disbursements, independent expenditures and filings — plus US Senate lobbying disclosures (registrant firms, clients, lobbyists, issues & spending) in the same actor.

No login, no scraping headaches — fast, structured JSON from official government data sources with 99%+ reliability. The lobbying mode works with no API key at all.

Why this campaign finance scraper?

Most FEC scrapers do one thing — dump individual contributions and stop. This actor ships the richest dataset in the category and is the only one that also covers lobbying disclosures and surfaces committee contact details as ready-to-use leads.

DataTypical scrapersThis actor
Individual donors (name, employer, occupation, ZIP, amount, YTD)
Candidates + financial totals (receipts, cash on hand, debts)partial
Committees & PACs with treasurer, email, phone, website, address
Disbursements / spending (Schedule B)
Independent expenditures — support/oppose (Schedule E)
Committee filings & financial reports + document links
US Senate lobbying disclosures (firm, client, lobbyists, issues, $)
Lead score (0–100) on every record
Monitor mode — only new records since last run
No start fee

Use cases

  • Political & donor lead generation — find high-value donors by employer, occupation, location or candidate; reach committees directly via treasurer name, email and phone.
  • Compliance, KYC & due diligence — screen people and organizations against FEC contributions, PAC activity and registered federal lobbying.
  • Journalism & political research — follow the money: who funds whom, which Super PACs spend for or against a candidate, and who lobbies Congress on which issues.
  • Opposition & competitive research — map a candidate's donors, vendors (disbursements) and the independent expenditures supporting or opposing them.
  • Lobbying & government-affairs intelligence — track lobbying firms, their clients, named lobbyists and issue areas; spot new registrations.
  • Market & trend analysis — aggregate contributions by employer, occupation, state or cycle for the 2024 and 2026 election cycles.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. For FEC modes, get a free api.data.gov key at api.data.gov/signup (instant, 1,000 requests/hour) and paste it into fecApiKey. The lobbying mode needs no key.
  3. Pick a mode, set your filters (donor name, employer, committee, candidate, state, cycle…), and click Start.
  4. Watch results stream into the dataset, then export as JSON, CSV, Excel, XML or RSS — or pull them via the Apify API.

Input

{
"mode": "contributions",
"fecApiKey": "YOUR_FREE_API_DATA_GOV_KEY",
"contributorEmployer": "Google",
"contributorOccupation": "Software Engineer",
"state": "CA",
"minAmount": 200,
"twoYearTransactionPeriod": 2026,
"maxResults": 500,
"monitorMode": false
}
  • mode (required) — what to scrape:
    • contributions — individual donors (Schedule A) — the donor lead-gen mode.
    • candidates — federal candidates, optionally with financial totals.
    • committees — committees & PACs with full contact details (treasurer, email, phone, website, address).
    • disbursements — committee spending (Schedule B).
    • independentExpenditures — Super PAC spending for/against candidates (Schedule E).
    • filings — committee filings & financial reports.
    • lobbying — US Senate LDA lobbying disclosures (no API key needed).
  • fecApiKey — free key from api.data.gov/signup. Required for all FEC modes; the default DEMO_KEY is shared and rate-limited (~40 req/hour) so use your own for real runs.
  • searchQuery — name to match (candidate name in candidates, committee/PAC name in committees).
  • contributorName / contributorEmployer / contributorOccupation — donor filters (contributions mode).
  • committeeId / candidateId — scope contributions, disbursements, independent expenditures or filings to one committee or candidate.
  • office / party / state / cycle — candidate filters; state also filters committees and donor contributions.
  • twoYearTransactionPeriod — even-year period for contributions/disbursements (e.g. 2026 covers 2025–2026; defaults to 2026).
  • supportOppose — keep only independent expenditures that support or oppose the candidate.
  • minAmount / maxAmount / minDate / maxDate — amount and date filters.
  • registrantName / clientName / lobbyistName / issueCode / filingYear / filingType — lobbying filters.
  • startUrls — paste fec.gov candidate/committee URLs or lda.senate.gov filing URLs to scrape directly.
  • includeCandidateTotals (default true) — add receipts, cash on hand and debts to each candidate.
  • includeCommitteeDetails (default true) — fetch full committee contact details (the lead data).
  • maxResults (default 200) — cap per run.
  • monitorMode (default false) — remember records from previous runs and emit only new ones.

Output

Every record carries a type field plus a set of normalized fields (name, amount, date, state, leadScore, url) and the full source-faithful fields for that record type.

A contribution (donor) record:

{
"type": "contribution",
"contributorName": "Schmidt, Keith",
"contributorType": "individual",
"contributorEmployer": "Google INC.",
"contributorOccupation": "Software Engineer",
"contributorCity": "Chicago",
"contributorState": "IL",
"contributorZip": "606475211",
"contributionReceiptAmount": 50,
"contributionReceiptDate": "2024-12-31",
"contributorAggregateYtd": 600,
"recipientCommitteeName": "Democratic Party Of Wisconsin Federal",
"recipientCommitteeType": "Party - Qualified",
"isIndividual": true,
"leadScore": 45,
"url": "https://docquery.fec.gov/cgi-bin/fecimg/?202505129760929412"
}

A committee / PAC record (lead data):

{
"type": "committee",
"committeeId": "C00890293",
"committeeName": "American Environmental Justice PAC, LLC",
"committeeType": "Super PAC (Independent Expenditure-Only)",
"treasurerName": "Smith, Robert",
"email": "americanenvironmentaljustice@gmail.com",
"phone": "6783275898",
"addressStreet": "4514 Chamblee Dunwoody Road, Ste 463",
"addressCity": "Atlanta",
"state": "GA",
"leadScore": 80,
"url": "https://www.fec.gov/data/committee/C00890293/"
}

A lobbying filing record:

{
"type": "lobbyingFiling",
"filingType": "Registration",
"filingYear": 2024,
"registrantName": "Tarplin, Downs & Young, LLC",
"registrantContactName": "Jennifer B. Young",
"registrantContactPhone": "+1 202-555-0140",
"registrantCity": "Washington",
"registrantState": "DC",
"clientName": "Amazon.Com Services LLC",
"clientDescription": "Leading technology company",
"issueCodes": ["Medicare/Medicaid", "Health Issues"],
"lobbyists": [{ "name": "Jane Doe", "coveredPosition": "Legislative Assistant, Rep. Smith" }],
"lobbyistCount": 10,
"leadScore": 75,
"url": "https://lda.senate.gov/filings/public/filing/140ae80b-4066-49ae-9acc-d428cc4bd65a/print/"
}

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it daily/weekly to track new donors, filings or lobbying activity in a cycle, state or for a specific committee.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, compliance flag) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/fec-campaign-finance-scraper').call({
mode: 'committees',
searchQuery: 'climate',
includeCommitteeDetails: true,
maxResults: 300,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} committee leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new donor or committee leads straight into your CRM.
  • Slack — get notified when a monitored search finds new filings.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server — ask your assistant to "find the top donors who work at Goldman Sachs this cycle" or "list lobbying firms working for Pfizer" and let it run this scraper.

More scrapers from scrapesage

Build a complete public-records & B2B intelligence stack:

Tips

  • Get a free key: FEC modes use api.data.gov (1,000 req/hour, instant). DEMO_KEY is only for quick trials — it's shared and rate-limited.
  • Donor leads: combine contributorEmployer or contributorOccupation with state and minAmount to build targeted, high-value prospect lists.
  • Committee leads: committees mode with includeCommitteeDetails returns treasurer, email, phone and address — ideal for B2B outreach to PACs and campaigns.
  • Recurring monitoring: turn on monitorMode and add a Schedule to capture only new contributions, filings or lobbying registrations each day.
  • Big result sets: contribution data is huge — narrow with employer/occupation/state/date filters and maxResults to keep runs fast and focused.

FAQ

Do I need an API key? For FEC modes (contributions, candidates, committees, disbursements, independent expenditures, filings) you need a free api.data.gov key — it takes seconds. The lobbying mode uses the keyless US Senate LDA database and needs nothing.

Where does the data come from? Official US government sources: the FEC's OpenFEC API and the US Senate Lobbying Disclosure Act database. All data is public record.

Which election cycles are covered? All of them. Contributions and disbursements are organized into two-year transaction periods (e.g. 2026, 2024, 2022); candidates and committees go back decades.

Can I export to Google Sheets, CSV or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

Is the contact data for committees real? Yes — committee treasurer names, emails, phones and addresses come straight from the FEC's own committee records (Form 1 filings). The committees mode with includeCommitteeDetails surfaces them.

How do I monitor new filings automatically? Enable monitorMode and create a Schedule. The actor remembers what it has already returned and emits only new records each run — and it doesn't conflict with Apify Schedules.

Is this legal? This actor collects publicly available government data only. You are responsible for using it in compliance with applicable laws (including the FEC's rules that campaign-finance data may not be used to solicit contributions or for commercial purposes) and each source's terms.

A field is null — why? Some records genuinely don't include every field (e.g. a committee with no website, a lobbying filing with no listed phone). Fields are null only when the source doesn't provide the value.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.