OrbTop

FEC Campaign Finance Crawler - Candidates, PACs & Contributions

BUSINESSOTHER

FEC Campaign Finance Crawler - Candidates, PACs & Contributions

Crawl campaign finance data from the Federal Election Commission (FEC) API. Extract candidates with financial summaries, committees and PACs, and individual contributions. Filter by election year, state, party, and office. Exports structured JSON for political researchers, journalists, and compliance teams.

What Does the FEC Campaign Finance Crawler Do?

The FEC Campaign Finance Crawler queries the official FEC API to extract structured campaign finance records from the Federal Election Commission's public database. The FEC tracks all federal campaign finance activity in the United States, including candidate fundraising, committee (PAC) registrations, and individual political contributions. The crawler operates in three modes, each targeting a different FEC dataset.

FEC Campaign Finance Crawler Features

  • Extracts candidate financial summaries including total receipts, disbursements, cash on hand, individual contributions, and debts owed from the /candidates/totals/ endpoint
  • Extracts committee and PAC data including committee type, designation, treasurer, filing frequency, and party affiliation from the /committees/ endpoint
  • Extracts individual contribution records including contributor name, employer, occupation, amount, date, and recipient committee from the /schedules/schedule_a/ endpoint
  • Filters by election year -- specify any federal election cycle (e.g., 2024, 2026)
  • Filters by state -- US state code filtering (e.g., CA, NY, TX)
  • Filters by party -- Democratic, Republican, Libertarian, Green, or Independent
  • Filters by office -- President, Senate, or House (candidates mode)
  • Filters by name -- search candidates, committees, or contributors by name
  • Filters by minimum amount -- set a dollar threshold for contributions
  • Handles pagination automatically -- page-based for candidates and committees, index-based cursors for contributions
  • No proxy required -- the FEC API is a public government service with no bot detection

FEC Campaign Finance Crawler Output Fields

Candidates Mode

Field Type Description
candidate_id string FEC candidate ID (e.g., P80000722)
candidate_name string Candidate full name
party string Party abbreviation (DEM, REP, LIB, etc.)
party_full string Full party name
office_full string Office sought (President, Senate, House)
state string State code
district string Congressional district number (House only)
election_year number Election cycle year
incumbent_challenge string Incumbent/Challenger/Open seat status
candidate_status string Candidate status code
total_receipts number Total receipts for the cycle
total_disbursements number Total disbursements for the cycle
cash_on_hand number Cash on hand at end of reporting period
total_individual_contributions number Total itemized individual contributions
debts_owed number Debts owed by committee
coverage_end_date string End date of latest financial reporting period
has_raised_funds boolean Whether the candidate has raised any funds

Committees Mode

Field Type Description
committee_id string FEC committee ID (e.g., C00684373)
committee_name string Committee name
committee_type string Committee type (Presidential, House, Senate, PAC, etc.)
designation string Committee designation (Principal, Authorized, Joint, etc.)
party string Party abbreviation
party_full string Full party name
state string State code
treasurer_name string Committee treasurer name
filing_frequency string Filing frequency (Monthly, Quarterly, etc.)
organization_type string Organization type (Corporation, Labor, Trade, etc.)
first_file_date string Date of first filing

Contributions Mode

Field Type Description
contributor_name string Individual contributor full name
contributor_employer string Contributor employer
contributor_occupation string Contributor occupation
contributor_city string Contributor city
contributor_state string Contributor state code
contributor_zip string Contributor ZIP code
contribution_amount number Contribution amount in USD
contribution_date string Date of contribution
receipt_type string Receipt type description
recipient_committee_id string Committee receiving the contribution
recipient_committee_name string Name of committee receiving the contribution
two_year_period number Two-year transaction period
fec_url string URL to the original FEC filing document

Who Uses FEC Campaign Finance Data?

  • Political researchers: Track candidate fundraising totals, compare financial positions across races, and analyze PAC spending patterns
  • Journalists: Investigate individual contribution records, identify top donors by employer or occupation, and follow the money in federal elections
  • Compliance teams: Monitor committee filings, verify contribution limits, and audit donor activity across election cycles
  • Campaign strategists: Benchmark fundraising against opponents, analyze donor demographics by state and occupation, and identify contribution trends
  • Advocacy organizations: Track PAC and committee activity, monitor corporate political spending, and research donor networks
  • Academic researchers: Study campaign finance trends, model election spending patterns, and analyze the relationship between fundraising and electoral outcomes

How to Use the FEC Campaign Finance Crawler

Input Parameters

Parameter Required Default Description
mode No candidates Crawl mode: candidates, committees, or contributions
electionYear No 2026 Election cycle year (even years: 2024, 2026, etc.)
state No All US state code (e.g., CA, NY, TX)
party No All Party filter: DEM, REP, LIB, GRE, IND
office No All Office filter (candidates mode): P (President), S (Senate), H (House)
searchName No (none) Filter by candidate name (in candidates mode), committee/PAC name (in committees mode), or contributor name (in contributions mode) — see "How to search by candidate" below
minAmount No 0 Minimum contribution amount (contributions mode)
maxItems No 100 Maximum records to return
fecApiKey No DEMO_KEY Your FEC API key (free at https://api.data.gov/signup/)

How to Search by Candidate

To target a specific candidate, set mode to candidates and put the candidate's name in searchName. Last name alone usually works; full name and partial matches also match. The FEC API matches on the name field of registered candidates.

{
    "mode": "candidates",
    "searchName": "Trump",
    "electionYear": 2024
}
{
    "mode": "candidates",
    "searchName": "Elizabeth Warren",
    "electionYear": 2024,
    "office": "S"
}

The same searchName field works in committees mode (search PAC/committee names) and contributions mode (search individual contributor names — e.g. "Smith" returns donations from people named Smith).

Example Configurations

Get 2024 presidential candidates sorted by fundraising:

{
    "mode": "candidates",
    "electionYear": 2024,
    "office": "P",
    "maxItems": 50
}

Get Democratic Senate committees in California:

{
    "mode": "committees",
    "electionYear": 2024,
    "party": "DEM",
    "state": "CA",
    "maxItems": 50
}

Search individual contributions by name:

{
    "mode": "contributions",
    "searchName": "Smith",
    "state": "NY",
    "electionYear": 2024,
    "minAmount": 5000,
    "maxItems": 50
}

Sample Output

Candidate Record

{
    "mode": "candidates",
    "candidate_id": "P80000722",
    "candidate_name": "TRUMP, DONALD J.",
    "party": "REP",
    "party_full": "Republican Party",
    "office_full": "President",
    "state": "US",
    "district": "",
    "election_year": 2024,
    "incumbent_challenge": "Incumbent",
    "candidate_status": "C",
    "total_receipts": 388537817.23,
    "total_disbursements": 341872942.56,
    "cash_on_hand": 46664874.67,
    "total_individual_contributions": 198723456.78,
    "debts_owed": 0,
    "coverage_end_date": "2024-09-30",
    "has_raised_funds": true
}

Contribution Record

{
    "mode": "contributions",
    "contributor_name": "SMITH, JOHN",
    "contributor_employer": "ACME CORP",
    "contributor_occupation": "ENGINEER",
    "contributor_city": "NEW YORK",
    "contributor_state": "NY",
    "contributor_zip": "10001",
    "contribution_amount": 5600,
    "contribution_date": "2024-03-15",
    "receipt_type": "15E",
    "recipient_committee_id": "C00580100",
    "recipient_committee_name": "HARRIS FOR PRESIDENT",
    "two_year_period": 2024,
    "fec_url": "https://docquery.fec.gov/cgi-bin/fecimg/?202410159723456789"
}

FEC Campaign Finance Data FAQ

Where do I input which candidate I want to focus on? Use the searchName field. Set mode to candidates and put the candidate's name (last name, full name, or partial) in searchName. See "How to Search by Candidate" above for examples.

How do I get campaign finance data from the FEC? Use the FEC Campaign Finance Crawler to query the official FEC API. Select a mode (candidates, committees, or contributions), apply filters for year, state, and party, and the crawler returns structured JSON records with financial data.

Do I need an API key? A free API key from https://api.data.gov/signup/ is strongly recommended. Without one, the crawler falls back to the DEMO_KEY, which is shared across all users and heavily rate-limited. With your own key, the crawler processes approximately 900 requests per hour.

How many records are in the FEC database? The FEC tracks approximately 5,000 candidates per election cycle, 88,000+ registered committees, and over 200 million individual contribution records across all cycles. New data is added daily during active filing periods.

What is the contributions mode filter requirement? Contributions mode requires either a searchName or state filter. The FEC API does not allow unrestricted queries across the full 200M+ contribution dataset.

Does this crawler require proxies? No. The FEC API is a public US government service. No proxies, CAPTCHA solving, or special headers are required.

How long does a typical run take? With a personal API key, 100 candidates return in under a minute (single API call). Larger extractions at 900 requests/hour: 5,000 candidates take approximately 3 minutes, and 1,000 contributions take approximately 40 seconds.

How is the data paginated? Candidates and committees use standard page-based pagination (100 results per page). Contributions use index-based cursor pagination, which the crawler handles automatically using last_index values from the FEC API.

Need a Custom Feature?

If you need additional filters, custom data transformations, or integration with your political research pipeline, file an issue or get in touch.