Fec Filing Parser avatar

Fec Filing Parser

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Fec Filing Parser

Fec Filing Parser

Turn raw U.S. Federal Election Commission electronic filings into clean, structured JSON you can drop straight into a database, spreadsheet, or analytics pipeline.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Logical Vivacity

Logical Vivacity

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

FEC Campaign Finance Filing Parser

Turn raw U.S. Federal Election Commission electronic filings into clean, structured JSON you can drop straight into a database, spreadsheet, or analytics pipeline. Give the actor one or more filing IDs and it returns a header / summary record plus every itemized contribution, disbursement, or loan row contained in the filing.

What it does

  • Fetches the raw .fec document for each filing ID you supply from the FEC's public electronic-filings index.
  • Parses the filing's fixed-format text into typed Python objects.
  • Splits the result into:
    • One filing header record (filer name, committee ID, period covered, totals, etc.).
    • One itemized row record for each Schedule A / B / C / D / E line item, tagged with its schedule bucket.
  • Pushes every record to the actor's default dataset.

Inputs

FieldTypeDefaultDescription
filingIdsarray of string / integerrequiredFEC electronic filing IDs to download and parse, e.g. ["1666999"].
includeItemizedRowsbooleantrueIf false, only the filing header / summary is returned.
maxRowsPerFilinginteger10000Cap on itemized rows returned per filing. Large filings can contain 100,000+ rows.

Example input

{
"filingIds": ["1666999"],
"includeItemizedRows": true,
"maxRowsPerFiling": 10000
}

Output

Every record is pushed to the default dataset and tagged with a record_type of either filing_header or itemized_row.

Sample header record

{
"record_type": "filing_header",
"filing_id": "1666999",
"source_url": "https://docquery.fec.gov/dcdev/posted/1666999.fec",
"data": {
"header": {
"record_type": "HDR",
"ef_type": "FEC",
"fec_version": "8.4",
"soft_name": "...",
"report_id": "..."
},
"filer_committee_id_number": "C00000000",
"committee_name": "EXAMPLE FOR CONGRESS",
"form_type": "F3",
"coverage_from_date": "2024-01-01",
"coverage_through_date": "2024-03-31",
"total_receipts_period": 123456.78
}
}

Sample itemized row record

{
"record_type": "itemized_row",
"filing_id": "1666999",
"schedule": "Schedule A",
"row_index": 0,
"data": {
"form_type": "SA11AI",
"filer_committee_id_number": "C00000000",
"contributor_last_name": "Smith",
"contributor_first_name": "Jane",
"contributor_city": "Austin",
"contributor_state": "TX",
"contribution_date": "2024-02-14",
"contribution_amount": 250.0,
"contribution_aggregate": 750.0,
"contributor_employer": "Acme Corp",
"contributor_occupation": "Engineer"
}
}

The exact fields available depend on the form type (F3, F3X, F24, etc.) and the schedule (A = receipts, B = disbursements, C = loans, D = debts, E = independent expenditures).

Limitations

  • The FEC's public document host can be slow or temporarily unavailable; failed fetches are logged and skipped without aborting the run.
  • Very large filings (50,000+ itemizations) are split into thousands of dataset records — raise maxRowsPerFiling if you need the full extract.
  • Only electronic filings are supported. Paper-filed reports do not have a raw .fec document and cannot be parsed.
  • Field names follow the FEC's published form schemas. See fec.gov filing types for the canonical column dictionary.