FEC Campaign Finance Data Scraper avatar

FEC Campaign Finance Data Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
FEC Campaign Finance Data Scraper

FEC Campaign Finance Data Scraper

Scrape US campaign finance data from the Federal Election Commission (FEC) - candidates, committees, contributions, and expenditures. Replaces OpenSecrets (API discontinued April 2025). Free official FEC API, no registration required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Extract US campaign finance data from the Federal Election Commission (FEC) — the official source for candidate filings, committee disclosures, contribution receipts, and expenditure data. This actor replaces OpenSecrets (API discontinued April 2025) and uses the free official FEC public REST API.

What You Get

  • Candidates — name, party, office, state, election years, incumbent status, and FEC profile URL
  • Committees — PACs, party committees, Super PACs with treasurer, type, designation, and filing info
  • Receipts — individual and PAC contributions with contributor info, amounts, dates, and election type
  • Disbursements — campaign expenditures with recipient, amount, date, and description
  • Candidate Totals — aggregated financial summaries: total raised, total spent, cash on hand per candidate

Data Source

All data is sourced from the official FEC REST API (api.open.fec.gov/v1) maintained by the Federal Election Commission. The API is free to use without registration using the built-in DEMO_KEY (30 requests/hour). Register a free key at api.data.gov for higher rate limits.


Input

FieldTypeDescription
modeSelectWhat to fetch: searchCandidates, searchCommittees, receipts, disbursements, candidateTotals
officeSelectFilter by office: P (President), S (Senate), H (House)
electionYearSelectFilter by election cycle: 2016–2024
partySelectFilter by party: DEM, REP, IND, LIB, GRN
stateSelectFilter by 2-letter US state abbreviation
contributorStateSelectFilter receipts by contributor's state (mode=receipts only)
committeeTypeSelectFilter committees by type — PAC, Super PAC, Party, etc.
apiKeyTextFEC API key — uses DEMO_KEY by default (30 req/hr). Register at api.data.gov for higher limits.
maxItemsIntegerMaximum records to return (1–2000, default 50)

Modes

searchCandidates — Search and list candidates

Returns candidates filtered by office, year, party, and state.

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

searchCommittees — Search political committees

Returns PACs, party committees, Super PACs, and candidate campaign committees.

{
"mode": "searchCommittees",
"committeeType": "U",
"state": "CA",
"maxItems": 50
}

receipts — Get campaign contribution receipts

Returns individual contributions and PAC receipts with contributor details.

{
"mode": "receipts",
"electionYear": "2024",
"contributorState": "TX",
"maxItems": 100
}

disbursements — Get campaign expenditures

Returns money spent by campaigns with recipient details and descriptions.

{
"mode": "disbursements",
"electionYear": "2024",
"maxItems": 100
}

candidateTotals — Get campaign finance summaries

Returns aggregated financial totals per candidate including money raised, spent, and cash on hand.

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

Output Fields

Candidates

FieldDescription
nameCandidate's full name
candidateIdFEC candidate ID (e.g., P80001571)
partyParty code (DEM, REP, IND, etc.)
partyFullFull party name
officeOffice sought (P/S/H)
officeFullFull office name
stateState abbreviation
districtCongressional district (House candidates)
electionYearsList of election years active
incumbentChallengeI (Incumbent), C (Challenger), O (Open Seat)
incumbentChallengeFullFull incumbent/challenger designation
candidateStatusC (statutory), N (non-statutory), P (pending)
firstFileDateDate of first FEC filing
urlFEC candidate profile URL

Committees

FieldDescription
nameCommittee name
committeeIdFEC committee ID (e.g., C00703975)
committeeTypeSingle-letter type code
committeeTypeFullFull committee type description
partyParty affiliation
stateState of registration
cityCity of registration
zipCodeZIP code
treasurerNameCommittee treasurer
filingFrequencyFiling frequency (M=Monthly, Q=Quarterly, etc.)
designationCommittee designation code
designationFullFull designation description
urlFEC committee profile URL

Receipts (Contributions)

FieldDescription
contributorNameFull contributor name
contributorFirstNameFirst name
contributorLastNameLast name
contributorCityCity
contributorStateState
contributorZipZIP code
contributorEmployerEmployer name
contributorOccupationOccupation
contributionReceiptAmountDollar amount
contributionReceiptDateDate (YYYY-MM-DD)
recipientNameReceiving committee name
recipientCommitteeIdFEC committee ID of recipient
fecElectionTypeDescElection type (PRIMARY, GENERAL, etc.)
reportYearReport year
transactionIdFEC transaction ID
urlRecipient committee FEC URL

Disbursements (Expenditures)

FieldDescription
recipientNameWho received the payment
recipientCityRecipient city
recipientStateRecipient state
disbursementAmountDollar amount
disbursementDateDate (YYYY-MM-DD)
disbursementDescriptionPurpose description
spenderNameSpending committee name
spenderCommitteeIdFEC committee ID of spender
transactionIdFEC transaction ID
urlSpender committee FEC URL

Candidate Totals

FieldDescription
nameCandidate name
candidateIdFEC candidate ID
partyParty code
officeOffice sought
electionYearElection cycle year
totalReceiptsTotal money raised
totalDisbursementsTotal money spent
cashOnHandEndPeriodCash on hand at end of period
individualItemizedContributionsTotal individual contributions
incumbentChallengeIncumbent/Challenger/Open
urlFEC candidate profile URL

Example Output Record (Candidate Total)

{
"name": "BIDEN, JOSEPH R JR",
"candidateId": "P80001571",
"party": "DEM",
"partyFull": "DEMOCRATIC PARTY",
"office": "P",
"officeFull": "President",
"state": "US",
"electionYear": 2024,
"totalReceipts": 123456789.50,
"totalDisbursements": 98765432.10,
"cashOnHandEndPeriod": 24691357.40,
"incumbentChallenge": "I",
"incumbentChallengeFull": "Incumbent",
"url": "https://www.fec.gov/data/candidate/P80001571/",
"recordType": "candidateTotals",
"scrapedAt": "2025-05-25T10:30:00+00:00"
}

Use Cases

  • Political research — Track campaign finance activity across elections and candidates
  • Journalism — Investigate donor networks, PAC spending, and campaign war chests
  • Compliance monitoring — Track competitor or allied committee spending
  • Academic research — Analyze fundraising patterns, party spending, and donor geography
  • Civic tech — Build donor lookup tools or campaign finance dashboards
  • Lobbying intelligence — Monitor industry PAC contributions to key legislators

Rate Limits

The default DEMO_KEY allows 30 requests per hour. For higher throughput:

  1. Register a free API key at api.data.gov
  2. Enter your key in the apiKey field
  3. The actor automatically slows requests when using DEMO_KEY to stay within limits

FAQ

Q: Is registration required? No. The DEMO_KEY works out of the box with no signup required.

Q: How current is the data? FEC data is updated as committees submit filings. Major committees file monthly or quarterly; others file around election deadlines.

Q: What do committee type codes mean?

  • P — Presidential campaign committee
  • H — House campaign committee
  • S — Senate campaign committee
  • Q — Qualified PAC
  • U — Super PAC (Independent Expenditure-Only)
  • X / Y — Party committees (non-qualified / qualified)

Q: What are incumbent challenge codes?

  • I — Incumbent
  • C — Challenger
  • O — Open seat (no incumbent running)

Q: Can I filter receipts by contributor? Currently you can filter by contributor state. Additional filters may be added in future versions.

Q: What years of data are available? The FEC API includes data back to the 1970s. Election years available: 2016, 2018, 2020, 2022, 2024.