Pushbuild

FEC Campaign Finance (Candidates, PACs, Contributions)

US federal campaign finance from official FEC bulk data: candidate receipts, spending, cash on hand and debts; PAC, super PAC and party committee totals; PAC and party contributions and independent expenditures for or against candidates. Any cycle since 1980.

$0.24 per 1,000 rows

Get an API key

What it returns

US federal campaign finance from the Federal Election Commission's official bulk data, in clean JSON. Any cycle since 1980; refreshed daily by the FEC.

Candidates:** every House, Senate and presidential candidate with party, state, district, incumbent/challenger/open-seat status, principal campaign committee, total receipts and disbursements, cash on hand, debts, and the split between individual, PAC, party and self-funding, plus loans. Committees:** every PAC, super PAC, party and candidate committee with type, designation (leadership PAC, lobbyist PAC, joint fundraiser), connected organization, treasurer, receipts, spending, contributions to other committees and independent expenditures. Contributions:** PAC and party contributions to candidates, and independent expenditures supporting or opposing them, with date, amount, report type and a link to the filing image.

Common uses

Race dashboards: who is out-raising whom, cash on hand by seat. Track which corporate PACs fund which members of Congress. Super PAC spending for and against candidates.

Request

POST https://api.pushbuild.com/fec-campaign-finance/run with a JSON body. Send your key in the X-API-Key header.

FieldTypeDescription
datasetstring: candidates, committees, contributionsWhat to return. Default: "candidates".
cycleintegerEven year, e.g. 2026, 2024, 2020. Defaults to the current cycle.
querystringAll words must appear in the candidate, committee or connected-organization name.
officeslist of stringsH (House), S (Senate), P (President).
stateslist of stringsTwo-letter codes (candidate office state, or committee address state).
districtstringe.g. 07 (candidates only).
partieslist of stringse.g. DEM, REP, LIB, GRE, IND.
candidateIdslist of stringse.g. S8GA00180.
committeeIdslist of stringse.g. C00484642.
committeeTypeslist of stringsCommittees only: O (super PAC), Q/N (PAC), X/Y (party), H/S/P (candidate), V/W (hybrid PAC).
minReceiptsintegerCandidates and committees.
minAmountintegerContributions only.
dateFromstringContributions only, YYYY-MM-DD.
dateTostringContributions only, YYYY-MM-DD.
transactionTypeslist of stringsContributions only: 24K (direct contribution), 24E/24A (independent expenditure for/against), 24C (party coordinated), 24Z (in-kind).
maxItemsintegerMaximum items to return (1-500). Default: 100.

Example

curl -X POST https://api.pushbuild.com/fec-campaign-finance/run \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cycle": 2026, "maxItems": 20}'

Response

{"count": 20, "truncated": false, "seconds": 1.4, "items": [ { ... } ]}

Each call returns up to 500 items. Records that fail validation or are not found are flagged in the items and not charged.

Pricing

Pay only for results returned: $0.24 per 1,000 rows. No charge for errors or empty searches.

Tell us what you need built.

Questions about this API, higher volumes, or a data source you need that we don't cover yet.

hello@pushbuild.com

(617) 299-8887

Tell us about your project

A few questions so we can come back with a written scope. We reply within one business day.