Campaign finance & influence
Independent Expenditures
Returns FEC Schedule E independent expenditures — money spent BY a super PAC (or IE-only PAC) uncoordinatedly FOR or AGAINST a federal candidate. Hallmark vehicle for political ad spending since Citizens United (2010).
Endpoint
GET /v1/fec-independent-expendituresSourceFEC Schedule E
Authx-api-key — a free key works
What it returns
One record per result. Fields (from a live response):
- Identity —
candidate_office_district,candidate_id,committee_name,payee_state,candidate_name,candidate_office_state,committee_type,committee_designation,candidate_office,candidate_party,payee_name,committee_id - Subject —
disbursement_description - Dates —
date_corrected,two_year_transaction_period,dissemination_date,expenditure_date_source,date_correction_basis,expenditure_date,scraped_at,report_year - The trade / event —
category_code_full,transaction_id,category_code - Amounts —
expenditure_amount - Provenance —
source_url,report_type - Details —
payee_zip,file_number,image_number,memoed_subtotal,payee_city,support_oppose_indicator,filing_form,sub_id,amendment_indicator,election_type
Filters
| sub_id | FEC sub_id (globally unique row ID). Direct doc lookup. |
| committee_id | FEC committee that spent the money (typically a super PAC). |
| candidate_id | Target candidate being supported or opposed. |
| support_oppose | 'S' = filter to ads supporting the target; 'O' = filter to ads opposing. Omit for both. |
| payee_name | Case-insensitive substring on the payee_name (ad agency, media buyer, vendor). Client-side filter. |
| description | Case-insensitive substring on disbursement_description (free-text purpose of the spend, e.g., 'tv ad', 'mailer', 'digital advertising'). Client-side… |
| candidate_office | Office of the target candidate: H/S/P. |
| candidate_office_state | 2-letter state code of the target candidate (e.g., 'PA', 'TX'). |
| min_amount | Inclusive lower bound on expenditure_amount in dollars. |
| max_amount | Inclusive upper bound on expenditure_amount. |
| since | Inclusive lower bound on expenditure_date (YYYY-MM-DD). |
| until | Inclusive upper bound on expenditure_date (YYYY-MM-DD). |
| cycle | Election cycle (2-year transaction period), e.g. 2026/2024/2022. INCOMPLETE — the FEC leaves this field (two_year_transaction_period) null on many… |
| exclude_memos | When true (DEFAULT), filters out rows flagged memoed_subtotal=true — FEC's aggregate / receipt-account duplicates that double-count the same dollars… |
| sort_by | Sort key. Default: expenditure_date. |
| sort_order | Default: desc. |
| limit | Max records. Default 50, max 500. |
Example request
curl "https://api.keyvex.com/v1/fec-independent-expenditures?limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"payee_zip": "12207",
"candidate_office_district": "12",
"expenditure_amount": 35000,
"source_url": "https://www.fec.gov/data/independent-expenditures/?committee_id=C00946830",
"candidate_id": "H6NY12214",
"date_corrected": false,
"file_number": 1986306,
"committee_name": "YOU CAN PUSH BACK",
"two_year_transaction_period": null,
"image_number": "202606229874230677",
"memoed_subtotal": false,
"payee_city": "NEW YORK",
"payee_state": "NY",
"support_oppose_indicator": "S",
"candidate_name": "BORES, ALEXANDER",
"candidate_office_state": "NY",
"category_code_full": "Advertising Expenses ",
"committee_type": "O",
"filing_form": "F24",
"transaction_id": "WFT20265221314-1",
"committee_designation": "U",
"category_code": "004",
"dissemination_date": "2026-06-22",
"expenditure_date_source": null,
"sub_id": "4062220261522096140",
"amendment_indicator": "N",
"date_correction_basis": null,
"report_type": "24",
"disbursement_description": "",
"expenditure_date": "2026-06-22",
"candidate_office": "H",
"scraped_at": "2026-06-23T11:45:32.099Z",
"candidate_party": "DEM",
"payee_name": "WEIRD LLC",
"report_year": null,
"election_type": "P2026",
"committee_id": "C00946830"
}
],
"count": 1,
"has_more": true
}
Example questions you can answer
- Super-PAC ads supporting or opposing a candidate.
- Independent spending in a given race.
Related datasets
Query Independent Expenditures from your AI
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Free key = full data, 60 requests/day.
Get a free key OpenAPI spec → REST docs →