Skip to content

Commit f7a9c59

Browse files
authored
OpenFEC (Independent Publisher) (#4004)
* - Initial release * - Initial release - attempt 2, all files were empty * - Metadata and contact added * - Added missing x-ms-summary and definitions - paconn validated, no errors * - Modified description * - Updated title * - Updated readme - Updated OperationsLog and Filings actions - missing successful response - paconn validated, no errors * - Added default responses * - Added connector certification package
1 parent 8be08d4 commit f7a9c59

File tree

4 files changed

+25220
-0
lines changed

4 files changed

+25220
-0
lines changed
Binary file not shown.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# OpenFEC (Independent Publisher)
2+
3+
## Publisher: Dan Romano
4+
5+
## Prerequisites
6+
7+
- A valid **FEC API Key** (you can use `DEMO_KEY` for testing, but expect rate limits).
8+
9+
## Obtaining Credentials
10+
11+
- Obtain an API key(https://api.open.fec.gov/developers/) from FEC.gov
12+
13+
14+
## Supported Operations
15+
16+
Some of the important endpoint categories in this connector include:
17+
18+
|operationType | operationName | operationDescription |
19+
|---|---|
20+
|GET | `/calendar-dates/` | Get FEC calendar events |
21+
|GET | `/calendar-dates/export/` | Download FEC Calendar Dates (CSV or ICS) |
22+
|GET | `/candidate/{candidate_id}/committees/history/` | Committee History by Candidate |
23+
|GET | `/candidate/{candidate_id}/committees/history/{cycle}/` | Committee History for a Specific Cycle |
24+
|GET | `/candidate/{candidate_id}/committees/` | Get Committees for a Candidate |
25+
|GET | `/candidate/{candidate_id}/history/` | Get Candidate Details (History) |
26+
|GET | `/candidate/{candidate_id}/history/{cycle}/` | Get Candidate Details per Election Cycle |
27+
|GET | `/candidate/{candidate_id}/` | Get Candidate Details (Current) |
28+
|GET | `/candidate/{candidate_id}/filings/` | Get Candidate Filings |
29+
|GET | `/candidate/{candidate_id}/totals/` | Get Candidate Totals by Cycle |
30+
|GET | `/candidates/totals/by_office Get Agg. Receipts/Disbursements by Office and Cycle |
31+
|GET | `/candidates/totals/by_office/by_party/` | Get Agg. Receipts/Disbursements by Office and Party per Election Cycle |
32+
|GET | `/candidates/totals/` | Get Agg. Receipts and Disbursements by Cycle |
33+
|GET | `/candidates/` | Get Candidates Basic Info |
34+
|GET | `/candidates/search/` | Search Candidates |
35+
|GET | `/committee/{committee_id}/candidates/history/` | Get Candidate History by Committee |
36+
|GET | `/committee/{committee_id}/candidates/history/{cycle}/` | Get Candidate History by Election Cycle |
37+
|GET | `/committee/{committee_id}/candidates/` | Get Candidate by Committee (Current) |
38+
|GET | `/committee/{committee_id}/history/` | Get Candidate by Committee (History) |
39+
|GET | `/committee/{committee_id}/history/{cycle}/` | Get Candidate Committee History by Cycle |
40+
|GET | `/committee/{committee_id}/` | /committee/:committee_id/ |
41+
|GET | `/committee/{committee_id}/communication_costs/by_candidate/` | Get Communication Costs by Committee by Candidate |
42+
|GET | `/committee/{committee_id}/electioneering/by_candidate/` | Get Electioneering by Committee by Candidate |
43+
|GET | `/committee/{committee_id}/filings/` | Get Filings for a Specific Committee |
44+
|GET | `/committee/{committee_id}/reports/` | Get Financial Reports for a Committee |
45+
|GET | `/committee/{committee_id}/totals/` | Get Committee Financial Totals |
46+
|GET | `/communication_costs/aggregates/` | Get Communication Cost Aggregates |
47+
|GET | `/communication_costs/by_candidate/` | Get Communication Costs by Candidate |
48+
|GET | `/communication_costs/totals/by_candidate/` | Get Communication Cost Totals by Candidate |
49+
|GET | `/efile/reports/house-senate/` | Get Electronic F3/F3X/F3P Summary Filings for House and Senate |
50+
|GET | `/efile/reports/pac-party/` | Get Electronic F3X Summary Filings for PACs and Party Committees |
51+
|GET | `/efile/reports/presidential/` | Get Presidential Committee Electronic Filings (F3P Reports) |
52+
|GET | `/efile/filings/` | Retrieve eFiled Filings |
53+
|GET | `/electioneering Get Electioneering Communications |
54+
|GET | `/electioneering/aggregates/` | Get Electioneering Communications Cost Aggregates |
55+
|GET | `/electioneering/by_candidate/` | Get Electioneering Costs Agg. by Candidate |
56+
|GET | `/electioneering/totals/by_candidate/` | Get Total Electioneering Communications by Candidate and Cycle |
57+
|GET | `/elections/` | Get Election-level Financial Summary for All Candidates in a Race |
58+
|GET | `/elections/search/` | Search Elections by Location and Cycle |
59+
|GET | `/elections/summary/` | Summary of Financials for a Specific Election |
60+
|GET | `/names/audit_candidates/` | Search Candidates and Committees by Name |
61+
|GET | `/names/audit_committees/` | Search Audited Committees by Name |
62+
|GET | `/names/candidates/` | Search Candidates by Name |
63+
|GET | `/names/committees/` | Search Committees by Name |
64+
|GET | `/presidential/contributions/by_candidate/` | Get Presidential Contributions by Candidate |
65+
|GET | `/presidential/contributions/by_size/` | Get Presidential Contributions by Size |
66+
|GET | `/presidential/contributions/by_state/` | Get Presidential Contributions by State |
67+
|GET | `/presidential/coverage_end_date/` | Get Presidential Coverage End Date |
68+
|GET | `/presidential/financial_summary/` | Get Presidential Financial Summary by Candidate |
69+
|GET | `/schedules/schedule_a/by_size/` | Get Schedule A Contributions by Size |
70+
|GET | `/schedules/schedule_a/by_size/by_candidate/` | Get Schedule A Contributions by Size by Candidate |
71+
|GET | `/schedules/schedule_a/by_state/by_candidate/` | Get Schedule A Contributions by State by Candidate |
72+
|GET | `/schedules/schedule_a/by_state/by_candidate/totals/` | Get Schedule A Contributions Totals by Size by Candidate |
73+
|GET | `/schedules/schedule_a/by_state/Get Schedule A Contributions by State |
74+
|GET | `/schedules/schedule_a/by_state/totals/` | Get Schedule A Contribution Totals by State |
75+
|GET | `/schedules/schedule_a/` | Get Schedule A Itemized Receipts |
76+
|GET | `/schedules/schedule_a/by_employer/` | Get Aggregated Contributions by Employer |
77+
|GET | `/schedules/schedule_a/by_occupation/` | Get Aggregated Contributions by Occupation |
78+
|GET | `/schedules/schedule_a/by_zip/` | Get Aggregated Contributions by ZIP Code |
79+
|GET | `/schedules/schedule_a/efile/` | Get eFiled Schedule A Contributions |
80+
|GET | `/schedules/schedule_a/{sub_id}/` | Get a Single Schedule A Transaction by Sub ID |
81+
|GET | `/schedules/schedule_b/` | Get Schedule B Disbursements |
82+
|GET | `/schedules/schedule_b/by_purpose/Get Schedule B Disbursements By Purpose |
83+
|GET | `/schedules/schedule_b/by_recipient/` | Get Schedule B Disbursements By Recipient |
84+
|GET | `/schedules/schedule_b/by_recipient_id/` | Get Schedule B Disbursements By Recipient Id |
85+
|GET | `/schedules/schedule_b/efile/` | Get Schedule eFiled Disbursements |
86+
|GET | `/schedules/schedule_b/{sub_id}/` | Get Schedule B By SubId |
87+
|GET | `/schedules/schedule_c/` | Get Schedule C Loans |
88+
|GET | `/schedules/schedule_c/{sub_id}/` | Get Schedule C By Sub Id |
89+
|GET | `/schedules/schedule_d/` | Get Schedule D |
90+
|GET | `/schedules/schedule_d/{sub_id}/` | Get Schedule D Records By Sub Id |
91+
|GET | `/schedules/schedule_e/` | Get Schedule E |
92+
|GET | `/schedules/schedule_e/by_candidate/` | Get Schedule E Totals By Candidate |
93+
|GET | `/schedules/schedule_e/efile/` | Get Schedule E eFile |
94+
|GET | `/schedules/schedule_e/totals/by_candidate/` | Get Schedule E Totals by Candidate |
95+
|GET | `/schedules/schedule_f/` | Get Schedule F Party Expenditures |
96+
|GET | `/schedules/schedule_f/{sub_id}/` | Get Schedule F By Id |
97+
|GET | `/totals/by_entity/` | Get Cumulative Receipt Totals by Entity Type over a two-year cycle |
98+
|GET | `/totals/{committee_type}/` | Get Totals by Committee Type |
99+
|GET | `/audit-case/` | Get Audit Case Records |
100+
|GET | `/audit-category/` | Get Audit Categories and Sub-Categories |
101+
|GET | `/committees/` | Search for Committees |
102+
|GET | `/communication_costs/` | Retrieve Communication Costs |
103+
|GET | `/election-dates/` | Retrieve Election Dates |
104+
|GET | `/filings/` | Get All FEC Filings |
105+
|GET | `/operations-log/` | Get FEC Data Log |
106+
|GET | `/rad-analyst/` | Retrieve RAD Analysts Assigned to Committees |
107+
|GET | `/reporting-dates/` | Retrieve Audit Reporting Dates |
108+
|GET | `/state-election-office/` | Retrieve State and Local Election Office Details |
109+
110+
111+
## Known Limitations
112+
113+
- The “efile” endpoints are raw and may omit categories or standardized fields present in processed data.
114+
- Rate limiting could apply when using `DEMO_KEY` or during peak usage.
115+
- Some fields may be `null` or missing if not reported (e.g., occupation, employer, ZIP).
116+
117+
## Frequently Asked Questions
118+
119+
- **Default Values**: Many operations have defaults set for parameters like `cycle`, `page`, `per_page`, `sort`, etc., to mimic real FEC data flows.
120+
- **Pagination**:
121+
- For large data sets, use *keyset pagination* rather than naive page numbers wherever indicated (e.g. `last_index`, `last_contribution_receipt_date`) to avoid missing or duplicating records.
122+
- For “efile” endpoints: only the most recent ~4 months of data are available and data is raw/unprocessed.
123+
- **Nulls and Sorting**: There are parameters like `sort_hide_null`, `sort_nulls_last`, `sort_null_only` to manage how null values are treated in sorted results. Use them thoughtfully.
124+
- **Limits**: Be mindful of data volume—filters like `committee_id`, `cycle`, `state`, etc., can dramatically reduce the response size. Per‑request size is limited (e.g., via `per_page`).

0 commit comments

Comments
 (0)