FEC Data Scraper avatar

FEC Data Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
FEC Data Scraper

FEC Data Scraper

Scrape FEC campaign finance data - search candidates, committees, filings, and fundraising totals from the Federal Election Commission public API.

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

5 days ago

Last modified

Share

Extract campaign finance data from the Federal Election Commission (FEC) public API. Search candidates, political committees, campaign filings, and fundraising totals across all US federal elections.

Features

  • Search FEC candidates by name, office, party, state, and election year
  • Search political committees and PACs
  • Retrieve campaign finance filings (F3P, F3X, etc.)
  • Get fundraising totals: total receipts, disbursements, and cash on hand
  • Covers presidential, senate, and house races from 1996 onwards
  • Uses FEC public API (free DEMO_KEY by default; bring your own for higher limits)

Input

FieldTypeDescription
modeStringOne of: searchCandidates, searchCommittees, searchFilings, searchTotals
searchQueryStringName or keyword to search (e.g. "Biden", "Trump")
officeStringOffice filter: Any, President (P), Senate (S), House (H)
partyStringParty: DEM, REP, IND, LIB, GRE
electionYearIntegerElection cycle year (e.g. 2024)
stateStringTwo-letter US state code (e.g. "NY", "CA")
apiKeyStringFEC API key from api.data.gov (optional; default: DEMO_KEY)
maxItemsIntegerMaximum number of results (default: 50, max: 5,000)

Example Inputs

Search presidential candidates:

{
"mode": "searchCandidates",
"searchQuery": "Biden",
"office": "P",
"electionYear": 2024,
"maxItems": 20
}

Search committees:

{
"mode": "searchCommittees",
"searchQuery": "progressive",
"maxItems": 50
}

Search fundraising totals:

{
"mode": "searchTotals",
"searchQuery": "Trump",
"office": "P",
"electionYear": 2024,
"maxItems": 10
}

Output

Candidate Records (recordType: "candidate")

FieldTypeDescription
candidateIdStringFEC candidate ID (e.g. P80001571)
candidateNameStringFull name of the candidate
officeStringOffice sought: P, S, or H
partyStringParty abbreviation
stateStringState of the race
districtStringHouse district (if applicable)
electionYearsArrayElection years the candidate has run
incumbentStatusStringChallenger, Incumbent, or Open seat
cyclesArrayElection cycles
sourceUrlStringFEC profile URL

Committee Records (recordType: "committee")

FieldTypeDescription
committeeIdStringFEC committee ID
committeeNameStringCommittee name
committeeTypeStringCommittee type code
committeeTypeFullStringFull committee type description
organizationTypeStringOrganization type
partyStringParty affiliation
stateStringState of registration
treasurerNameStringCommittee treasurer name
firstFileDateStringDate of first filing
lastFileDateStringDate of most recent filing
cyclesArrayActive election cycles
sourceUrlStringFEC committee profile URL

Filing Records (recordType: "filing")

FieldTypeDescription
filingIdIntegerFEC filing ID
formTypeStringForm type (e.g. F3P, F3X)
filerNameStringName of the filing entity
receiptDateStringDate the FEC received the filing
coverageStartDateStringCoverage period start
coverageEndDateStringCoverage period end
totalReceiptsFloatTotal receipts for the period
totalDisbursementsFloatTotal disbursements
totalLoansFloatTotal loans received
netContributionsFloatNet contributions
sourceUrlStringFEC filing detail URL

Totals Records (recordType: "total")

FieldTypeDescription
candidateIdStringFEC candidate ID
candidateNameStringCandidate name
officeStringOffice (P/S/H)
partyStringParty abbreviation
stateStringState
electionYearIntegerElection year
cycleIntegerElection cycle
totalReceiptsFloatTotal money raised
totalDisbursementsFloatTotal money spent
cashOnHandEndFloatCash on hand at period end
coverageStartDateStringCoverage start date
coverageEndDateStringCoverage end date
sourceUrlStringFEC candidate profile URL

Example Output Record

{
"candidateId": "P80001571",
"candidateName": "BIDEN, JOSEPH R JR",
"office": "P",
"party": "DEM",
"state": "US",
"electionYears": [2020, 2024],
"incumbentStatus": "Incumbent",
"cycles": [2020, 2022, 2024],
"sourceUrl": "https://www.fec.gov/data/candidate/P80001571/",
"scrapedAt": "2026-05-30T12:00:00+00:00",
"recordType": "candidate"
}

Frequently Asked Questions

Do I need an API key? No. The scraper uses the free DEMO_KEY by default, which allows 30 requests/minute and 50 requests/day. For unlimited access, register at api.data.gov.

How far back does the data go? FEC data covers elections from 1996 onwards. Use the electionYear filter to narrow results.

What is the difference between Filings and Totals? Filings are individual campaign finance report submissions. Totals aggregate receipts and disbursements across a candidate's full election cycle.

Can I search for PACs and Super PACs? Yes, use searchCommittees mode. PACs appear as committee type "N" (non-party non-qualified), Super PACs as type "O" (independent expenditure-only).

Why am I getting rate limit errors? The default DEMO_KEY has strict limits. Register a free personal key at api.data.gov and pass it via apiKey.