ParseForge Scrapers

FEC Campaign Finance Contributions Scraper

parseforge/fec-campaign-finance-contributions-scraper

Developer toolsAutomationOther

Scrapes FEC campaign finance contributions by contributor, committee, location, employer, occupation, date, or amount. Returns each contribution as a flat row with donor, committee, amount, and date fields.

Run this scraper See the API call
Total users
8
Monthly active
0
Total runs
255
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

FEC Campaign Finance Contributions Scraper

Scrape FEC campaign finance contributions by contributor, committee, location, employer, or date, up to a million per run. Every contribution comes with its amount, date, donor details, and committee ID. No login or API key required beyond a free FEC key. Export to CSV, JSON, Excel, or XML.

The FEC's official API needs a key, pagination handling, and rate-limit management. This reads the public contribution records directly, filtered by contributor name, committee, location, employer, occupation, date, or amount, and returns each match in one fixed schema.

Who uses it What they scrape FEC for
Journalists Investigating who funds a particular candidate or committee
Political researchers Mapping donor networks across states and industries
Nonprofits and watchdogs Tracking contributions that exceed legal limits or come from prohibited sources
Campaign strategists Analyzing opponent donor bases to find persuasion targets
Academic researchers Building datasets for studies on money in politics

What it does

This Actor collects FEC campaign finance contributions by contributor, committee, location, employment, date, or amount, and returns each one as a flat row.

  • πŸ” Contributor search: filter by name, city, state, ZIP, employer, or occupation, with partial matches supported.
  • πŸ›οΈ Committee search: pull all contributions to a specific FEC committee ID.
  • πŸ“… Date and amount filters: narrow by receipt date range, minimum or maximum contribution amount, or two-year election cycle.
  • πŸ“Š Flat output: every contribution is one row with donor, committee, amount, and date fields, ready for analysis.
  • πŸ”‘ Free API key: use the demo key for testing or get your own free key from FEC for higher limits.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with FEC data

πŸ“° Investigate a candidate's donors.

A journalist enters a committee ID and a date range to get every contribution over $200, then cross-references employer names to find industry patterns.

πŸ—ΊοΈ Map donor geography.

A political researcher filters by state and ZIP code to see which neighborhoods give the most to a particular campaign.

🏒 Track corporate influence.

A watchdog group searches by employer name to identify all contributions from employees of a specific company.

πŸ“Š Build an academic dataset.

A graduate student pulls all contributions for a two-year election cycle and exports to CSV for regression analysis.

🎯 Find persuasion targets.

A campaign strategist scrapes donors to an opponent's committee and filters by amount to identify high-value potential supporters.

Why choose this scraper

What you get
No FEC API coding The Actor handles pagination, rate limits, and retries for you
One flat schema Every contribution is a single row with consistent fields, no nested JSON
Up to a million rows Paid users can scrape up to 1,000,000 contributions per run
Export anywhere CSV, JSON, Excel, or XML, ready for spreadsheets, databases, or BI tools

How it compares

No other Store actor targets FEC the same way, so the honest comparison is with the alternatives teams actually weigh.

FEC Campaign Finance Contributions Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When FEC changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from contributor name, committee ID, location, employer, occupation, date range, amount range, or election cycle, alone or together, and filters run as each contribution is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "apiKey": "DEMO_KEY",
  "maxItems": 10,
  "contributorName": "Smith"
}

A larger pull:

{
  "apiKey": "DEMO_KEY",
  "maxItems": 200,
  "contributorName": "Smith"
}

Pricing

Pay-per-result: $0.0075 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.75
1,000 results $7.50
10,000 results $75.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the FEC Campaign Finance Contributions Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to FEC through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/fec-campaign-finance-contributions-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that you have entered at least one search parameter, such as contributor name or committee ID. Also verify that your filters are not too restrictive. Try removing some filters or broadening your search terms.

Why am I getting an authentication error?

Make sure your API key is correct. If you are using DEMO_KEY, note that it has limited functionality and may be rate-limited. Get a free key from https://api.open.fec.gov/developers/ for better performance.

Why is my run limited to 100 items?

Free users are limited to 100 contributions per run. To scrape more, upgrade to a paid plan and set maxItems to a higher value or leave it empty for unlimited.

Why are some contributions missing?

The FEC API may not return all contributions if they are very recent or if the data has not been fully processed. Try adjusting your date range or waiting a few days and running again.

How do I export to Excel?

When you run the Actor, select 'Excel' as the output format. The Actor will generate an .xlsx file that you can download from the run's output tab.

FAQ

Question Answer
Do I need an FEC API key? Yes, the Actor requires an FEC OpenFEC API key. You can use the demo key DEMO_KEY for limited testing, but for production use you should get a free key from https://api.open.fec.gov/developers/.
What is the maximum number of contributions I can scrape? Free users are limited to 100 contributions per run. Paid users can scrape up to 1,000,000 contributions per run, or leave the max items field empty for unlimited scraping.
Can I search by contributor name? Yes, the contributorName field supports partial matches. For example, entering 'Smith' will return all contributors whose name contains 'Smith'.
How do I find a committee ID? You can browse committees at https://www.fec.gov/data/browse-data/?tab=committees. The committee ID is a code like C00034157.
Can I filter by date? Yes, use minDate and maxDate in YYYY-MM-DD format to filter by receipt date range. You can also filter by two-year transaction period, such as 2024 for the 2023-2024 cycle.
Can I filter by contribution amount? Yes, use minAmount and maxAmount to filter by contribution amount in USD. Both are optional and can be used together.
What output formats are supported? The Actor can export data to CSV, JSON, Excel, or XML. You choose the format when you run the Actor.
Does the Actor handle pagination automatically? Yes, the Actor automatically handles pagination and rate limits, so you don't need to write any code.
Can I search by employer or occupation? Yes, the contributorEmployer and contributorOccupation fields support partial matches. For example, entering 'Google' will return all contributions from Google employees.
Is there a limit on how many filters I can combine? No, you can combine any number of filters. The Actor will apply all of them to narrow down the results.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Federal Election Commission. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
apiKey string FEC OpenFEC API key. Get a free API key from https://api.open.fec.gov/developers/. Demo key: DEMO_KEY (limited functionality). DEMO_KEY
maxItems integer Maximum number of contributions to scrape. Free users: Required, maximum 100 (auto-limited). Paid users: Optional, maximum 1,000,000. Leave empty for unlimited (paid users only). 10
contributorName string Filter contributions by contributor name (partial match supported). Smith
committeeId string FEC committee ID (e.g., C00034157). Find committee IDs at https://www.fec.gov/data/browse-data/?tab=committees. not set
contributorCity string Filter contributions by contributor city. not set
contributorState string Filter contributions by contributor state (2-letter state code, e.g., CA, NY). not set
contributorZip string Filter contributions by contributor ZIP code. not set
contributorEmployer string Filter contributions by contributor employer (partial match supported). not set
contributorOccupation string Filter contributions by contributor occupation (partial match supported). not set
minDate string Filter contributions by minimum receipt date (YYYY-MM-DD format). not set
maxDate string Filter contributions by maximum receipt date (YYYY-MM-DD format). not set
minAmount number Filter contributions by minimum amount in USD. not set
maxAmount number Filter contributions by maximum amount in USD. not set
twoYearTransactionPeriod integer Filter contributions by two-year transaction period (e.g., 2024 for 2023-2024 cycle). not set

Pricing

from $1.80 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.005 to $0.0075
result Single result in the default dataset. $0.0018 to $0.0027

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~fec-campaign-finance-contributions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run FEC Campaign Finance Contributions Scraper on Apify All scrapers