diff --git a/independent-publisher-connectors/US Federal Election Commission/ConnectorPackage.zip b/independent-publisher-connectors/US Federal Election Commission/ConnectorPackage.zip new file mode 100644 index 0000000000..270d071f69 Binary files /dev/null and b/independent-publisher-connectors/US Federal Election Commission/ConnectorPackage.zip differ diff --git a/independent-publisher-connectors/US Federal Election Commission/README.MD b/independent-publisher-connectors/US Federal Election Commission/README.MD new file mode 100644 index 0000000000..6cd120a75a --- /dev/null +++ b/independent-publisher-connectors/US Federal Election Commission/README.MD @@ -0,0 +1,124 @@ +# OpenFEC (Independent Publisher) + +## Publisher: Dan Romano + +## Prerequisites + +- A valid **FEC API Key** (you can use `DEMO_KEY` for testing, but expect rate limits). + +## Obtaining Credentials + +- Obtain an API key(https://api.open.fec.gov/developers/) from FEC.gov + + +## Supported Operations + +Some of the important endpoint categories in this connector include: + +|operationType | operationName | operationDescription | +|---|---| +|GET | `/calendar-dates/` | Get FEC calendar events | +|GET | `/calendar-dates/export/` | Download FEC Calendar Dates (CSV or ICS) | +|GET | `/candidate/{candidate_id}/committees/history/` | Committee History by Candidate | +|GET | `/candidate/{candidate_id}/committees/history/{cycle}/` | Committee History for a Specific Cycle | +|GET | `/candidate/{candidate_id}/committees/` | Get Committees for a Candidate | +|GET | `/candidate/{candidate_id}/history/` | Get Candidate Details (History) | +|GET | `/candidate/{candidate_id}/history/{cycle}/` | Get Candidate Details per Election Cycle | +|GET | `/candidate/{candidate_id}/` | Get Candidate Details (Current) | +|GET | `/candidate/{candidate_id}/filings/` | Get Candidate Filings | +|GET | `/candidate/{candidate_id}/totals/` | Get Candidate Totals by Cycle | +|GET | `/candidates/totals/by_office Get Agg. Receipts/Disbursements by Office and Cycle | +|GET | `/candidates/totals/by_office/by_party/` | Get Agg. Receipts/Disbursements by Office and Party per Election Cycle | +|GET | `/candidates/totals/` | Get Agg. Receipts and Disbursements by Cycle | +|GET | `/candidates/` | Get Candidates Basic Info | +|GET | `/candidates/search/` | Search Candidates | +|GET | `/committee/{committee_id}/candidates/history/` | Get Candidate History by Committee | +|GET | `/committee/{committee_id}/candidates/history/{cycle}/` | Get Candidate History by Election Cycle | +|GET | `/committee/{committee_id}/candidates/` | Get Candidate by Committee (Current) | +|GET | `/committee/{committee_id}/history/` | Get Candidate by Committee (History) | +|GET | `/committee/{committee_id}/history/{cycle}/` | Get Candidate Committee History by Cycle | +|GET | `/committee/{committee_id}/` | /committee/:committee_id/ | +|GET | `/committee/{committee_id}/communication_costs/by_candidate/` | Get Communication Costs by Committee by Candidate | +|GET | `/committee/{committee_id}/electioneering/by_candidate/` | Get Electioneering by Committee by Candidate | +|GET | `/committee/{committee_id}/filings/` | Get Filings for a Specific Committee | +|GET | `/committee/{committee_id}/reports/` | Get Financial Reports for a Committee | +|GET | `/committee/{committee_id}/totals/` | Get Committee Financial Totals | +|GET | `/communication_costs/aggregates/` | Get Communication Cost Aggregates | +|GET | `/communication_costs/by_candidate/` | Get Communication Costs by Candidate | +|GET | `/communication_costs/totals/by_candidate/` | Get Communication Cost Totals by Candidate | +|GET | `/efile/reports/house-senate/` | Get Electronic F3/F3X/F3P Summary Filings for House and Senate | +|GET | `/efile/reports/pac-party/` | Get Electronic F3X Summary Filings for PACs and Party Committees | +|GET | `/efile/reports/presidential/` | Get Presidential Committee Electronic Filings (F3P Reports) | +|GET | `/efile/filings/` | Retrieve eFiled Filings | +|GET | `/electioneering Get Electioneering Communications | +|GET | `/electioneering/aggregates/` | Get Electioneering Communications Cost Aggregates | +|GET | `/electioneering/by_candidate/` | Get Electioneering Costs Agg. by Candidate | +|GET | `/electioneering/totals/by_candidate/` | Get Total Electioneering Communications by Candidate and Cycle | +|GET | `/elections/` | Get Election-level Financial Summary for All Candidates in a Race | +|GET | `/elections/search/` | Search Elections by Location and Cycle | +|GET | `/elections/summary/` | Summary of Financials for a Specific Election | +|GET | `/names/audit_candidates/` | Search Candidates and Committees by Name | +|GET | `/names/audit_committees/` | Search Audited Committees by Name | +|GET | `/names/candidates/` | Search Candidates by Name | +|GET | `/names/committees/` | Search Committees by Name | +|GET | `/presidential/contributions/by_candidate/` | Get Presidential Contributions by Candidate | +|GET | `/presidential/contributions/by_size/` | Get Presidential Contributions by Size | +|GET | `/presidential/contributions/by_state/` | Get Presidential Contributions by State | +|GET | `/presidential/coverage_end_date/` | Get Presidential Coverage End Date | +|GET | `/presidential/financial_summary/` | Get Presidential Financial Summary by Candidate | +|GET | `/schedules/schedule_a/by_size/` | Get Schedule A Contributions by Size | +|GET | `/schedules/schedule_a/by_size/by_candidate/` | Get Schedule A Contributions by Size by Candidate | +|GET | `/schedules/schedule_a/by_state/by_candidate/` | Get Schedule A Contributions by State by Candidate | +|GET | `/schedules/schedule_a/by_state/by_candidate/totals/` | Get Schedule A Contributions Totals by Size by Candidate | +|GET | `/schedules/schedule_a/by_state/Get Schedule A Contributions by State | +|GET | `/schedules/schedule_a/by_state/totals/` | Get Schedule A Contribution Totals by State | +|GET | `/schedules/schedule_a/` | Get Schedule A Itemized Receipts | +|GET | `/schedules/schedule_a/by_employer/` | Get Aggregated Contributions by Employer | +|GET | `/schedules/schedule_a/by_occupation/` | Get Aggregated Contributions by Occupation | +|GET | `/schedules/schedule_a/by_zip/` | Get Aggregated Contributions by ZIP Code | +|GET | `/schedules/schedule_a/efile/` | Get eFiled Schedule A Contributions | +|GET | `/schedules/schedule_a/{sub_id}/` | Get a Single Schedule A Transaction by Sub ID | +|GET | `/schedules/schedule_b/` | Get Schedule B Disbursements | +|GET | `/schedules/schedule_b/by_purpose/Get Schedule B Disbursements By Purpose | +|GET | `/schedules/schedule_b/by_recipient/` | Get Schedule B Disbursements By Recipient | +|GET | `/schedules/schedule_b/by_recipient_id/` | Get Schedule B Disbursements By Recipient Id | +|GET | `/schedules/schedule_b/efile/` | Get Schedule eFiled Disbursements | +|GET | `/schedules/schedule_b/{sub_id}/` | Get Schedule B By SubId | +|GET | `/schedules/schedule_c/` | Get Schedule C Loans | +|GET | `/schedules/schedule_c/{sub_id}/` | Get Schedule C By Sub Id | +|GET | `/schedules/schedule_d/` | Get Schedule D | +|GET | `/schedules/schedule_d/{sub_id}/` | Get Schedule D Records By Sub Id | +|GET | `/schedules/schedule_e/` | Get Schedule E | +|GET | `/schedules/schedule_e/by_candidate/` | Get Schedule E Totals By Candidate | +|GET | `/schedules/schedule_e/efile/` | Get Schedule E eFile | +|GET | `/schedules/schedule_e/totals/by_candidate/` | Get Schedule E Totals by Candidate | +|GET | `/schedules/schedule_f/` | Get Schedule F Party Expenditures | +|GET | `/schedules/schedule_f/{sub_id}/` | Get Schedule F By Id | +|GET | `/totals/by_entity/` | Get Cumulative Receipt Totals by Entity Type over a two-year cycle | +|GET | `/totals/{committee_type}/` | Get Totals by Committee Type | +|GET | `/audit-case/` | Get Audit Case Records | +|GET | `/audit-category/` | Get Audit Categories and Sub-Categories | +|GET | `/committees/` | Search for Committees | +|GET | `/communication_costs/` | Retrieve Communication Costs | +|GET | `/election-dates/` | Retrieve Election Dates | +|GET | `/filings/` | Get All FEC Filings | +|GET | `/operations-log/` | Get FEC Data Log | +|GET | `/rad-analyst/` | Retrieve RAD Analysts Assigned to Committees | +|GET | `/reporting-dates/` | Retrieve Audit Reporting Dates | +|GET | `/state-election-office/` | Retrieve State and Local Election Office Details | + + +## Known Limitations + +- The “efile” endpoints are raw and may omit categories or standardized fields present in processed data. +- Rate limiting could apply when using `DEMO_KEY` or during peak usage. +- Some fields may be `null` or missing if not reported (e.g., occupation, employer, ZIP). + +## Frequently Asked Questions + +- **Default Values**: Many operations have defaults set for parameters like `cycle`, `page`, `per_page`, `sort`, etc., to mimic real FEC data flows. +- **Pagination**: + - 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. + - For “efile” endpoints: only the most recent ~4 months of data are available and data is raw/unprocessed. +- **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. +- **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`). \ No newline at end of file diff --git a/independent-publisher-connectors/US Federal Election Commission/apiDefinition.swagger.json b/independent-publisher-connectors/US Federal Election Commission/apiDefinition.swagger.json new file mode 100644 index 0000000000..c5562e071f --- /dev/null +++ b/independent-publisher-connectors/US Federal Election Commission/apiDefinition.swagger.json @@ -0,0 +1,25073 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "OpenFEC (Independent Publisher)", + "description": "Explore the US federal candidates and committees fund their campaigns and operations", + "contact": { + "name": "Dan Romano", + "url": "https://developments.substack.com", + "email": "dan.romano@swolcat.com" + } + }, + "host": "api.open.fec.gov", + "basePath": "/v1", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://api.open.fec.gov/developers/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://github.com/fecgov/FEC/blob/master/ACCEPTABLE-USE-POLICY.md" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ], + "paths": { + "/calendar-dates/": { + "get": { + "summary": "Get FEC calendar events", + "x-ms-summary": "Get Calendar Event Data", + "description": "Combines election and reporting dates with Commission meetings, conferences, outreach, Advisory Opinions, rules, litigation dates, and other events into one unified calendar feed", + "operationId": "Dates_GetCalendarDates", + "parameters": [ + { + "name": "summary", + "in": "query", + "type": "string", + "required": true, + "default": "Election", + "x-ms-summary": "Event summary filter", + "description": "Filters results based on event summary text" + }, + { + "name": "max_start_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max start date", + "description": "Latest allowable event start date YYYY-MM-DD" + }, + { + "name": "min_start_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min start date", + "description": "Earliest allowable event start date YYYY-MM-DD" + }, + { + "name": "max_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max end date", + "description": "Latest allowable event end date YYYY-MM-DD" + }, + { + "name": "min_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min end date", + "description": "Earliest allowable event end date YYYY-MM-DD" + }, + { + "name": "calendar_category_id", + "in": "query", + "type": "string", + "required": true, + "default": "42", + "x-ms-summary": "Category ID", + "description": "Numeric category ID e.g., 42 = Commission Meeting" + }, + { + "name": "description", + "in": "query", + "type": "string", + "required": true, + "default": "Filing deadline", + "x-ms-summary": "Description filter", + "description": "Filter events by text in the description field" + }, + { + "name": "event_id", + "in": "query", + "type": "string", + "required": true, + "default": "100000", + "x-ms-summary": "Event ID", + "description": "FEC event ID" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-start_date", + "x-ms-summary": "Sort field", + "description": "Field to sort by (use '-' prefix for descending" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve starting at 1" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Calendar dates retrieved successfully", + "schema": { + "$ref": "#/definitions/CalendarDatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/calendar-dates/export/": { + "get": { + "summary": "Download FEC Calendar Dates (CSV or ICS", + "x-ms-summary": "Export calendar dates in CSV or ICS format", + "description": "Returns CSV or ICS data for use with calendar applications like Google Calendar, Outlook, and others. Combines elections, reports, AOs, litigation, and events. Presidential pre-primary reports are generally excluded on even years. All reporting deadlines are also available via the /reporting-dates/ endpoint. [Source SQL migration](https://github.com/fecgov/openFEC/blob/develop/data/migrations/V40_omnibus_dates.sql) ", + "operationId": "Dates_ExportCalendarDates", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "summary", + "in": "query", + "type": "string", + "required": true, + "default": "Election", + "x-ms-summary": "Event summary filter", + "description": "Filters events by summary text e.g., Election, Filing deadline" + }, + { + "name": "max_start_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max start date", + "description": "Maximum event start date" + }, + { + "name": "min_start_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min start date", + "description": "Minimum event start date" + }, + { + "name": "max_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max end date", + "description": "Maximum event end date" + }, + { + "name": "min_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min end date", + "description": "Minimum event end date" + }, + { + "name": "calendar_category_id", + "in": "query", + "type": "string", + "required": true, + "default": "42", + "x-ms-summary": "Category ID", + "description": "Event category ID e.g., 42 = Commission Meeting" + }, + { + "name": "description", + "in": "query", + "type": "string", + "required": true, + "default": "Filing deadline", + "x-ms-summary": "Description filter", + "description": "Filter by event description content" + }, + { + "name": "event_id", + "in": "query", + "type": "string", + "required": true, + "default": "100000", + "x-ms-summary": "Event ID", + "description": "Unique identifier for the event" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-start_date", + "x-ms-summary": "Sort field", + "description": "Field to sort by (use '-' for descending" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "renderer", + "in": "query", + "type": "string", + "required": true, + "default": "ics", + "x-ms-summary": "Format type", + "description": "Output format — use 'csv' or 'ics'" + } + ], + "responses": { + "200": { + "description": "Calendar export generated", + "schema": { + "$ref": "#/definitions/CalendarDatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/candidate/{candidate_id}/committees/history/": { + "get": { + "summary": "Committee History by Candidate", + "x-ms-summary": "Get a candidate's committee affiliations over time", + "description": "Explore how a candidate's committees have evolved over time, including changes in treasurers, designations, and types", + "operationId": "Candidates_GetCandidateCommitteeHistory", + "parameters": [ + { + "name": "candidate_id", + "in": "path", + "required": true, + "type": "string", + "default": "H8NY15148", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned ID for the candidate e.g., H8NY15148" + }, + { + "name": "designation", + "in": "query", + "required": true, + "type": "string", + "default": "P", + "x-ms-summary": "Committee designation", + "description": "Filter by committee designation e.g., P = Principal" + }, + { + "name": "election_full", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-summary": "Include full election period", + "description": "If true, includes full two-year cycle" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "default": "-cycle", + "x-ms-summary": "Sort field", + "description": "Sort by a specific field e.g., '-cycle' for descending cycle" + }, + { + "name": "page", + "in": "query", + "required": true, + "type": "string", + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "per_page", + "in": "query", + "required": true, + "type": "string", + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/CandidateCommitteeHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/candidate/{candidate_id}/committees/history/{cycle}/": { + "get": { + "summary": "Committee History for a Specific Cycle", + "x-ms-summary": "Get a candidate's committee affiliations for a specific cycle", + "description": "Explore how a candidate's affiliated committees appeared and evolved in a specific election cycle. This includes information on designation, treasurers, and committee types", + "operationId": "Candidates_GetCandidateCommitteeHistoryByCycle", + "parameters": [ + { + "name": "candidate_id", + "in": "path", + "required": true, + "type": "string", + "default": "H8NY15148", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H8NY15148" + }, + { + "name": "cycle", + "in": "path", + "required": true, + "type": "string", + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "designation", + "in": "query", + "required": true, + "type": "string", + "default": "P", + "x-ms-summary": "Committee designation", + "description": "Filter by committee designation e.g., P = Principal" + }, + { + "name": "election_full", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-summary": "Include full election period", + "description": "If true, includes the full two-year cycle" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "default": "-cycle", + "x-ms-summary": "Sort field", + "description": "Sort by a specific field e.g., '-cycle'" + }, + { + "name": "page", + "in": "query", + "required": true, + "type": "string", + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "per_page", + "in": "query", + "required": true, + "type": "string", + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page (default is 20" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/CandidateCommitteeHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/candidate/{candidate_id}/committees/": { + "get": { + "summary": "Get Committees for a Candidate", + "x-ms-summary": "Get all committees affiliated with a candidate", + "description": "This endpoint returns information about the committees associated with a candidate. Use this data to find current and past committee details such as treasurer, designation, filing frequency, and organization type", + "operationId": "Candidates_GetCandidateCommittees", + "parameters": [ + { + "name": "candidate_id", + "in": "path", + "required": true, + "type": "string", + "default": "H8NY15148", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H8NY15148" + }, + { + "name": "committee_type", + "in": "query", + "required": true, + "type": "string", + "default": "H", + "x-ms-summary": "Committee type", + "description": "Filter by committee type e.g., H = House" + }, + { + "name": "filing_frequency", + "in": "query", + "required": true, + "type": "string", + "default": "Q", + "x-ms-summary": "Filing frequency", + "description": "Committee filing frequency e.g., Q = quarterly" + }, + { + "name": "cycle", + "in": "query", + "required": true, + "type": "string", + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "year", + "in": "query", + "required": true, + "type": "string", + "default": "2023", + "x-ms-summary": "Year", + "description": "Filter committees by year" + }, + { + "name": "organization_type", + "in": "query", + "required": true, + "type": "string", + "default": "C", + "x-ms-summary": "Organization type", + "description": "Type of organization e.g., C = Corporation" + }, + { + "name": "designation", + "in": "query", + "required": true, + "type": "string", + "default": "P", + "x-ms-summary": "Designation", + "description": "Committee designation e.g., P = Principal" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "default": "name", + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., name" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "required": true, + "type": "string", + "default": "1", + "x-ms-summary": "Page number", + "description": "Results page number (default is 1" + }, + { + "name": "per_page", + "in": "query", + "required": true, + "type": "string", + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page (default is 20" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidateCommitteeResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/candidate/{candidate_id}/history/": { + "get": { + "summary": "Get Candidate Details (History", + "description": "Find out a candidate's characteristics over time. This is particularly useful if the candidate runs for the same office in different districts or you want to know more about a candidate's previous races. Note: This information is organized by 'candidate_id', so it won't help you find a candidate who ran for different offices over time. Candidates get a new ID for each office", + "operationId": "Candidate_CandidateIdHistory", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page", + "description": "Page number of results to fetch" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort by. Use '' for descending cycle order" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Full Election Period", + "description": "Include full two-year election period" + }, + { + "name": "candidate_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "Unique ID for the candidate e.g., H0CA12345" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/CandidateHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidate/{candidate_id}/history/{cycle}/": { + "get": { + "summary": "Get Candidate Details per Election Cycle", + "description": "Find out a candidate's characteristics during a specific election cycle. This is particularly useful if the candidate ran in different districts or offices. Note that candidates are assigned new IDs if they run for a different office", + "operationId": "Candidate_CandidateIdHistoryCycle", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page", + "description": "Page number to retrieve" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort by. Use '' for descending cycle order" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page (up to 100" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Full Election Period", + "description": "If true, includes full two-year election cycle" + }, + { + "name": "cycle", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "candidate_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "Unique FEC ID of the candidate e.g., H0NY12345" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidateHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidate/{candidate_id}/": { + "get": { + "summary": "Get Candidate Details (Current", + "description": "Retrieve detailed information about a specific candidate using their FEC candidate ID. Includes current and historical attributes such as party affiliation, district, and status", + "operationId": "Candidate_CandidateId", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "default": "DEM", + "required": true, + "x-ms-summary": "Party", + "description": "Candidate party code e.g., DEM, REP, GRN" + }, + { + "name": "district", + "in": "query", + "type": "string", + "default": "01", + "required": true, + "x-ms-summary": "District", + "description": "Congressional district (House only" + }, + { + "name": "candidate_status", + "in": "query", + "type": "string", + "default": "C", + "required": true, + "x-ms-summary": "Candidate Status", + "description": "Candidate status code e.g., C=Candidate, F=Future, P=Prior" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "name", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort results by e.g., name, candidate_id" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Year", + "description": "Year of the election in which the candidate is running" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page max 100" + }, + { + "name": "incumbent_challenge", + "in": "query", + "type": "string", + "default": "I", + "required": true, + "x-ms-summary": "Incumbent Challenge", + "description": "Challenge status (I=Incumbent, C=Challenger, O=Open seat" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "default": "NY", + "required": true, + "x-ms-summary": "State", + "description": "Two-letter U.S. state abbreviation" + }, + { + "name": "name", + "in": "query", + "type": "string", + "default": "Smith", + "required": true, + "x-ms-summary": "Candidate Name", + "description": "Full or partial candidate name" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "office", + "in": "query", + "type": "string", + "default": "H", + "required": true, + "x-ms-summary": "Office", + "description": "Office sought (H = House, S = Senate, P = President" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page", + "description": "Page number to retrieve" + }, + { + "name": "year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Year", + "description": "Election year context for filtering" + }, + { + "name": "has_raised_funds", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Has Raised Funds", + "description": "Filter for candidates who have reported financial activity" + }, + { + "name": "federal_funds_flag", + "in": "query", + "type": "string", + "default": "false", + "required": true, + "x-ms-summary": "Federal Funds Flag", + "description": "Filter for candidates who accepted federal funding" + }, + { + "name": "candidate_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "Unique identifier for the candidate e.g., H0NY12345" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidateProfileResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidate/{candidate_id}/filings/": { + "get": { + "summary": "Get Candidate Filings", + "description": "Retrieve all official records and reports filed by or delivered to the FEC for a given candidate. Because filings data can include many records, result counts are approximate. You should page through results until no more records are returned", + "operationId": "Candidate_CandidateIdFilings", + "parameters": [ + { + "name": "candidate_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H0CA12183", + "default": "H0CA12183" + }, + { + "name": "party", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Party", + "description": "Political party affiliation" + }, + { + "name": "form_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Form Type", + "description": "FEC form type e.g., F3, F3P, F3X" + }, + { + "name": "most_recent", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Most Recent", + "description": "Return only the most recent filing", + "default": "false" + }, + { + "name": "district", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "District", + "description": "Congressional district" + }, + { + "name": "committee_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Committee Type", + "description": "Type of committee that filed the report" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort Order", + "description": "Sort order of results, prefix with - for descending", + "default": "-receipt_date" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Cycle", + "description": "Two-year cycle in which the candidate is running" + }, + { + "name": "report_year", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Report Year", + "description": "Year the report was filed" + }, + { + "name": "max_receipt_date", + "in": "query", + "required": false, + "type": "string", + "format": "date", + "x-ms-summary": "Max Receipt Date", + "description": "Upper bound for receipt date YYYY-MM-DD" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Results per Page", + "description": "Number of results per page", + "default": "20" + }, + { + "name": "report_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Report Type", + "description": "Report type code e.g., Q1, M2, YE" + }, + { + "name": "form_category", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Form Category", + "description": "Category of the form filed" + }, + { + "name": "min_receipt_date", + "in": "query", + "required": false, + "type": "string", + "format": "date", + "x-ms-summary": "Min Receipt Date", + "description": "Lower bound for receipt date YYYY-MM-DD" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "State", + "description": "U.S. state abbreviation e.g., TX" + }, + { + "name": "request_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Request Type", + "description": "Type of filing request" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Page Number", + "description": "Results page number", + "default": "1" + }, + { + "name": "office", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Office", + "description": "Office the candidate is running for e.g., H, S, P" + }, + { + "name": "amendment_indicator", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Amendment Indicator", + "description": "Indicates if the report is an amendment" + }, + { + "name": "filer_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Filer Type", + "description": "Type of filer e.g., candidate, committee" + }, + { + "name": "primary_general_indicator", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Primary/General Indicator", + "description": "Indicates if the filing is for a primary or general election" + }, + { + "name": "is_amended", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Is Amended", + "description": "Whether the report is amended" + }, + { + "name": "document_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Document Type", + "description": "Document type code" + }, + { + "name": "beginning_image_number", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Beginning Image Number", + "description": "First image ID in the scanned document" + }, + { + "name": "file_number", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "File Number", + "description": "FEC file number" + } + ], + "responses": { + "200": { + "description": "A successful response", + "schema": { + "$ref": "#/definitions/CandidateFilingsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidate/{candidate_id}/totals/": { + "get": { + "summary": "Get Candidate Totals by Cycle", + "description": "Retrieve financial totals from Form 3, 3X, or 3P filings for a candidate's authorized or principal committees, aggregated by two-year election cycle. Use 'cycle' to filter by reporting period. Use 'election_full=true' to include the full election period for a candidate", + "operationId": "Candidate_CandidateIdTotals", + "parameters": [ + { + "name": "candidate_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H0CA12183" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Election cycle", + "description": "Two-year period that includes an election year e.g., 2020 includes 2019 and 2020" + }, + { + "name": "election_full", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Full election period", + "description": "If true, include the full cycle for the candidate's election", + "default": "false" + }, + { + "name": "full_election", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "DEPRECATED - Full election", + "description": "Deprecated. Use 'election_full' instead", + "default": "false" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort field", + "description": "Field to sort by (use '-cycle' for descending", + "default": "-cycle" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Page number", + "description": "Page of results to return", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Results per page", + "description": "Number of results per page", + "default": "20" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/CandidateTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidates/totals/by_office": { + "get": { + "summary": "Get Agg Receipts and Disbursements by Office and Cycle", + "description": "Aggregated candidate receipts and disbursements grouped by office for a given election year and filtered by activity status", + "operationId": "Candidates_TotalsByOffice", + "parameters": [ + { + "name": "office", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Office", + "description": "Office sought by candidate. House H, Senate S, or President P", + "default": "H" + }, + { + "name": "election_year", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Election Year", + "description": "Year of the election to aggregate totals by office", + "default": "2024" + }, + { + "name": "is_active_candidate", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Active Candidate Filter", + "description": "Filter totals by candidates actively campaigning during the given cycle", + "default": "true" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort field", + "description": "Field to sort results by, optional", + "default": "" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Page", + "description": "Page number of results to fetch", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page", + "default": "20" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidatesTotalsByOfficeResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidates/totals/by_office/by_party/": { + "get": { + "summary": "Get Agg Receipts or Disbursements by Office and Party per Election Cycle", + "description": "Aggregated candidate receipts and disbursements grouped by office and party for a given cycle. Includes options to filter by election year and active candidacy", + "operationId": "Candidates_TotalsByOfficeByParty", + "parameters": [ + { + "name": "office", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Office", + "description": "Office sought by candidate. House H, Senate S, or President P", + "default": "H" + }, + { + "name": "election_year", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Election Year", + "description": "Year of the election to aggregate totals by office and party", + "default": "2024" + }, + { + "name": "is_active_candidate", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Active Candidate Filter", + "description": "Filter by candidates actively running during the cycle", + "default": "true" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort field", + "description": "Field to sort results by, optional", + "default": "" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Page", + "description": "Page number of results to return", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page", + "default": "20" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidatesTotalsByOfficeByPartyResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/candidates/totals/": { + "get": { + "summary": "Get Agg Receipts and Disbursements by Cycle", + "description": "Aggregated candidate receipts and disbursements grouped by cycle", + "operationId": "Candidates_Totals", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Party", + "description": "Filter by party affiliation e.g., DEM, REP" + }, + { + "name": "max_disbursements", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max Disbursements", + "description": "Maximum amount of disbursements" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "District", + "description": "Filter by congressional district" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Cycle", + "description": "Two-year election cycle to aggregate by" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Year", + "description": "Year of the election" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results Per Page", + "description": "Number of records to return per page", + "default": "20" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Full", + "description": "If true, filters for full elections (not special", + "default": "true" + }, + { + "name": "min_debts_owed_by_committee", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min Debts Owed", + "description": "Minimum debt owed by the committee" + }, + { + "name": "is_active_candidate", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Active Candidate", + "description": "If true, limits to active candidates" + }, + { + "name": "max_cash_on_hand_end_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max Cash on Hand", + "description": "Maximum cash on hand at end of period" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "State", + "description": "Filter by state e.g., NY, CA" + }, + { + "name": "q", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Name or ID Search", + "description": "Search candidates by name or ID" + }, + { + "name": "min_cash_on_hand_end_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min Cash on Hand", + "description": "Minimum cash on hand at end of period" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page Number", + "description": "Page number to retrieve", + "default": "1" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Office", + "description": "Filter by office (House, Senate, President" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "min_receipts", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min Receipts", + "description": "Minimum receipts reported" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate ID", + "description": "Filter by candidate ID e.g., H0XX00000" + }, + { + "name": "max_debts_owed_by_committee", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max Debts Owed", + "description": "Maximum debt owed by the committee" + }, + { + "name": "max_receipts", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max Receipts", + "description": "Maximum receipts reported" + }, + { + "name": "has_raised_funds", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Has Raised Funds", + "description": "Filter by candidates who have raised funds" + }, + { + "name": "min_disbursements", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min Disbursements", + "description": "Minimum disbursements reported" + }, + { + "name": "federal_funds_flag", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Federal Funds Flag", + "description": "Filter for candidates receiving federal funds" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidatesTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidates/": { + "get": { + "summary": "Get Candidates Basic Info", + "description": "Fetch basic information about candidates, and use parameters to filter results to the candidates you're looking for. Each result reflects a unique FEC candidate ID, which remains the same for a candidate seeking the same office across elections", + "operationId": "Candidates", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Party", + "description": "Filter by party e.g., DEM, REP" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "District", + "description": "Filter by congressional district" + }, + { + "name": "candidate_status", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate Status", + "description": "Filter by candidate status e.g., C, F, N" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "name", + "x-ms-summary": "Sort Field", + "description": "Field to sort results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Year", + "description": "Year of election" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results Per Page", + "description": "Number of results per page" + }, + { + "name": "incumbent_challenge", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Incumbent Challenge", + "description": "Filter by incumbent challenge status (I, C, O" + }, + { + "name": "is_active_candidate", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Active Candidate", + "description": "If true, return only active candidates" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "State", + "description": "Two-letter state code e.g., NY, CA" + }, + { + "name": "name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Name Search", + "description": "Candidate name to filter by" + }, + { + "name": "q", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Search Term", + "description": "Search by candidate name or ID" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page Number", + "description": "Page number of results" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Office", + "description": "Office sought (H, S, P" + }, + { + "name": "min_first_file_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "x-ms-summary": "Min First File Date", + "description": "Minimum first filing date" + }, + { + "name": "max_first_file_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "x-ms-summary": "Max First File Date", + "description": "Maximum first filing date" + }, + { + "name": "year", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Year", + "description": "Year to filter by" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H0XX00000" + }, + { + "name": "has_raised_funds", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Has Raised Funds", + "description": "Filter by candidates who have raised funds" + }, + { + "name": "federal_funds_flag", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Federal Funds Flag", + "description": "Filter for candidates who accepted federal funds" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "schema": { + "$ref": "#/definitions/CandidatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/candidates/search/": { + "get": { + "summary": "Search Candidates", + "description": "Fetch basic information about candidates and their principal committees. Each result reflects a unique FEC candidate ID tied to a specific office. If a candidate runs for the same office again, they retain the same ID. If they run for a different office e.g., House → Senate), they get a new ID", + "operationId": "Candidates_Search", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Party", + "description": "Filter by party e.g., DEM, REP" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "District", + "description": "Filter by congressional district" + }, + { + "name": "candidate_status", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate Status", + "description": "Candidate status e.g., C for candidate, F for future, N for not running" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "name", + "x-ms-summary": "Sort Field", + "description": "Field to sort results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Election Year", + "description": "Year of election" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results Per Page", + "description": "Number of results per page" + }, + { + "name": "incumbent_challenge", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Incumbent Challenge", + "description": "Filter by incumbent challenge status (I, C, O" + }, + { + "name": "is_active_candidate", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Active Candidate", + "description": "If true, return only active candidates" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "State", + "description": "Two-letter state code e.g., NY, CA" + }, + { + "name": "name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Name Search", + "description": "Candidate name to filter by" + }, + { + "name": "q", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Search Term", + "description": "Search by candidate name or ID" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page Number", + "description": "Page number of results" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Office", + "description": "Office sought (H, S, P" + }, + { + "name": "min_first_file_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "x-ms-summary": "Min First File Date", + "description": "Minimum first filing date" + }, + { + "name": "max_first_file_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "x-ms-summary": "Max First File Date", + "description": "Maximum first filing date" + }, + { + "name": "year", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Year", + "description": "Year to filter by" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H0XX00000" + }, + { + "name": "has_raised_funds", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Has Raised Funds", + "description": "Filter by candidates who have raised funds" + }, + { + "name": "federal_funds_flag", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Federal Funds Flag", + "description": "Filter for candidates who accepted federal funds" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "schema": { + "$ref": "#/definitions/CandidatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/candidates/history/": { + "get": { + "summary": "Get Candidate History by Committee", + "description": "Find out a candidate's characteristics over time for a given committee. Useful for reviewing different election cycles, districts, or races. Organized by candidate_id. A new ID is assigned if the same person runs for a different office", + "operationId": "Committee_CommitteeIdCandidatesHistory", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "FEC Committee ID e.g., C00100005" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Sort Field", + "description": "Field used to sort results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": false, + "default": "true", + "x-ms-summary": "Election Full", + "description": "If true, filters records to those covering full election cycles" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "schema": { + "$ref": "#/definitions/CommitteeCandidateHistoryResponse" + } + }, + "500": { + "description": "Internal Server Error" + } + } + } + }, + "/committee/{committee_id}/candidates/history/{cycle}/": { + "get": { + "summary": "Get Candidate History by Election Cycle", + "description": "Find out a candidate's characteristics over time. This is particularly useful if the candidate runs for the same office in different districts or you want to know more about a candidate's previous races. This information is organized by 'candidate_id', so it won't help you find a candidate who ran for different offices over time; candidates get a new ID for each office", + "operationId": "Committee_CommitteeIdCandidatesHistoryCycle", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page number of results to fetch" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "first_file_date", + "required": false, + "x-ms-summary": "Sort order", + "description": "Sort results using a field, use '-' for descending" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Election full flag", + "description": "Whether to treat the election as full-cycle" + }, + { + "name": "cycle", + "in": "path", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle in which the candidate ran" + }, + { + "name": "committee_id", + "in": "path", + "type": "string", + "default": "C00703975", + "required": true, + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee e.g., C00123456" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CommitteeCandidateHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/candidates/": { + "get": { + "summary": "Get Candidate by Committee (Current", + "description": "Returns candidate details for a given committee. This includes party affiliation, registration status, office sought, and financial indicators", + "operationId": "Committee_CommitteeIdCandidates", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "type": "string", + "required": true, + "default": "C00123456", + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee e.g., C00123456" + }, + { + "name": "party", + "in": "query", + "type": "string", + "default": "DEM", + "required": true, + "x-ms-summary": "Party", + "description": "Candidate's party affiliation e.g., DEM, REP, LIB" + }, + { + "name": "district", + "in": "query", + "type": "string", + "default": "01", + "required": true, + "x-ms-summary": "District", + "description": "Candidate's congressional district e.g., '01'" + }, + { + "name": "candidate_status", + "in": "query", + "type": "string", + "default": "C", + "required": true, + "x-ms-summary": "Candidate status", + "description": "Candidate's registration status e.g., C = current, P = prior, N = new" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "name", + "required": true, + "x-ms-summary": "Sort order", + "description": "Field to sort results by, prefix with '-' for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election year", + "description": "Year of the election e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of results per page" + }, + { + "name": "incumbent_challenge", + "in": "query", + "type": "string", + "default": "O", + "required": true, + "x-ms-summary": "Incumbent challenge", + "description": "Filter by challenger status (I = incumbent, C = challenger, O = open seat" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "default": "NY", + "required": true, + "x-ms-summary": "State", + "description": "U.S. state abbreviation e.g., NY, CA" + }, + { + "name": "name", + "in": "query", + "type": "string", + "default": "Smith", + "required": true, + "x-ms-summary": "Candidate name", + "description": "Filter by candidate’s name e.g., 'Smith'" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "office", + "in": "query", + "type": "string", + "default": "H", + "required": true, + "x-ms-summary": "Office", + "description": "Office sought (H = House, S = Senate, P = President" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Reporting year", + "description": "Filter by reporting year" + }, + { + "name": "has_raised_funds", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Has raised funds", + "description": "Filter by whether the candidate has raised funds" + }, + { + "name": "federal_funds_flag", + "in": "query", + "type": "string", + "default": "false", + "required": true, + "x-ms-summary": "Federal funds flag", + "description": "Filter by whether the candidate accepted federal funds" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CandidateHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/history/": { + "get": { + "summary": "Get Candidate by Committee (History", + "description": "Explore a filer's characteristics over time. This can be particularly useful if the committees change treasurers, designation, or 'committee_type'", + "operationId": "Committee_CommitteeIdHistory", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-cycle", + "required": true, + "x-ms-summary": "Sort field", + "description": "Field to sort by. Prefix with '-' for descending order" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Election full cycle", + "description": "If true, aggregates data across full election cycles" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "designation", + "in": "query", + "type": "string", + "default": "P", + "required": true, + "x-ms-summary": "Committee designation", + "description": "The designation of the committee e.g., P = Principal campaign committee" + }, + { + "name": "committee_id", + "in": "path", + "type": "string", + "default": "C00401224", + "required": true, + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee e.g., C00401224" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CommitteeHistoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/history/{cycle}/": { + "get": { + "summary": "Get Candidate Committee History by Cycle", + "x-ms-summary": "Get committee historical details for a specific cycle", + "description": "Explore a filer's characteristics over time. This can be particularly useful if the committees change treasurers, designation, or committee_type", + "operationId": "Committee_CommitteeIdHistoryCycle", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-cycle", + "required": true, + "x-ms-summary": "Sort field", + "description": "Field to sort by, prepend with '-' for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Items per page", + "description": "Number of records to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Full election flag", + "description": "Return data for full election period" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "designation", + "in": "query", + "type": "string", + "default": "P", + "required": true, + "x-ms-summary": "Designation code", + "description": "Designation of the committee e.g. P = Principal" + }, + { + "name": "cycle", + "in": "path", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Election cycle in 2-year format e.g., 2024" + }, + { + "name": "committee_id", + "in": "path", + "type": "string", + "default": "C00401224", + "required": true, + "x-ms-summary": "Committee ID", + "description": "The unique ID assigned to the committee" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CommitteeHistoryCycleResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/": { + "get": { + "summary": "Get Committee by ID", + "x-ms-summary": "Get Committee Details by Id", + "description": "This endpoint is useful for finding detailed information about a particular committee or filer. Use the 'committee_id' to find the most recent information about the committee", + "operationId": "Committee_CommitteeId", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "committee_type", + "in": "query", + "type": "string", + "default": "P", + "required": true, + "x-ms-summary": "Committee type code", + "description": "Committee type e.g., 'P' for principal, 'O' for other" + }, + { + "name": "filing_frequency", + "in": "query", + "type": "string", + "default": "M", + "required": true, + "x-ms-summary": "Filing frequency", + "description": "Frequency of required financial filings e.g., 'M' for monthly" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "name", + "required": true, + "x-ms-summary": "Sort field", + "description": "Field to sort by. Prefix with - for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Election cycle e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Year", + "description": "Filter by the reporting year" + }, + { + "name": "organization_type", + "in": "query", + "type": "string", + "default": "C", + "required": true, + "x-ms-summary": "Organization type code", + "description": "Type of organization e.g., C for committee" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "designation", + "in": "query", + "type": "string", + "default": "P", + "required": true, + "x-ms-summary": "Designation code", + "description": "Committee designation e.g., P = Principal" + }, + { + "name": "committee_id", + "in": "path", + "type": "string", + "default": "C00401224", + "required": true, + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID for the committee" + } + ], + "responses": { + "200": { + "description": "Committee details successfully returned", + "schema": { + "$ref": "#/definitions/CommitteeDetailsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/communication_costs/by_candidate/": { + "get": { + "operationId": "Committee_CommitteeIdCommunicationCostByCandidate", + "summary": "Get Communication Costs by Committee by Candidate", + "description": "Returns communication costs filed by the specified committee, aggregated by candidate and support/oppose indicator", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "type": "string", + "required": true, + "default": "C00575795", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the reporting committee" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "default": "H", + "x-ms-summary": "Office", + "description": "Office sought (H = House, S = Senate, P = President" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "Congressional district", + "description": "Congressional district number (House races only" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Sort by field (use `-` prefix for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election flag", + "description": "Whether to include the full two-year cycle" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H0NY15148", + "x-ms-summary": "Candidate ID", + "description": "FEC ID of the candidate receiving support or opposition" + }, + { + "name": "support_oppose", + "in": "query", + "type": "string", + "required": true, + "default": "", + "x-ms-summary": "Support or oppose", + "description": "Filter by support ('S') or oppose ('O') indicator" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State abbreviation", + "description": "U.S. state or territory abbreviation" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move null values to the end of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Communication costs by candidate successfully returned", + "schema": { + "$ref": "#/definitions/CommunicationCostsByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/electioneering/by_candidate/": { + "get": { + "summary": "Get Electioneering by Committee by Candidate", + "x-ms-summary": "Get electioneering costs aggregated by candidate", + "description": "Returns electioneering communications filed by the specified committee, aggregated by candidate ID. Useful for transparency on committee spending related to specific candidates", + "operationId": "Committee_CommitteeIdElectioneeringByCandidate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "office", + "in": "query", + "type": "string", + "default": "H", + "required": true, + "x-ms-summary": "Office", + "description": "Office being sought - H (House), S (Senate), or P (President" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "The page of results to return" + }, + { + "name": "district", + "in": "query", + "type": "string", + "default": "01", + "required": true, + "x-ms-summary": "Congressional district", + "description": "The congressional district for House races e.g., 01" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-total", + "required": true, + "x-ms-summary": "Sort field", + "description": "Field to sort results by. Use '-' prefix for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter by e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of records to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Full election flag", + "description": "Whether to include full two-year election cycle data" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "H0NY15148", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "Candidate FEC ID e.g., H0NY15148" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "default": "NY", + "required": true, + "x-ms-summary": "State", + "description": "U.S. state or territory abbreviation e.g., NY" + }, + { + "name": "committee_id", + "in": "path", + "type": "string", + "default": "C00575795", + "required": true, + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee e.g., C00575795" + } + ], + "responses": { + "200": { + "description": "Electioneering costs by candidate successfully returned", + "schema": { + "$ref": "#/definitions/ElectioneeringByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/filings/": { + "get": { + "summary": "Get Filings for a Specific Committee", + "description": "All official records and reports filed by or delivered to the FEC. Note - because the filings data includes many records, counts for large result sets are approximate; you will want to page through the records until no records are returned", + "operationId": "Committee_CommitteeIdFilings", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Committee ID", + "description": "A unique identifier for the committee. Format begins with 'C' followed by 8 digits. Example - C00100005", + "default": "C00100005" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Page Number", + "description": "Page number of results to retrieve", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page", + "default": "20" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort Field", + "description": "Field to sort by. Use '-' to sort descending", + "default": "-receipt_date" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle to filter by", + "default": "2024" + }, + { + "name": "report_year", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Report Year", + "description": "The year the report was filed", + "default": "2023" + }, + { + "name": "most_recent", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Most Recent Only", + "description": "Return only the most recent version of each filing", + "default": "true" + }, + { + "name": "is_amended", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Is Amended", + "description": "Filter by amended filings", + "default": "false" + }, + { + "name": "state", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "State", + "description": "Filter filings by state abbreviation", + "default": "NY" + }, + { + "name": "party", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Party", + "description": "Filter filings by political party", + "default": "DEM" + }, + { + "name": "district", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Congressional District", + "description": "Filter filings by congressional district", + "default": "01" + }, + { + "name": "form_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Form Type", + "description": "Filter filings by FEC form type. Example - F3, F3X", + "default": "F3X" + }, + { + "name": "report_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Report Type", + "description": "Filter by report type", + "default": "Q1" + }, + { + "name": "form_category", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Form Category", + "description": "Filter by form category. Example - 'REPORT'", + "default": "REPORT" + }, + { + "name": "document_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Document Type", + "description": "Filter filings by document type", + "default": "24" + }, + { + "name": "filer_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Filer Type", + "description": "Type of entity filing the report", + "enum": [ + "e-file", + "paper" + ], + "default": "e-file" + }, + { + "name": "committee_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Committee Type", + "description": "Filter by committee type", + "default": "P" + }, + { + "name": "primary_general_indicator", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Primary/General Indicator", + "description": "Filter by election indicator", + "default": "P" + }, + { + "name": "request_type", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Request Type", + "description": "Filter filings by request type", + "default": "FOIA" + }, + { + "name": "office", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Office", + "description": "Office being sought e.g., H, S, P", + "default": "H" + }, + { + "name": "amendment_indicator", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Amendment Indicator", + "description": "Filter filings based on amendment indicator", + "default": "A" + }, + { + "name": "beginning_image_number", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Beginning Image Number", + "description": "The beginning image number for the document", + "default": "10000001" + }, + { + "name": "file_number", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "File Number", + "description": "Unique file number of the filing", + "default": "1234567" + }, + { + "name": "min_receipt_date", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Minimum Receipt Date", + "description": "Earliest receipt date YYYY-MM-DD", + "default": "2023-01-01" + }, + { + "name": "max_receipt_date", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Maximum Receipt Date", + "description": "Latest receipt date YYYY-MM-DD", + "default": "2023-12-31" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/CommitteeFilingsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/reports/": { + "get": { + "summary": "Get Financial Reports for a Committee", + "x-ms-summary": "Get financial summary reports for a committee", + "description": "Retrieve Form 3, Form 3X, and Form 3P summary reports filed by a specific committee. These reports include key financial statistics such as cash on hand, total contributions, total disbursements, and debts owed. Use filters to refine the results by year, cycle, amendment status, and financial thresholds", + "operationId": "Committee_CommitteeIdReports", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "required": true, + "type": "string", + "default": "C00703975", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee, e.g. C00431445" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "string", + "default": "2020", + "x-ms-summary": "Election cycle", + "description": "Filters reports to a two-year election cycle e.g. 2020, 2022" + }, + { + "name": "year", + "in": "query", + "required": false, + "type": "string", + "default": "2020", + "x-ms-summary": "Calendar year", + "description": "Filter by calendar year of the report" + }, + { + "name": "report_type", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Report type", + "description": "Type of report filed e.g., Q1, Q2, M3, YE, etc." + }, + { + "name": "is_amended", + "in": "query", + "required": false, + "type": "string", + "default": "false", + "x-ms-summary": "Is amended", + "description": "Whether to return only amended reports" + }, + { + "name": "type", + "in": "query", + "required": false, + "type": "string", + "default": "H", + "x-ms-summary": "Committee type", + "description": "Committee type e.g., H = House, S = Senate, P = President" + }, + { + "name": "candidate_id", + "in": "query", + "required": false, + "type": "string", + "default": "P80001571", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned ID of the candidate linked to the committee" + }, + { + "name": "max_total_contributions", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Max total contributions", + "description": "Maximum total contributions in the report" + }, + { + "name": "min_total_contributions", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Min total contributions", + "description": "Minimum total contributions in the report" + }, + { + "name": "max_cash_on_hand_end_period_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Max cash on hand", + "description": "Maximum cash on hand at end of period" + }, + { + "name": "min_cash_on_hand_end_period_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Min cash on hand", + "description": "Minimum cash on hand at end of period" + }, + { + "name": "min_disbursements_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Min disbursements", + "description": "Minimum disbursement amount" + }, + { + "name": "max_disbursements_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Max disbursements", + "description": "Maximum disbursement amount" + }, + { + "name": "min_receipts_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Min receipts", + "description": "Minimum total receipts" + }, + { + "name": "max_receipts_amount", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Max receipts", + "description": "Maximum total receipts" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Sort field", + "description": "Field used to sort the response" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "beginning_image_number", + "in": "query", + "required": false, + "type": "string", + "default": "", + "x-ms-summary": "Beginning image number", + "description": "First image number on the report" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results to fetch" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "default": "20", + "x-ms-summary": "Per page", + "description": "Number of results per page" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CommitteeReportsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "529": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/committee/{committee_id}/totals/": { + "get": { + "summary": "Get Committee Financial Totals", + "x-ms-summary": "Get committee financial totals by 2-year election cycle", + "description": "This endpoint provides information about a committee's Form 3, Form 3X, or Form 3P financial reports, aggregated by two-year election cycles. The 'cycle' parameter determines the reporting period. For example, to retrieve totals from 2023 and 2024, use cycle=2024", + "operationId": "Committee_CommitteeIdTotals", + "parameters": [ + { + "name": "committee_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID for the committee e.g., C00401224", + "default": "C00401224" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "default": "-cycle", + "x-ms-summary": "Sort order", + "description": "Sort field and direction using '-' for descending" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "designation", + "in": "query", + "required": false, + "type": "string", + "default": "P", + "x-ms-summary": "Committee designation", + "description": "Committee designation code e.g., P = Principal campaign committee" + }, + { + "name": "type", + "in": "query", + "required": false, + "type": "string", + "default": "P", + "x-ms-summary": "Committee type", + "description": "Committee type code e.g., P = Presidential" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "string", + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024 = 2023–2024" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "default": "1", + "x-ms-summary": "Page number", + "description": "Results page to retrieve" + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "string", + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page (default is 20" + } + ], + "responses": { + "200": { + "description": "Committee financial totals", + "schema": { + "$ref": "#/definitions/CommitteeTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/communication_costs/aggregates/": { + "get": { + "summary": "Get Communication Cost Aggregates", + "description": "Returns communication costs aggregated by candidate ID and committee ID for a given election cycle", + "operationId": "Communication_CostsAggregates", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID for the committee" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "total", + "x-ms-summary": "Sort field", + "description": "Field to sort results by, such as 'total' or 'cycle'" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "support_oppose_indicator", + "in": "query", + "type": "string", + "required": true, + "default": "", + "x-ms-summary": "Support or oppose", + "description": "Indicator for whether the communication supports or opposes the candidate" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H0NY00010", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned ID of the candidate" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CommunicationCostsAggregatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/communication_costs/by_candidate/": { + "get": { + "summary": "Get Communication Costs by Candidate", + "description": "Retrieves aggregated communication cost data by candidate and committee, including support or opposition indicators", + "operationId": "Communication_CostsByCandidate", + "parameters": [ + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H4GA05270", + "x-ms-summary": "Candidate ID", + "description": "FEC ID of the candidate e.g., H4GA05270" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "GA", + "x-ms-summary": "State", + "description": "Two-letter US state or territory abbreviation" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "enum": [ + "house", + "senate", + "president" + ], + "default": "house", + "x-ms-summary": "Office", + "description": "Office sought - H (House), S (Senate), P (President" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "06", + "x-ms-summary": "District", + "description": "2-digit district number (use 00 for Senate/President" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle, e.g. 2024" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full Election", + "description": "Whether to include full election period data" + }, + { + "name": "support_oppose", + "in": "query", + "type": "string", + "required": true, + "default": "O", + "x-ms-summary": "Support or Oppose", + "description": "S = Support, O = Oppose" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-total", + "x-ms-summary": "Sort", + "description": "Field to sort by (use `-` for descending" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude null values from sort field" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of records per page (default 20" + } + ], + "responses": { + "200": { + "description": "Communication costs by candidate", + "schema": { + "$ref": "#/definitions/CommunicationCostByCandidateResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching records", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/communication_costs/totals/by_candidate/": { + "get": { + "operationId": "Communication_CostsTotalsByCandidate", + "summary": "Get Communication Cost Totals by Candidate", + "description": "Retrieve total communication costs by committee for or against specific candidates, aggregated by election cycle or candidate election year", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to return" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-candidate_id", + "x-ms-summary": "Sort field", + "description": "Field by which to sort results, prefix with `-` for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page (maximum 100" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election period", + "description": "Whether to retrieve data for the full election period" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H0NY12345", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move null values to the bottom of results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Communication cost totals retrieved successfully", + "schema": { + "$ref": "#/definitions/CommunicationCostsByCandidateResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching records", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/efile/reports/house-senate/": { + "get": { + "summary": "Get Electronic F3 F3X F3P Summary Filings for House and Senate", + "description": "Key financial data reported electronically by committees. Includes summary information from House F3 reports, presidential F3P reports, and PAC or party F3X reports. Totals reflect amendments and reporting cycles. Frequency of reports may vary depending on the election cycle and filing requirements", + "operationId": "Efile_ReportsHouseSenate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00193433", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned committee ID" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max receipt date", + "description": "Latest receipt date to include YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-receipt_date", + "x-ms-summary": "Sort field", + "description": "Field to sort results by. Use - prefix for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "min_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min receipt date", + "description": "Earliest receipt date to include YYYY-MM-DD" + }, + { + "name": "file_number", + "in": "query", + "type": "string", + "required": true, + "default": "1739012", + "x-ms-summary": "File number", + "description": "Unique file number assigned by the FEC" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EfileReportsHouseSenateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/efile/reports/pac-party/": { + "get": { + "summary": "Get Electronic F3X Summary Filings for PACs and Party Committees", + "description": "Financial summary data reported by PACs and party committees (F3X reports), including amendments. These are filed electronically and often on a monthly or quarterly basis, but may include pre-primary reports. Includes most recent and amended filings", + "operationId": "Efile_ReportsPACParty", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00193433", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID for the committee filing the report" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max receipt date", + "description": "Latest date to include YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-receipt_date", + "x-ms-summary": "Sort field", + "description": "Field to sort by, with optional '-' prefix for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "min_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min receipt date", + "description": "Earliest date to include YYYY-MM-DD" + }, + { + "name": "file_number", + "in": "query", + "type": "string", + "required": true, + "default": "1739012", + "x-ms-summary": "File number", + "description": "Unique numeric identifier for the filing" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EfileReportsPACPartyResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/efile/reports/presidential/": { + "get": { + "summary": "Get Presidential Committee Electronic Filings (F3P Reports", + "description": "Periodic financial reports submitted by presidential committees (F3P). Includes quarterly, monthly, and pre-primary filings. Data may reflect amendments and is updated as committees revise filings", + "operationId": "Efile_ReportsPresidential", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00703975", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned committee ID for the presidential campaign" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max receipt date", + "description": "Latest date for report receipt YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-receipt_date", + "x-ms-summary": "Sort field", + "description": "Field used for sorting results. Use '-' for descending order" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page" + }, + { + "name": "min_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min receipt date", + "description": "Earliest date for report receipt YYYY-MM-DD" + }, + { + "name": "file_number", + "in": "query", + "type": "string", + "required": true, + "default": "1728456", + "x-ms-summary": "File number", + "description": "Unique numeric identifier for the filing" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EfileReportsPresidentialResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/efile/filings/": { + "get": { + "operationId": "GetEfileFilings", + "summary": "Retrieve eFiled Filings", + "description": "Returns metadata about electronic filings submitted to the FEC, including file numbers, dates, and amendments. These records are made available as they are received and reflect live submission activity", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return starting at 1" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00123456", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee that submitted the filing" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max receipt date", + "description": "Latest receipt date for a filing YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-receipt_date", + "x-ms-summary": "Sort field", + "description": "Field by which to sort results, prefix with `-` for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of filings to return per page max 100" + }, + { + "name": "min_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min receipt date", + "description": "Earliest receipt date for a filing YYYY-MM-DD" + }, + { + "name": "file_number", + "in": "query", + "type": "string", + "required": true, + "default": "987654", + "x-ms-summary": "File number", + "description": "Unique identifier assigned to the filing" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move null sort values to the bottom of the result set" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "eFiled filings retrieved successfully", + "schema": { + "$ref": "#/definitions/EfileFilingResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – you do not have permission to access this resource", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no filings matched the query", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/electioneering": { + "get": { + "summary": "Get Electioneering Communications", + "operationId": "GetElectioneeringCommunications", + "description": "Returns electioneering communication records, which are broadcast, cable, or satellite communications that: - Refer to a clearly identified federal candidate, - Are publicly distributed for a fee by media providers, and - Occur within 60 days of a general election or 30 days of a primary", + "parameters": [ + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00788576", + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee responsible for the communication" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "default": "H4NY12345", + "x-ms-summary": "Candidate ID", + "description": "FEC ID of the candidate mentioned in the communication" + }, + { + "name": "report_year", + "in": "query", + "type": "string", + "required": false, + "default": "2024", + "x-ms-summary": "Report year", + "description": "Year the communication report was filed" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-01-01", + "x-ms-summary": "Min date", + "description": "Earliest communication date" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-11-04", + "x-ms-summary": "Max date", + "description": "Latest communication date" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "default": "500", + "x-ms-summary": "Minimum amount", + "description": "Minimum disbursement amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "default": "1000000", + "x-ms-summary": "Maximum amount", + "description": "Maximum disbursement amount" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-candidate_id", + "x-ms-summary": "Sort order", + "description": "Sort field and order e.g., `-communication_date`" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move null values to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of records per page" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Last index", + "description": "Keyset pagination marker from previous result set" + }, + { + "name": "description", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Description", + "description": "Optional text describing the communication" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectioneeringResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/electioneering/aggregates/": { + "get": { + "summary": "Get Electioneering Communications Cost Aggregates", + "description": "Retrieve total amounts and counts of electioneering communications grouped by candidate and committee for a given election cycle", + "operationId": "Electioneering_Aggregates", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "The page of results to return" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00000000", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee involved in the communication" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Field used for sorting, prefix with '-' for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter by e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of records to return per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H0NY12345", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID referenced in the communication" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectioneeringAggregatesResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/electioneering/by_candidate/": { + "get": { + "summary": "Get Electioneering Costs Agg. by Candidate", + "description": "Returns aggregated totals of electioneering communication spending by candidate, grouped by candidate and committee", + "operationId": "Electioneering_ByCandidate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "enum": [ + "house", + "senate", + "president" + ], + "default": "house", + "x-ms-summary": "Candidate office", + "description": "Candidate's office sought - H House, S Senate, or P President" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "Congressional district", + "description": "Congressional district number" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Field to sort by, use '-' prefix for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter results e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election flag", + "description": "Set to 'true' to include full election period data" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "H0NY12345", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned unique ID for the candidate" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "Candidate state", + "description": "U.S. state or territory abbreviation for the candidate" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectioneeringByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/electioneering/totals/by_candidate/": { + "get": { + "summary": "Get Total Electioneering Communications by Candidate and Cycle", + "description": "Returns total amounts spent on electioneering communications for each candidate by election cycle or year", + "operationId": "Electioneering_TotalsByCandidate", + "parameters": [ + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "default": "H8NY15148", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned unique ID for the candidate" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": false, + "default": "true", + "x-ms-summary": "Full election flag", + "description": "Set to 'true' to retrieve full election period totals" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-cycle,candidate_id", + "x-ms-summary": "Sort fields", + "description": "Comma-separated sort fields. Use '-' prefix for descending" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectioneeringTotalsByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/elections/": { + "get": { + "summary": "Get Election-level Financial Summary for All Candidates in a Race", + "description": "Returns top-level financial information for all candidates running for the same office. Specify the 2-year cycle and office type ('house', 'senate', or 'president'). Use 'state' and 'district' for House races, or just 'state' for Senate races. This endpoint includes candidates only after financial forms have been filed", + "operationId": "Elections", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "default": "house", + "x-ms-summary": "Office type", + "description": "Office sought ('house', 'senate', or 'president'" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "Congressional district", + "description": "Two-digit congressional district (House races only" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total_receipts", + "x-ms-summary": "Sort field", + "description": "Field to sort by, use '-' for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election flag", + "description": "Retrieve data for full election period" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State abbreviation", + "description": "Two-letter state code (required for House and Senate races" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectionsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/elections/search/": { + "get": { + "summary": "Search Elections by Location and Cycle", + "description": "List elections by cycle, office, state, and district. Supports filtering by ZIP code, cycle, state, and office", + "operationId": "Elections_Search", + "parameters": [ + { + "name": "zip", + "in": "query", + "type": "string", + "required": true, + "default": "10001", + "x-ms-summary": "ZIP code", + "description": "5-digit ZIP code used to filter election records" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "default": "house", + "x-ms-summary": "Office type", + "description": "Type of office — 'house', 'senate', or 'president'" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "Congressional district", + "description": "Two-digit congressional district e.g., '01'" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "district", + "x-ms-summary": "Sort field", + "description": "Field to sort by. Use '-' prefix for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g., '2024'" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State abbreviation", + "description": "Two-letter state code" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectionsSearchResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/elections/summary/": { + "get": { + "summary": "Summary of Financials for a Specific Election", + "description": "Provides summary-level receipts, disbursements, and independent expenditures by office, state, district, and cycle", + "operationId": "ElectionsSummary", + "parameters": [ + { + "name": "office", + "in": "query", + "type": "string", + "required": true, + "default": "house", + "x-ms-summary": "Office type", + "description": "Office type — 'house', 'senate', or 'president'" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State", + "description": "Two-letter postal code of the state" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "District", + "description": "Congressional district e.g., '01'" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Election cycle in 2-year increments e.g., '2024'" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election flag", + "description": "Whether the election includes the entire cycle" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ElectionSummaryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/names/audit_candidates/": { + "get": { + "summary": "Search Candidates and Committees by Name", + "description": "Find candidates or committees by name. Use this endpoint to retrieve candidate or committee IDs based on name search", + "operationId": "Names_AuditCandidates", + "parameters": [ + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "smith", + "x-ms-summary": "Search term", + "description": "Search term for a candidate or committee name" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/NameSearchResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/names/audit_committees/": { + "get": { + "summary": "Search Audited Committees by Name", + "description": "Search for committees by name to find their FEC 'committee_id'. Useful for looking up audit records or initiating deeper queries", + "operationId": "Names_AuditCommittees", + "parameters": [ + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "smith", + "x-ms-summary": "Search query", + "description": "Partial or full name of the committee" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/NameSearchResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/names/candidates/": { + "get": { + "summary": "Search Candidates by Name", + "description": "Search for candidates by name. Use this to find 'candidate_id' or related info before calling other endpoints", + "operationId": "NamesCandidates", + "parameters": [ + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "johnson", + "x-ms-summary": "Candidate name", + "description": "Full or partial candidate name" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CandidateNameSearchResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/names/committees/": { + "get": { + "summary": "Search Committees by Name", + "description": "Search for committees by name. Use this to retrieve 'committee_id' and check if a committee is active", + "operationId": "Names_committees_", + "parameters": [ + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "americans", + "x-ms-summary": "Committee name", + "description": "Full or partial committee name" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CommitteeNameSearchResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/presidential/contributions/by_candidate/": { + "get": { + "operationId": "Presidential_ContributionsByCandidate", + "summary": "Get Presidential Contributions by Candidate", + "description": "Returns net receipts per presidential candidate. Filter using `contributor_state=US` for national totals", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-net_receipts", + "x-ms-summary": "Sort order", + "description": "Sort field and order e.g. `-net_receipts`" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election year", + "description": "Four-digit year of the presidential election e.g. 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of the sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "contributor_state", + "in": "query", + "type": "string", + "required": true, + "default": "US", + "x-ms-summary": "Contributor state", + "description": "U.S. state or territory of the contributor (use `US` for national totals" + } + ], + "responses": { + "200": { + "description": "Successful response with candidate net receipts", + "schema": { + "$ref": "#/definitions/PresidentialContributionsByCandidateResponse" + } + }, + "400": { + "description": "Bad request – check your parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – missing or invalid API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching records", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/presidential/contributions/by_size/": { + "get": { + "summary": "Get Presidential Contributions by Size", + "description": "Contribution receipts by size per candidate. Filter by 'candidate_id', 'election_year', and/or 'size'", + "operationId": "Presidential_ContributionsBySize", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "size", + "required": true, + "x-ms-summary": "Sort Field", + "description": "The field to sort by" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Year", + "description": "Election year to filter results" + }, + { + "name": "size", + "in": "query", + "type": "string", + "default": "200", + "required": true, + "x-ms-summary": "Contribution Size", + "description": "Size of the contribution to filter by e.g., 200, 1000" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "P80001571", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., P80001571" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/PresidentialContributionsBySizeResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/presidential/contributions/by_state/": { + "get": { + "summary": "Get Presidential Contributions by State", + "description": "Contribution receipts by state per candidate. Filter by 'candidate_id' and/or 'election_year'", + "operationId": "Presidential_ContributionsByState", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-contribution_receipt_amount", + "required": true, + "x-ms-summary": "Sort Field", + "description": "The field to sort by" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Year", + "description": "Election year to filter results" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results to return per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "P80001571", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., P80001571" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/PresidentialContributionsByStateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/presidential/coverage_end_date/": { + "get": { + "summary": "Get Presidential Coverage End Date", + "description": "Coverage end date per candidate. Filter by 'candidate_id' and/or 'election_year'", + "operationId": "Presidential_CoverageEndDate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "candidate_id", + "required": true, + "x-ms-summary": "Sort Field", + "description": "Field to sort by e.g., candidate_id" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Year", + "description": "Election year to filter results" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "P80001571", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., P80001571" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/PresidentialCoverageEndDateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/presidential/financial_summary/": { + "get": { + "summary": "Get Presidential Financial Summary by Candidate", + "description": "Financial summary per presidential candidate. Filter by 'candidate_id' and/or 'election_year'", + "operationId": "Presidential_FinancialSummary", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to return" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-net_receipts", + "required": true, + "x-ms-summary": "Sort Field", + "description": "Field to sort by, with optional minus sign for descending order" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Year", + "description": "Election year to filter candidates" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of results per page" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "P80001571", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., P80001571" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/PresidentialFinancialSummaryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_size/": { + "get": { + "summary": "Get Schedule A Contributions by Size", + "description": "Get aggregated individual contributions received by a committee, grouped by size categories: - $200 and under - $200.01 - $499.99 - $500 - $999.99 - $1000 - $1999.99 - $2000 and over Includes unitemized individual contributions for the smallest size", + "operationId": "Schedules_ScheduleABySize", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to return" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "default": "C00762185", + "required": true, + "x-ms-summary": "Committee ID", + "description": "FEC-assigned committee ID to filter contributions by" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election Cycle", + "description": "Election cycle year to filter contributions" + }, + { + "name": "size", + "in": "query", + "type": "string", + "default": "200", + "required": true, + "x-ms-summary": "Contribution Size Filter", + "description": "Contribution size bucket to filter e.g., 200, 500" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of records to return per page" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/ScheduleABySizeResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_size/by_candidate/": { + "get": { + "summary": "Get Schedule A Contributions by Size by Candidate", + "description": "Get itemized individual contributions received by a candidate, aggregated by contribution size. Does not include unitemized contributions. Supports election-wide data with `election_full=true`", + "operationId": "Schedules_ScheduleABySizeByCandidate", + "parameters": [ + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID to filter by", + "default": "P80001571" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Election Cycle", + "description": "Two-year election cycle to filter data e.g., 2024", + "default": "2024" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Election-Wide", + "description": "Whether to include all years of the election", + "default": "true" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Results Per Page", + "description": "Number of records to return per page", + "default": "20" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Page Number", + "description": "Page number of results to return", + "default": "1" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort Field", + "description": "Field to sort by (use `-` for descending", + "default": "" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Hide Null Sort Values", + "description": "Whether to exclude results where the sort field is null", + "default": "false" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort Nulls Last", + "description": "Whether to move null values to the bottom", + "default": "false" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Only Null Sort Values", + "description": "Return only records where the sort field is null", + "default": "false" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/ScheduleABySizeByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_state/by_candidate/": { + "get": { + "summary": "Get Schedule A Contributions by State by Candidate", + "description": "Get individual contributions aggregated by contributor’s state and candidate", + "operationId": "Schedules_ScheduleAByStateByCandidate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., -total for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election", + "description": "Whether to retrieve full election totals" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P00014530", + "x-ms-summary": "Candidate ID", + "description": "FEC ID of the candidate" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ScheduleAByStateByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_state/by_candidate/totals/": { + "get": { + "summary": "Get Schedule A Contributions Totals by Size by Candidate", + "description": "Itemized individual contributions aggregated by contributor’s state, candidate, committee type, and cycle. This endpoint excludes unitemized contributions. See [FEC methodology](https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/methodology) for how is_individual is calculated", + "operationId": "Schedules_ScheduleAByStateByCandidateTotals", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., -total for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle in YYYY format" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "required": true, + "default": "true", + "x-ms-summary": "Full election", + "description": "Whether to retrieve full election totals" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P00014530", + "x-ms-summary": "Candidate ID", + "description": "FEC ID for the candidate e.g., P00014530 for Bernie Sanders" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ScheduleAByStateByCandidateTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_state/": { + "get": { + "summary": "Get Schedule A Contributions by State", + "description": "Get itemized individual contributions aggregated by state", + "operationId": "Schedules_ScheduleAByState", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00707476", + "x-ms-summary": "Committee ID", + "description": "FEC ID of the committee" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., -total for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "hide_null", + "in": "query", + "type": "string", + "required": true, + "default": "false", + "x-ms-summary": "Hide null values", + "description": "Exclude results with null values" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State", + "description": "Filter by US state abbreviation" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ScheduleAByStateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_state/totals/": { + "get": { + "summary": "Get Schedule A Contribution Totals by State", + "description": "This endpoint provides itemized individual contributions received by a committee, aggregated by contributor’s state, committee type, and cycle. Unitemized individual contributions are not included. For methodology details, see: https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/methodology ", + "operationId": "Schedules_ScheduleAByStateTotals", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return" + }, + { + "name": "committee_type", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Committee type code", + "description": "FEC committee type code e.g. 'P' for Presidential, 'H' for House, 'S' for Senate" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "cycle", + "x-ms-summary": "Sort field", + "description": "Field to sort results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle e.g. 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "CA", + "x-ms-summary": "State abbreviation", + "description": "US state abbreviation e.g. 'CA' for California" + } + ], + "responses": { + "200": { + "description": "A list of aggregated itemized contributions grouped by state and committee type", + "schema": { + "$ref": "#/definitions/ScheduleAByStateTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/": { + "get": { + "operationId": "GetScheduleAItemizedReceipts", + "summary": "Get Schedule A Itemized Receipts", + "description": "Returns itemized receipts, including contributions from individuals. This endpoint uses keyset pagination based on `last_index` and `last_contribution_receipt_date` instead of page numbers. This improves performance for large result sets. See the [FEC receipts data page](https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/about-receipts-data/) for full guidance", + "parameters": [ + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00788576", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the receiving committee" + }, + { + "name": "contributor_city", + "in": "query", + "type": "string", + "required": false, + "default": "New York", + "x-ms-summary": "Contributor city", + "description": "City of the contributor" + }, + { + "name": "contributor_state", + "in": "query", + "type": "string", + "required": false, + "default": "NY", + "x-ms-summary": "Contributor state", + "description": "U.S. state of the contributor" + }, + { + "name": "contributor_employer", + "in": "query", + "type": "string", + "required": false, + "default": "NYC DOE", + "x-ms-summary": "Contributor employer", + "description": "Employer of the contributor" + }, + { + "name": "contributor_occupation", + "in": "query", + "type": "string", + "required": false, + "default": "Teacher", + "x-ms-summary": "Contributor occupation", + "description": "Occupation of the contributor" + }, + { + "name": "contributor_zip", + "in": "query", + "type": "string", + "required": false, + "default": "10001", + "x-ms-summary": "Contributor ZIP", + "description": "ZIP code of the contributor" + }, + { + "name": "contributor_id", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Contributor ID", + "description": "FEC-assigned ID of the contributor" + }, + { + "name": "contributor_name", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Contributor name", + "description": "Full name of the contributor" + }, + { + "name": "contributor_type", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Contributor type", + "description": "Type of contributor (individual, party, etc" + }, + { + "name": "is_individual", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Is individual", + "description": "Filter for individual contributions only" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "default": "2023-01-01", + "x-ms-summary": "Min date", + "description": "Minimum contribution receipt date" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-12-31", + "x-ms-summary": "Max date", + "description": "Maximum contribution receipt date" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Min amount", + "description": "Minimum contribution amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Max amount", + "description": "Maximum contribution amount" + }, + { + "name": "two_year_transaction_period", + "in": "query", + "type": "string", + "required": false, + "default": "2024", + "x-ms-summary": "Two-year transaction period", + "description": "Two-year period based on election cycle" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-contribution_receipt_date", + "x-ms-summary": "Sort order", + "description": "Sort order e.g. `-contribution_receipt_date`" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results with null in the sort field" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records with null in the sort field" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page (default 20" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Line number", + "description": "Filter by specific form line number e.g., 11AI" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Image number", + "description": "Filter results by image number" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Min image number", + "description": "Minimum image number for filtering" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Max image number", + "description": "Maximum image number for filtering" + }, + { + "name": "min_load_date", + "in": "query", + "type": "string", + "required": false, + "default": "2023-01-01", + "x-ms-summary": "Min load date", + "description": "Earliest load date (data ingestion" + }, + { + "name": "max_load_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-12-31", + "x-ms-summary": "Max load date", + "description": "Latest load date (data ingestion" + }, + { + "name": "recipient_committee_type", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Recipient committee type", + "description": "Type of the receiving committee" + }, + { + "name": "recipient_committee_org_type", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Recipient committee org type", + "description": "Organization type of the receiving committee" + }, + { + "name": "recipient_committee_designation", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Committee designation", + "description": "Designation code of the receiving committee" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Last index", + "description": "Used for keyset pagination" + }, + { + "name": "last_contribution_receipt_date", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Last contribution receipt date", + "description": "Used for keyset pagination" + }, + { + "name": "last_contribution_receipt_amount", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Last contribution receipt amount", + "description": "Used for keyset pagination" + } + ], + "responses": { + "200": { + "description": "A list of itemized Schedule A receipts", + "schema": { + "$ref": "#/definitions/ScheduleAResponse" + } + }, + "400": { + "description": "Bad request – check your query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – missing or invalid API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required – quota exceeded", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – not allowed to access this data", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching receipts", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_employer/": { + "get": { + "operationId": "GetScheduleAByEmployer", + "summary": "Get Aggregated Contributions by Employer", + "description": "Returns itemized individual contributions received by a committee, aggregated by contributor employer name. Unitemized individual contributions are not included. See the [FEC methodology](https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/methodology) for details on how “is_individual” is calculated", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page", + "description": "Page number of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00788576", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort order", + "description": "Sort order of the results e.g., `-total` for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter results by e.g., 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "The number of results per page (maximum 100" + }, + { + "name": "employer", + "in": "query", + "type": "string", + "required": true, + "default": "Google", + "x-ms-summary": "Employer", + "description": "Name of the employer to aggregate by" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Successful response with aggregated employer totals", + "schema": { + "$ref": "#/definitions/ScheduleAByEmployerResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required – exceeded usage limits", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching records", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_occupation/": { + "get": { + "operationId": "GetScheduleAByOccupation", + "summary": "Get Aggregated Contributions by Occupation", + "description": "Returns aggregated itemized individual contributions received by a committee, grouped by contributor occupation. Unitemized contributions are excluded. See the [FEC methodology](https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/methodology) for details on how “is_individual” is determined", + "parameters": [ + { + "name": "occupation", + "in": "query", + "type": "string", + "required": true, + "default": "Engineer", + "x-ms-summary": "Occupation", + "description": "Contributor occupation to filter by" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": false, + "default": "NY", + "x-ms-summary": "State abbreviation", + "description": "Optional two-letter postal abbreviation of the state" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00788576", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter results by e.g., 2024" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort order", + "description": "Sort order of the results e.g., `-total` for descending" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page max 100" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Aggregated contribution data by occupation", + "schema": { + "$ref": "#/definitions/ScheduleAByOccupationResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required – exceeded usage limits", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching records", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/by_zip/": { + "get": { + "operationId": "GetScheduleAContributionsByZip", + "summary": "Get Aggregated Contributions by ZIP Code", + "description": "Returns aggregated itemized individual contributions received by a committee, grouped by the contributor’s ZIP code. Unitemized contributions are excluded. See the [methodology](https://www.fec.gov/campaign-finance-data/about-campaign-finance-data/methodology) for details on how individuals are classified", + "parameters": [ + { + "name": "zip", + "in": "query", + "type": "string", + "required": true, + "default": "10001", + "x-ms-summary": "ZIP code", + "description": "ZIP code of the contributor" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State abbreviation", + "description": "Two-letter postal abbreviation of the state" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00788576", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-total", + "x-ms-summary": "Sort order", + "description": "Sort order of the results" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter results by" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Aggregated contribution data by ZIP code", + "schema": { + "$ref": "#/definitions/ScheduleAByZipResponse" + } + }, + "400": { + "description": "Bad request – invalid parameter values", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – missing or invalid API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching results", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_a/efile/": { + "get": { + "summary": "Get eFiled Schedule A Contributions", + "description": "Retrieve real-time campaign finance data submitted electronically to the FEC via Schedule A filings. This endpoint includes the latest four months of eFiled contributions and does not include processed or coded data", + "operationId": "Schedules_GetScheduleAEfile", + "parameters": [ + { + "name": "max_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "default": "2025-06-30", + "x-ms-summary": "Filter by the latest receipt date", + "description": "Maximum contribution receipt date e.g., 2025-06-30" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "format": "date", + "required": false, + "default": "2025-03-01", + "x-ms-summary": "Filter by the earliest receipt date", + "description": "Minimum contribution receipt date e.g., 2025-03-01" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-contribution_receipt_date", + "x-ms-summary": "Sort order", + "description": "Order results using a field name, use - for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Items per page", + "description": "Number of records to return per page" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page number", + "description": "The results page to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00580100", + "x-ms-summary": "Committee ID", + "description": "FEC ID for the committee e.g., C00580100" + }, + { + "name": "contributor_name", + "in": "query", + "type": "string", + "required": false, + "default": "John Doe", + "x-ms-summary": "Contributor full name", + "description": "Full name of the contributor" + }, + { + "name": "contributor_city", + "in": "query", + "type": "string", + "required": false, + "default": "New York", + "x-ms-summary": "Contributor city", + "description": "City of the contributor" + }, + { + "name": "contributor_state", + "in": "query", + "type": "string", + "required": false, + "default": "NY", + "x-ms-summary": "Contributor state", + "description": "Two-letter state abbreviation" + }, + { + "name": "contributor_employer", + "in": "query", + "type": "string", + "required": false, + "default": "Self-Employed", + "x-ms-summary": "Contributor employer", + "description": "Employer of the contributor" + }, + { + "name": "contributor_occupation", + "in": "query", + "type": "string", + "required": false, + "default": "Engineer", + "x-ms-summary": "Contributor occupation", + "description": "Occupation of the contributor" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "default": "100", + "x-ms-summary": "Minimum contribution amount", + "description": "Filter by contributions greater than or equal to this amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "default": "10000", + "x-ms-summary": "Maximum contribution amount", + "description": "Filter by contributions less than or equal to this amount" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "default": "202507129123456789", + "x-ms-summary": "Exact image number", + "description": "Filter by specific image number" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "default": "202507120000000001", + "x-ms-summary": "Minimum image number", + "description": "Filter by contributions with image number gt or equal to this value" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "default": "202507129999999999", + "x-ms-summary": "Maximum image number", + "description": "Filter by contributions with image number lt or equal to this value" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "default": "11AI", + "x-ms-summary": "Line number", + "description": "The line number from the filing form such as 11AI" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + } + ], + "responses": { + "200": { + "description": "A successful response containing eFiled Schedule A contributions", + "schema": { + "$ref": "#/definitions/ScheduleAEfileResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/schedules/schedule_a/{sub_id}/": { + "get": { + "summary": "Get a Single Schedule A Transaction by Sub ID", + "description": "Returns a single Schedule A itemized contribution using its unique `sub_id`. Includes metadata on the contributor, receiving committee, and financial transaction", + "operationId": "GetScheduleAItemizedReceiptBySubId", + "parameters": [ + { + "name": "sub_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Unique transaction ID", + "description": "Unique identifier for a Schedule A itemized transaction e.g., 230880619" + }, + { + "name": "contributor_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor name", + "description": "Name of contributor" + }, + { + "name": "contributor_zip", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor ZIP", + "description": "ZIP code of the contributor" + }, + { + "name": "contributor_state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor state", + "description": "State of the contributor" + }, + { + "name": "contributor_city", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor city", + "description": "City of the contributor" + }, + { + "name": "contributor_employer", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor employer", + "description": "Employer of the contributor" + }, + { + "name": "contributor_occupation", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor occupation", + "description": "Occupation of the contributor" + }, + { + "name": "contributor_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor type", + "description": "Individual or committee (based on line number" + }, + { + "name": "contributor_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Contributor ID", + "description": "FEC contributor ID" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee ID", + "description": "FEC-assigned committee ID e.g., C00431445" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Line number", + "description": "Filter by form and line number e.g., F3X-16" + }, + { + "name": "two_year_transaction_period", + "in": "query", + "type": "integer", + "required": false, + "x-ms-summary": "Two-year transaction period", + "description": "The 2-year period associated with the transaction" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min date", + "description": "Minimum transaction date" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max date", + "description": "Maximum transaction date" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min amount", + "description": "Return transactions gt or equal to this amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max amount", + "description": "Return transactions lt or equal to this amount" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Image number", + "description": "Image number of the filing page" + }, + { + "name": "recipient_committee_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient committee type", + "description": "One-letter type code of the recipient organization" + }, + { + "name": "recipient_committee_designation", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee designation", + "description": "One-letter designation e.g., A, P, U" + }, + { + "name": "recipient_committee_org_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee organization type", + "description": "Type of organization e.g., C, T, W" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-contribution_receipt_date", + "x-ms-summary": "Sort order", + "description": "Sort by any supported field e.g., -contribution_receipt_date" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null values", + "description": "Return only results where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move nulls to the end of sorted results" + } + ], + "responses": { + "200": { + "description": "A single Schedule A transaction", + "schema": { + "$ref": "#/definitions/ScheduleASubIdResponse" + } + }, + "400": { + "description": "Bad request – invalid sub_id or missing required filter", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – missing or invalid API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – not permitted to access this resource", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no transaction exists with that sub_id", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_b/": { + "get": { + "x-ms-summary": "Get Schedule B Itemized Disbursements", + "description": "Retrieve itemized disbursement records from FEC Schedule B filings. This data shows how committees spend money, including operating expenses, transfers, and loan repayments. Includes details such as payee, amount, purpose, and date. Keyset pagination is used. To fetch additional results, use 'last_index' and 'last_disbursement_date'", + "operationId": "Schedules_GetScheduleBDisbursements", + "parameters": [ + { + "name": "spender_committee_org_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Type of organization for the spending committee", + "description": "The organizational type of the committee that made the disbursement", + "default": "C" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement date", + "description": "Return disbursements made on or before this date YYYY-MM-DD", + "default": "2024-06-30" + }, + { + "name": "disbursement_description", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Description of disbursement", + "description": "Text from the disbursement purpose/description field", + "default": "Printing and postage" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by. Prefix with '-' to sort descending", + "default": "-disbursement_date" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Records per page", + "description": "Number of records to return per page (max: 100", + "default": "20" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last index for pagination", + "description": "Used for keyset pagination — pass the 'last_index' from the previous response to get next page", + "default": "" + }, + { + "name": "recipient_state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient state abbreviation", + "description": "U.S. state or territory abbreviation where the recipient is located", + "default": "NY" + }, + { + "name": "disbursement_purpose_category", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Purpose category", + "description": "Category assigned by the FEC based on disbursement description", + "enum": [ + "ADMINISTRATIVE", + "ADVERTISING", + "CONTRIBUTIONS", + "EVENTS", + "FUNDRAISING", + "LOAN-REPAYMENTS", + "MATERIALS", + "OTHER", + "POLLING", + "REFUNDS", + "TRANSFERS", + "TRAVEL" + ], + "default": "ADMINISTRATIVE" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum image number", + "description": "Return disbursements with image number less than or equal to this value", + "default": "202406300123456789" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement date", + "description": "Return disbursements made on or after this date YYYY-MM-DD", + "default": "2023-01-01" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Specific image number", + "description": "Filter by a specific image number for a filed report", + "default": "202401010000123456" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "last_disbursement_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last disbursement date for keyset pagination", + "description": "Used in combination with 'last_index' for keyset pagination", + "default": "" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "recipient_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient name", + "description": "Name of the disbursement recipient", + "default": "Acme Printing Co" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID", + "description": "A unique ID assigned to a committee by the FEC. Format: 'C#######'", + "default": "C00703975" + }, + { + "name": "two_year_transaction_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Two-year transaction period", + "description": "A two-year period in which a transaction took place, derived from the report year. Must be even-numbered", + "default": "2024" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Line number on the report", + "description": "Filter by the line number e.g., 21b", + "default": "F3X-16" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum image number", + "description": "Return disbursements with image number greater than or equal to this value", + "default": "202301010000000001" + }, + { + "name": "recipient_committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID of the recipient", + "description": "FEC-assigned ID of the committee that received the disbursement", + "default": "C00580100" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement amount", + "description": "Return disbursements with amounts greater than or equal to this value", + "default": "100" + }, + { + "name": "spender_committee_designation", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Designation of spending committee", + "description": "Committee's designation: 'A' (Authorized), 'J' (Joint), etc", + "default": "A" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement amount", + "description": "Return disbursements with amounts less than or equal to this value", + "default": "10000" + }, + { + "name": "spender_committee_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Type of spending committee", + "description": "Committee type, e.g., 'P' for PAC, 'C' for Candidate Committee", + "default": "P" + }, + { + "name": "recipient_city", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient city", + "description": "City where the disbursement recipient is located", + "default": "New York" + }, + { + "name": "last_disbursement_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last disbursement amount (for pagination", + "description": "Amount of the last disbursement on previous page. Used for keyset pagination", + "default": "" + } + ], + "responses": { + "200": { + "description": "Successful disbursement data response", + "schema": { + "$ref": "#/definitions/ScheduleBResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule B Disbursements" + } + }, + "/schedules/schedule_b/by_purpose/": { + "get": { + "x-ms-summary": "Get Schedule B Disbursements Agg. by Purpose", + "description": "Retrieve Schedule B disbursements aggregated by purpose category. This endpoint returns totals grouped by a derived 'purpose' field, which is calculated from disbursement descriptions, category codes, and transaction codes. Memoed items are excluded to avoid double counting. See the FEC SQL 'disbursement_purpose' function for logic details", + "operationId": "Schedules_GetScheduleBDisbursementsByPurpose", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number for paginated results. Starts at 1", + "default": "1" + }, + { + "name": "purpose", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Disbursement purpose keyword", + "description": "Filter by purpose keyword. This is a derived field, not part of the raw filing", + "enum": [ + "ADMINISTRATIVE", + "ADVERTISING", + "CONTRIBUTIONS", + "EVENTS", + "FUNDRAISING", + "LOAN-REPAYMENTS", + "MATERIALS", + "OTHER", + "POLLING", + "REFUNDS", + "TRANSFERS", + "TRAVEL" + ], + "default": "ADMINISTRATIVE" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID", + "description": "A unique ID assigned to a committee by the FEC. Format: 'C#######'", + "default": "C00703975" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by. Prefix with '-' for descending", + "default": "-total" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Two-year transaction cycle", + "description": "Two-year period derived from the 'report_year'. Must be even-numbered", + "default": "2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Records per page", + "description": "Number of records to return per page (max: 100", + "default": "20" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Aggregated disbursement totals by purpose", + "schema": { + "$ref": "#/definitions/ScheduleBByPurposeResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule B Disbursements By Purpose" + } + }, + "/schedules/schedule_b/by_recipient/": { + "get": { + "x-ms-summary": "Get Schedule B Disbursements Agg. by Recipient", + "description": "Retrieve Schedule B disbursements aggregated by recipient name. This endpoint returns totals grouped by 'recipient_name', excluding memoed transactions to avoid double counting. Useful for identifying top vendors, consultants, and individuals paid by political committees", + "operationId": "Schedules_GetScheduleBDisbursementsByRecipient", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number of results to fetch (starts at 1", + "default": "1" + }, + { + "name": "recipient_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient name filter", + "description": "Name of the recipient to filter by. Case-insensitive partial match supported", + "default": "Acme Printing Co" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID", + "description": "Unique ID assigned to a political committee by the FEC e.g., C00703975", + "default": "C00703975" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by. Prefix with '-' for descending sort", + "default": "-total" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Two-year election cycle", + "description": "Two-year reporting cycle in which the transaction occurred (must be even-numbered", + "default": "2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Records per page", + "description": "Number of records to return per page max 100", + "default": "20" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Aggregated disbursement totals by recipient name", + "schema": { + "$ref": "#/definitions/ScheduleBByRecipientResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule B Disbursements By Recipient", + "x-ms-visibility": "important" + } + }, + "/schedules/schedule_b/by_recipient_id/": { + "get": { + "summary": "Get Schedule B Disbursements By Recipient Id", + "x-ms-summary": "Get disbursements aggregated by recipient committee ID", + "description": "Retrieve Schedule B disbursements aggregated by recipient committee ID. If a disbursement was made to another registered committee e.g., state party, PAC), this endpoint totals those amounts by FEC-assigned 'recipient_id'. Memoed transactions are excluded to avoid double counting", + "operationId": "Schedules_GetScheduleBDisbursementsByRecipientId", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number of results to return (starts at 1", + "default": "1" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID", + "description": "FEC ID of the committee making the disbursement. Format: 'C#######'", + "default": "C00703975" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by. Use '-' prefix for descending", + "default": "-total" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Two-year election cycle", + "description": "The two-year transaction period for disbursement activity (must be even-numbered", + "default": "2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Records per page", + "description": "Number of records to return per page (max: 100", + "default": "20" + }, + { + "name": "recipient_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID of the recipient", + "description": "Filter by the FEC-assigned committee ID of the recipient e.g., C00580100", + "default": "C00580100" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Aggregated disbursement totals by recipient committee ID", + "schema": { + "$ref": "#/definitions/ScheduleBByRecipientIdResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_b/efile/": { + "get": { + "summary": "Get Schedule eFiled Disbursements", + "x-ms-summary": "Get Schedule B Recent eFiled Disbursements", + "description": "Retrieve real-time Schedule B disbursements from electronically filed reports. This endpoint only includes data from the past four months, as received from filers. Unlike processed filings, these results are not normalized or coded by the FEC", + "operationId": "Schedules_GetScheduleBEfile", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number of results to fetch (starts at 1", + "default": "1" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee ID (filer", + "description": "FEC-assigned ID of the committee filing the report. Format: 'C#######'", + "default": "C00703975" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement date", + "description": "Return records with disbursement dates on or before this date YYYY-MM-DD", + "default": "2024-06-30" + }, + { + "name": "recipient_city", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient city", + "description": "Filter by the recipient’s city (case-insensitive", + "default": "New York" + }, + { + "name": "disbursement_description", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Disbursement description", + "description": "Full or partial text of the disbursement purpose or description", + "default": "Postage" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by. Prefix with '-' for descending order", + "default": "-disbursement_date" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results per page", + "description": "Number of results to return per page (max: 100", + "default": "20" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement amount", + "description": "Return records with disbursement amounts gt or equal to this value", + "default": "100" + }, + { + "name": "recipient_state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient state", + "description": "Two-letter U.S. state or territory abbreviation of the recipient", + "default": "NY" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement amount", + "description": "Return records with disbursement amounts lt or equal to this value", + "default": "5000" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement date", + "description": "Return records with disbursement dates on or after this date YYYY-MM-DD", + "default": "2024-04-01" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Image number", + "description": "Filter by the image number assigned to the report or transaction", + "default": "202407120001234567" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Real-time eFiled Schedule B disbursement records", + "schema": { + "$ref": "#/definitions/ScheduleBEfileResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_b/{sub_id}/": { + "get": { + "x-ms-summary": "Get Schedule B Itemized Disbursements by Sub Id", + "description": "Retrieve a single Schedule B disbursement record using a unique 'sub_id'. Schedule B filings describe itemized disbursements by political committees and filers and are included in forms F3, F3X, and F3P. The data is organized into two-year reporting periods. This endpoint is part of the keyset-paginated '/schedule_b/' family and is best used for retrieving a known record e.g., from search, reference, or drill-through scenarios", + "operationId": "Schedules_GetScheduleBBySubId", + "parameters": [ + { + "name": "sub_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Unique FEC sub_id", + "description": "Unique identifier for a Schedule B transaction. Must be exact" + }, + { + "name": "spender_committee_org_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Spender committee organization type", + "description": "Organization type of the committee making the disbursement", + "default": "C" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement date", + "description": "Return records with disbursements made on or before this date", + "default": "2024-06-30" + }, + { + "name": "disbursement_description", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Disbursement description", + "description": "Text in the purpose or description field of the disbursement", + "default": "Consulting services" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field to sort results by e.g., 'disbursement_date'). Use '-' for descending", + "default": "-disbursement_date" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results per page", + "description": "Number of records to return per page", + "default": "20" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last index for pagination", + "description": "Used for keyset pagination. Pass value from previous response", + "default": "" + }, + { + "name": "recipient_state", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient state", + "description": "State abbreviation where the recipient is located", + "default": "NY" + }, + { + "name": "disbursement_purpose_category", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Purpose category", + "description": "Grouping of disbursement purpose e.g., ADS", + "enum": [ + "ADMINISTRATIVE", + "ADVERTISING", + "CONTRIBUTIONS", + "EVENTS", + "FUNDRAISING", + "LOAN-REPAYMENTS", + "MATERIALS", + "OTHER", + "POLLING", + "REFUNDS", + "TRANSFERS", + "TRAVEL" + ], + "default": "ADMINISTRATIVE" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum image number", + "description": "Return records with image numbers less than or equal to this value", + "default": "202406301234567890" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement date", + "description": "Return records with disbursements made on or after this date", + "default": "2023-01-01" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Image number", + "description": "FEC image number for the transaction or report", + "default": "202407011000123456" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "last_disbursement_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last disbursement date for pagination", + "description": "Used in keyset pagination alongside 'last_index'", + "default": "" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "recipient_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient name", + "description": "Name of the recipient of the disbursement", + "default": "ACME Consulting" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee ID", + "description": "Committee that filed the disbursement", + "default": "C00703975" + }, + { + "name": "two_year_transaction_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Reporting period", + "description": "Two-year cycle the transaction occurred in (must be even-numbered", + "default": "2024" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Report line number", + "description": "The specific form line number for the disbursement e.g., 21b", + "default": "21b" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum image number", + "description": "Return records with image numbers greater than or equal to this value", + "default": "202301010000000001" + }, + { + "name": "recipient_committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient committee ID", + "description": "If the recipient is a registered committee, this is their FEC ID", + "default": "C00580100" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum disbursement amount", + "description": "Return records with disbursement amount gt or equal to this value", + "default": "100" + }, + { + "name": "spender_committee_designation", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee designation", + "description": "Designation of the committee making the disbursement e.g., A, J", + "default": "A" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum disbursement amount", + "description": "Return records with disbursement amount lt or equal to this value", + "default": "10000" + }, + { + "name": "spender_committee_type", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee type", + "description": "Type of the committee making the disbursement e.g., PAC, Party", + "default": "P" + }, + { + "name": "recipient_city", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Recipient city", + "description": "City where the disbursement recipient is located", + "default": "Washington" + }, + { + "name": "last_disbursement_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last disbursement amount", + "description": "Used in keyset pagination with 'last_index'", + "default": "" + } + ], + "responses": { + "200": { + "description": "A disbursement record for a specific sub_id", + "schema": { + "$ref": "#/definitions/ScheduleBResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule B By SubId" + } + }, + "/schedules/schedule_c/": { + "get": { + "x-ms-summary": "Get Schedule C Loans, Endorsements and Guarantees", + "description": "Retrieve Schedule C entries listing all loans, endorsements, and loan guarantees made or received by committees. These records remain until the loan is fully repaid", + "operationId": "Schedules_GetScheduleCLoans", + "parameters": [ + { + "name": "max_payment_to_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max payment-to-date", + "description": "Return entries where 'payment_to_date' is ≤ this value", + "default": "5000" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sorting order", + "description": "Field(s) to sort by; prefix with '-' for descending", + "default": "-incurred_date" + }, + { + "name": "candidate_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate name", + "description": "Full or partial candidate name to filter loan activity", + "default": "Doe" + }, + { + "name": "max_incurred_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum incurred date", + "description": "Include entries with 'incurred_date' on or before this YYYY-MM-DD", + "default": "2024-06-30" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results per page", + "description": "Number of records per page max 100", + "default": "20" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Last index", + "description": "Keyset pagination index—use value from previous response", + "default": "" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max image number", + "description": "Include entries with 'image_number' ≤ this", + "default": "202406301234567890" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Image number", + "description": "Filter by 'image_number'", + "default": "202407010000123456" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "loan_source_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Loan source name", + "description": "Filter by name of loan source", + "default": "ABC Bank" + }, + { + "name": "min_incurred_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum incurred date", + "description": "Include entries with 'incurred_date' ≥ this YYYY-MM-DD", + "default": "2023-01-01" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number for paginated results", + "default": "1" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "FEC Committee ID", + "description": "FEC committee ID filing the report e.g., C00703975", + "default": "C00703975" + }, + { + "name": "min_payment_to_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min payment-to-date", + "description": "Include entries where 'payment_to_date' ≥ this value", + "default": "0" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Report line number", + "description": "Line number on the form e.g., 12", + "default": "12" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum image number", + "description": "Include entries with 'image_number' ≥ this", + "default": "202301010000000001" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Minimum loan amount", + "description": "Include entries with 'original_loan_amount' ≥ this", + "default": "100" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Maximum loan amount", + "description": "Include entries with 'original_loan_amount' ≤ this", + "default": "10000" + } + ], + "responses": { + "200": { + "description": "Schedule C loan entries", + "schema": { + "$ref": "#/definitions/ScheduleCResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule C Loans" + } + }, + "/schedules/schedule_c/{sub_id}/": { + "get": { + "x-ms-summary": "Get Schedule C Specific Record by Sub Id", + "description": "Retrieve a specific Schedule C loan, endorsement, or guarantee entry using its unique 'sub_id'. Schedule C shows all loans received or made by a committee and is reported until fully repaid", + "operationId": "Schedules_GetScheduleCBySubId", + "parameters": [ + { + "name": "sub_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Schedule C Record ID", + "description": "Unique identifier for a Schedule C record", + "default": "4081320231514102515" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page of results to retrieve", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results per page", + "description": "Number of records per page", + "default": "20" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort order", + "description": "Field to sort by. Prefix with '-' for descending", + "default": "-incurred_date" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + } + ], + "responses": { + "200": { + "description": "Schedule C result for the provided 'sub_id'", + "schema": { + "$ref": "#/definitions/ScheduleCResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule C By Sub Id" + } + }, + "/schedules/schedule_d/": { + "get": { + "x-ms-summary": "Get Schedule D Debts and Obligations", + "description": "Retrieve Schedule D records, which disclose debts and obligations owed to or by a committee. This includes creditor/debtor details, amounts incurred, outstanding balances, and more", + "operationId": "Schedules_GetScheduleD", + "parameters": [ + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve", + "default": "1" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Results per page", + "description": "Number of records to return per page", + "default": "20" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., 'load_date'). Use '-fieldname' for descending", + "default": "-committee_id" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Committee ID", + "description": "FEC-assigned committee ID e.g., C00573261", + "default": "C00573261" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., H0NY19075", + "default": "H0NY19075" + }, + { + "name": "creditor_debtor_name", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Creditor/Debtor name", + "description": "Filter by creditor or debtor name", + "default": "ACME Corporation" + }, + { + "name": "nature_of_debt", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Nature of debt", + "description": "Description of the type or purpose of the debt", + "default": "Consulting Services" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Line number", + "description": "FEC line number on the report e.g., 10", + "default": "10" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Image number", + "description": "Unique identifier for the electronic or paper filing image", + "default": "15951130388" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min image number", + "description": "Minimum image number to filter results", + "default": "10000000000" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max image number", + "description": "Maximum image number to filter results", + "default": "99999999999" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min transaction date", + "description": "Minimum date YYYY-MM-DD", + "default": "2023-01-01" + }, + { + "name": "max_date", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max transaction date", + "description": "Maximum date YYYY-MM-DD", + "default": "2024-12-31" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min amount", + "description": "Minimum debt amount (reported value", + "default": "0" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max amount", + "description": "Maximum debt amount (reported value", + "default": "100000" + }, + { + "name": "min_amount_incurred", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min amount incurred (period", + "description": "Minimum incurred amount during the period", + "default": "0" + }, + { + "name": "max_amount_incurred", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max amount incurred (period", + "description": "Maximum incurred amount during the period", + "default": "100000" + }, + { + "name": "min_payment_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Min payment period", + "description": "Minimum number of periods the debt spans", + "default": "1" + }, + { + "name": "max_payment_period", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Max payment period", + "description": "Maximum number of periods the debt spans", + "default": "12" + } + ], + "responses": { + "200": { + "description": "Schedule D results matching query", + "schema": { + "$ref": "#/definitions/ScheduleDResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule D" + } + }, + "/schedules/schedule_d/{sub_id}/": { + "get": { + "operationId": "Schedules_ScheduleDSubId", + "x-ms-summary": "Get Schedule D Specific Debt or Obligation Record by Sub Id", + "description": "Retrieve a single Schedule D record by its unique sub_id. Schedule D reports debts and obligations owed to or by a committee, including outstanding balances and payment periods", + "parameters": [ + { + "name": "sub_id", + "in": "path", + "type": "string", + "required": true, + "x-ms-summary": "Unique FEC submission ID", + "description": "The unique identifier for the Schedule D record e.g., 4072020222000179930", + "default": "4072020222000179930" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Page number", + "description": "The results page to return", + "default": "1" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., load_date", + "default": "committee_id" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Results per page", + "description": "The number of records per page", + "default": "20" + } + ], + "responses": { + "200": { + "description": "Schedule D results matching query", + "schema": { + "$ref": "#/definitions/ScheduleDResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule D Records By Sub Id" + } + }, + "/schedules/schedule_e/": { + "get": { + "operationId": "Schedules_GetScheduleE", + "x-ms-summary": "Get Schedule E Independent Expenditure Line Items", + "description": "Retrieves itemized independent expenditure transactions (Schedule E) made by political committees, super PACs, or other filers. Each record includes expenditure amount, payee details, support/oppose designation, candidate information, and disclosure filing data. Use keyset pagination with 'last_indexes' to iterate over large result sets. Recommended filters include cycle, candidate_id, and committee_id", + "parameters": [ + { + "name": "cycle", + "in": "query", + "type": "integer", + "required": false, + "default": 2024, + "x-ms-summary": "Election cycle", + "description": "Two-year period during which the transaction occurred, based on the election year" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "default": "P80001571", + "x-ms-summary": "FEC Candidate ID", + "description": "FEC-assigned ID for the candidate receiving the independent expenditure e.g., P80001571" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00401224", + "x-ms-summary": "FEC Committee ID", + "description": "FEC-assigned ID of the committee making the expenditure" + }, + { + "name": "support_oppose_indicator", + "in": "query", + "type": "string", + "required": false, + "enum": [ + "S", + "O" + ], + "default": "O", + "x-ms-summary": "Support or Oppose", + "description": "Indicates whether the expenditure supports (S) or opposes (O) the candidate" + }, + { + "name": "per_page", + "in": "query", + "type": "integer", + "required": false, + "default": 20, + "x-ms-summary": "Records per page", + "description": "Number of results to return per page" + }, + { + "name": "last_index", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Keyset pagination index", + "description": "Used for keyset pagination. Get from 'pagination.last_indexes.last_index' in previous response" + }, + { + "name": "last_expenditure_amount", + "in": "query", + "type": "number", + "format": "float", + "required": false, + "default": 100, + "x-ms-summary": "Keyset pagination expenditure amount", + "description": "Used for keyset pagination when sorting by expenditure amount" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-expenditure_date", + "x-ms-summary": "Sort order", + "description": "Field and order to sort by. Prepend '-' for descending" + } + ], + "responses": { + "200": { + "description": "Successful response with Schedule E results", + "schema": { + "$ref": "#/definitions/ScheduleEResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule E" + } + }, + "/schedules/schedule_e/by_candidate/": { + "get": { + "operationId": "GetScheduleETotalsByCandidate", + "x-ms-summary": "Get Schedule E totals by candidate", + "description": "Retrieves Schedule E independent expenditure totals aggregated by candidate. Each record shows total amounts spent to support or oppose a given candidate, grouped by committee. Memoed items are excluded to prevent double counting", + "parameters": [ + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "default": "P80001571", + "x-ms-summary": "Candidate ID", + "description": "FEC-assigned candidate ID e.g., P80001571" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00401224", + "x-ms-summary": "Committee ID", + "description": "FEC ID of the spending committee e.g., C00401224" + }, + { + "name": "cycle", + "in": "query", + "type": "integer", + "required": false, + "default": 2024, + "x-ms-summary": "Election cycle", + "description": "Two-year period during which the transactions occurred" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": false, + "default": "NY", + "x-ms-summary": "State", + "description": "U.S. state of the candidate e.g., NY, CA" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": false, + "default": "12", + "x-ms-summary": "District", + "description": "House district of the candidate e.g., 12" + }, + { + "name": "office", + "in": "query", + "type": "string", + "required": false, + "enum": [ + "house", + "senate", + "president" + ], + "default": "house", + "x-ms-summary": "Office", + "description": "Office sought by the candidate (H = House, S = Senate, P = President" + }, + { + "name": "support_oppose", + "in": "query", + "type": "string", + "required": false, + "default": "", + "x-ms-summary": "Support or oppose", + "description": "Filter by whether the expenditure supports or opposes the candidate (S or O" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-total", + "x-ms-summary": "Sort field", + "description": "Sort results by a field, e.g., total or count. Use '-' for descending" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "boolean", + "required": false, + "default": false, + "x-ms-summary": "Sort nulls last", + "description": "Place null values at the end of sorted results" + }, + { + "name": "election_full", + "in": "query", + "type": "boolean", + "required": false, + "default": true, + "x-ms-summary": "Full election cycle", + "description": "When true, data reflects the full election cycle rather than just calendar year" + }, + { + "name": "page", + "in": "query", + "type": "integer", + "required": false, + "default": 1, + "x-ms-summary": "Page number", + "description": "Page number to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "integer", + "required": false, + "default": 20, + "x-ms-summary": "Results per page", + "description": "Number of records per page" + } + ], + "responses": { + "200": { + "description": "Aggregated Schedule E results by candidate", + "schema": { + "$ref": "#/definitions/ScheduleEByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule E Totals By Candidate" + } + }, + "/schedules/schedule_e/efile/": { + "get": { + "operationId": "GetScheduleEIndependentExpenditureEfilings", + "x-ms-summary": "Get independent expenditure filings (efile, real-time", + "description": "This endpoint returns real-time independent expenditure data from electronically filed reports (Schedule E). Data includes payees, amounts, and support/oppose indicators. These are raw filings, limited to the last four months", + "parameters": [ + { + "name": "candidate_office_district", + "in": "query", + "type": "string", + "required": false, + "default": "01", + "x-ms-summary": "Candidate district", + "description": "US House district of the candidate e.g., 01 for district 1" + }, + { + "name": "max_dissemination_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-12-31", + "x-ms-summary": "Latest dissemination date", + "description": "Filter by the latest date the communication was disseminated" + }, + { + "name": "most_recent", + "in": "query", + "type": "string", + "required": false, + "default": "true", + "x-ms-summary": "Most recent filing only", + "description": "If true, return only the most recent version of each filing" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "-expenditure_date", + "x-ms-summary": "Sort field", + "description": "Sort by a specific field. Use '-' for descending order" + }, + { + "name": "support_oppose_indicator", + "in": "query", + "type": "string", + "required": false, + "default": "S", + "x-ms-summary": "Support or Oppose", + "description": "Indicates whether the expenditure supports or opposes the candidate. Values - 'S', 'O'" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "The number of results to return per page" + }, + { + "name": "candidate_party", + "in": "query", + "type": "string", + "required": false, + "default": "DEM", + "x-ms-summary": "Candidate party", + "description": "Filter by candidate’s party e.g., DEM, REP" + }, + { + "name": "max_filed_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-12-31", + "x-ms-summary": "Max filed date", + "description": "Filter by the latest date the report was filed" + }, + { + "name": "candidate_office", + "in": "query", + "type": "string", + "required": false, + "default": "H", + "x-ms-summary": "Candidate office", + "description": "Filter by office - H (House), S (Senate), P (President" + }, + { + "name": "is_notice", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Is notice", + "description": "Whether the record is a 24/48-hour notice" + }, + { + "name": "payee_name", + "in": "query", + "type": "string", + "required": false, + "default": "ACME Media", + "x-ms-summary": "Payee name", + "description": "Name of the person or entity receiving the payment" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": false, + "default": "202407119619315631", + "x-ms-summary": "Image number", + "description": "Unique identifier for the document image" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "min_dissemination_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-07-01", + "x-ms-summary": "Min dissemination date", + "description": "Earliest date of communication dissemination" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": false, + "default": "C00763489", + "x-ms-summary": "Committee ID", + "description": "FEC-assigned ID of the committee making the expenditure" + }, + { + "name": "filing_form", + "in": "query", + "type": "string", + "required": false, + "default": "F24", + "x-ms-summary": "Filing form", + "description": "The form used to report the expenditure" + }, + { + "name": "max_expenditure_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-12-31", + "x-ms-summary": "Max expenditure date", + "description": "Filter by the latest expenditure date" + }, + { + "name": "min_expenditure_amount", + "in": "query", + "type": "string", + "required": false, + "default": "500", + "x-ms-summary": "Minimum expenditure", + "description": "Minimum reported amount spent" + }, + { + "name": "max_expenditure_amount", + "in": "query", + "type": "string", + "required": false, + "default": "5000", + "x-ms-summary": "Maximum expenditure", + "description": "Maximum reported amount spent" + }, + { + "name": "candidate_office_state", + "in": "query", + "type": "string", + "required": false, + "default": "NY", + "x-ms-summary": "Candidate state", + "description": "US state where the candidate is running" + }, + { + "name": "min_expenditure_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-07-01", + "x-ms-summary": "Min expenditure date", + "description": "Filter by the earliest expenditure date" + }, + { + "name": "candidate_search", + "in": "query", + "type": "string", + "required": false, + "default": "Smith", + "x-ms-summary": "Candidate name search", + "description": "Text search on candidate name" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": false, + "default": "H0NY12345", + "x-ms-summary": "Candidate ID", + "description": "FEC candidate ID" + }, + { + "name": "spender_name", + "in": "query", + "type": "string", + "required": false, + "default": "Citizens for Example", + "x-ms-summary": "Spender name", + "description": "Name of the person or entity spending money" + }, + { + "name": "min_filed_date", + "in": "query", + "type": "string", + "required": false, + "default": "2024-07-01", + "x-ms-summary": "Min filed date", + "description": "Earliest date the report was filed" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/ScheduleEEfileResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule E eFile" + } + }, + "/schedules/schedule_e/totals/by_candidate/": { + "get": { + "summary": "Get Schedule E Totals by Candidate", + "x-ms-summary": "Get Schedule E totals by candidate", + "description": "Returns total independent expenditures on supported or opposed candidates, aggregated by candidate and filtered by election cycle", + "operationId": "Schedules_GetScheduleETotalsByCandidate", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "The page of results to retrieve" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "-total", + "required": true, + "x-ms-summary": "Sort field", + "description": "Sort by a specific field, such as '-total' for descending by total spent" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "default": "2024", + "required": true, + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter data by. Example - 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "The number of results to return per page" + }, + { + "name": "election_full", + "in": "query", + "type": "string", + "default": "true", + "required": true, + "x-ms-summary": "Show full election period", + "description": "Whether to retrieve data for the full election period or not" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "default": "P00003392", + "required": true, + "x-ms-summary": "Candidate ID", + "description": "FEC candidate ID. Example - P00003392 for Joe Biden" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "A list of aggregated independent expenditures by candidate", + "schema": { + "$ref": "#/definitions/ScheduleETotalsByCandidateResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_f/": { + "get": { + "summary": "Get Schedule F Party Expenditures", + "x-ms-summary": "Get coordinated party expenditures (Schedule F", + "description": "Retrieve all special expenditures a national or state party committee makes in connection with general election campaigns of federal candidates. These coordinated party expenditures are not subject to contribution limits but are subject to separate limits detailed in Chapter 7 of the FEC Campaign Guide for Political Party Committees", + "operationId": "Schedules_schedule_f_", + "parameters": [ + { + "name": "max_date", + "in": "query", + "type": "string", + "format": "date", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Maximum expenditure date", + "description": "Latest date to filter expenditure records" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "expenditure_date", + "x-ms-summary": "Sort field", + "description": "Field to sort results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Filter by a 2-year election cycle" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": true, + "default": "2024123193506485124", + "x-ms-summary": "Maximum image number", + "description": "Filter results up to a specific image number" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "format": "date", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Minimum expenditure date", + "description": "Earliest date to filter expenditure records" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": true, + "default": "2024011593501234567", + "x-ms-summary": "Image number", + "description": "Unique identifier for the image of the filing" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "payee_name", + "in": "query", + "type": "string", + "required": true, + "default": "ACME Political Consulting", + "x-ms-summary": "Payee name", + "description": "Name of the entity receiving payment" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to retrieve" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00010603", + "x-ms-summary": "Committee ID", + "description": "FEC ID for the committee" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": true, + "default": "F3000", + "x-ms-summary": "Line number", + "description": "Line number from the filing form" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": true, + "default": "2023010193500000000", + "x-ms-summary": "Minimum image number", + "description": "Filter results starting from this image number" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": true, + "default": "500", + "x-ms-summary": "Minimum amount", + "description": "Filter expenditures with at least this amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": true, + "default": "500000", + "x-ms-summary": "Maximum amount", + "description": "Filter expenditures up to this amount" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P80001571", + "x-ms-summary": "Candidate ID", + "description": "FEC ID for the supported/opposed candidate" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ScheduleFResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/schedules/schedule_f/{sub_id}/": { + "get": { + "operationId": "Schedules_ScheduleFSubId", + "x-ms-summary": "Get Schedule F Itemized Party Expenditures by sub ID", + "description": "Retrieve a specific coordinated party expenditure record (Schedule F) by its unique 'sub_id'. Schedule F details coordinated expenditures made by national or state party committees on behalf of federal candidates. These expenditures are not counted against contribution limits but are subject to other limitations", + "parameters": [ + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "The number of results to return per page. Defaults to 20" + }, + { + "name": "sub_id", + "in": "path", + "type": "string", + "required": true, + "default": "45678920240517", + "x-ms-summary": "Schedule F record ID", + "description": "The unique identifier for the Schedule F itemized record" + } + ], + "responses": { + "200": { + "description": "A specific Schedule F record matching the sub_id", + "schema": { + "$ref": "#/definitions/ScheduleFSubIdResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "summary": "Get Schedule F By Id" + } + }, + "/totals/by_entity/": { + "get": { + "summary": "Get Cumulative Receipt Totals by Entity Type over a two-year cycle", + "x-ms-summary": "Get Cumulative Receipt Totals by Entity Type over a two-year cycle", + "description": "Provides cumulative receipt and disbursement totals by entity type (Candidate, PAC, Party) over a two-year cycle. Totals are adjusted to avoid double counting. This endpoint is useful for analyzing aggregate financial activity over time by entity type. For SQL logic behind the calculations, refer to FEC github V41 large aggregates", + "operationId": "Totals_GetTotalsByEntity", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": false, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to fetch" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "end_date", + "x-ms-summary": "Field to sort by", + "description": "The field to sort the results by" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Two-year election cycle", + "description": "A two-year election cycle to filter results e.g. 2024" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": false, + "default": "20", + "x-ms-summary": "Results per page", + "description": "The number of results to return per page" + } + ], + "responses": { + "200": { + "description": "A list of cumulative totals by entity type", + "schema": { + "$ref": "#/definitions/EntityTotalsResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/totals/{committee_type}/": { + "get": { + "summary": "Get Totals by Committee Type", + "description": "This endpoint provides cumulative totals by committee type over a two-year cycle. It returns summary-level financial information about committees grouped by type, such as PACs, parties, or candidate committees. This includes receipts, disbursements, cash on hand, debts, and more. Valid values for 'committee_type' include: - 'P' for PAC - 'S' for Senate - 'H' for House - 'X' for Presidential - 'Y' for Party - 'Z' for Independent Expenditure-Only See the [FEC committee type codes](https://www.fec.gov/data/browse-data/) for details. See raising tab", + "operationId": "Totals_GetTotalsByCommitteeType", + "parameters": [ + { + "name": "committee_type", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Committee type", + "description": "Committee type code. Examples include 'P' for PACs, 'S' for Senate, 'H' for House, 'X' for Presidential, 'Y' for Party, 'Z' for Independent Expenditure-Only" + }, + { + "name": "cycle", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-summary": "Two-year election cycle", + "description": "Filter results based on a two-year reporting period. The cycle begins in an odd-numbered year and ends in an even-numbered year. If omitted, the most recent cycle is used by default", + "default": 2024 + }, + { + "name": "per_page", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page", + "default": 20 + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-summary": "Page number", + "description": "Page number of results to retrieve", + "default": 1 + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Sort field", + "description": "Field to sort by. Example - 'cycle'", + "default": "cycle" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + } + ], + "responses": { + "200": { + "description": "Successful response with committee totals", + "schema": { + "$ref": "#/definitions/CommitteeTotalResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/audit-case/": { + "get": { + "operationId": "Audit_AuditCase", + "summary": "Get Audit Case Records", + "description": "Returns Final Audit Reports approved by the FEC Commission since inception. This includes committee information, audit report metadata, and categorized issues", + "parameters": [ + { + "name": "committee_type", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Committee type", + "description": "Committee type. Common values: - P (Presidential) - H (House) - S (Senate) - X (PAC) - Y (Party) " + }, + { + "name": "primary_category_id", + "in": "query", + "type": "string", + "required": true, + "default": "all", + "x-ms-summary": "Primary category ID", + "description": "Use all or a specific primary category ID" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": "committee_name", + "x-ms-summary": "Sort field", + "description": "Field to sort by. Options include: - committee_name - total_disbursements - receipts Use '-' prefix for descending order" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "Two-year election cycle to filter audit cases" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results to return per page max 100" + }, + { + "name": "qq", + "in": "query", + "type": "string", + "required": true, + "default": "DNC", + "x-ms-summary": "Alternate search term", + "description": "Alternate form of the 'q' parameter used in audit searches" + }, + { + "name": "audit_case_id", + "in": "query", + "type": "string", + "required": true, + "default": "12-34", + "x-ms-summary": "Audit case ID", + "description": "Unique audit case identifier e.g., 12-34" + }, + { + "name": "min_election_cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2008", + "x-ms-summary": "Minimum cycle", + "description": "Minimum election cycle to include (must be even year" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "barack obama", + "x-ms-summary": "Primary search term", + "description": "Primary query string to filter audit results" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page of results to return" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "Committee ID (starts with C, 9 characters total" + }, + { + "name": "audit_id", + "in": "query", + "type": "string", + "required": true, + "default": "1001", + "x-ms-summary": "Audit ID", + "description": "Internal FEC audit record ID" + }, + { + "name": "max_election_cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Maximum cycle", + "description": "Maximum election cycle to include (must be even year" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P80003338", + "x-ms-summary": "Candidate ID", + "description": "Candidate ID (starts with P, H, or S followed by 8 digits" + }, + { + "name": "sub_category_id", + "in": "query", + "type": "string", + "required": true, + "default": "all", + "x-ms-summary": "Sub-category ID", + "description": "Use all or specify a known sub-category ID" + }, + { + "name": "committee_designation", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Committee designation", + "description": "Committee designation: - P (Principal campaign) - A (Authorized) - B (Lobbyist/Registrant PAC) - J (Joint Fundraiser) " + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/AuditCaseResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/audit-category/": { + "get": { + "summary": "Get Audit Categories and Sub-Categories", + "description": "This lists the options for the categories and subcategories available in the /audit-search/ endpoint", + "operationId": "Audit_AuditCategory", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number (starts at 1" + }, + { + "name": "primary_category_id", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Numeric string ID for the primary audit category", + "description": "Numeric string ID for the primary audit category" + }, + { + "name": "primary_category_name", + "in": "query", + "type": "string", + "required": true, + "default": "Receipts", + "x-ms-summary": "Audit category name", + "description": "Audit category name e.g., Receipts, Disbursements, Reporting" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "primary_category_name", + "x-ms-summary": "Sort field", + "description": "Field to sort by; prepend with '-' for descending" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AuditCategoryResponse" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "402": { + "description": "Payment required", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/committees/": { + "get": { + "summary": "Search for Committees", + "description": "Returns basic information about committees and filers, including names, designations, filing frequencies, types, and organizational affiliations. Use this endpoint to search for federal political committees based on name, state, type, or other filters", + "operationId": "GetCommittees", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "required": true, + "default": "DEM", + "x-ms-summary": "Party", + "description": "Party affiliation e.g., DEM, REP, GRN, LIB" + }, + { + "name": "treasurer_name", + "in": "query", + "type": "string", + "required": true, + "default": "Smith", + "x-ms-summary": "Treasurer name", + "description": "Partial or full name of the committee treasurer" + }, + { + "name": "committee_type", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Committee type", + "description": "P=Presidential, H=House, S=Senate, X=PAC, Y=Party" + }, + { + "name": "filing_frequency", + "in": "query", + "type": "string", + "required": true, + "default": "Q", + "x-ms-summary": "Filing frequency", + "description": "M=Monthly, Q=Quarterly, T=Terminated, A=Admin Terminated, W=Waived" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "name", + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., name, -name for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election cycle", + "description": "2-year election cycle e.g., 2022, 2024" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "organization_type", + "in": "query", + "type": "string", + "required": true, + "default": "C", + "x-ms-summary": "Organization type", + "description": "C=Corp, L=Labor Org, M=Membership Org, T=Trade Assoc" + }, + { + "name": "max_last_f1_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max Form 1 date", + "description": "Latest committee Form 1 filing date YYYY-MM-DD" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State", + "description": "2-letter state abbreviation e.g., NY" + }, + { + "name": "q", + "in": "query", + "type": "string", + "required": true, + "default": "Obama", + "x-ms-summary": "Search text", + "description": "Free-text search on committee name" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number of results to return" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "Committee ID (starts with C and 8 digits" + }, + { + "name": "min_last_f1_date", + "in": "query", + "type": "string", + "required": true, + "default": "2020-01-01", + "x-ms-summary": "Min Form 1 date", + "description": "Earliest Form 1 filing date YYYY-MM-DD" + }, + { + "name": "min_first_file_date", + "in": "query", + "type": "string", + "required": true, + "default": "2010-01-01", + "x-ms-summary": "Min first filing", + "description": "Earliest filing date for any committee report" + }, + { + "name": "year", + "in": "query", + "type": "string", + "required": true, + "default": "2023", + "x-ms-summary": "Calendar year", + "description": "Specific year e.g., 2023" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P80003338", + "x-ms-summary": "Candidate ID", + "description": "Candidate ID (starts with P, H, or S" + }, + { + "name": "designation", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Designation", + "description": "P=Principal, A=Authorized, J=Joint, D=Delegate, B=Lobbyist/Registrant PAC" + }, + { + "name": "max_first_file_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max first filing", + "description": "Latest filing date for any committee report" + } + ], + "responses": { + "200": { + "description": "Committees returned successfully", + "schema": { + "$ref": "#/definitions/CommitteeSearchResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching committees", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/communication_costs/": { + "get": { + "summary": "Retrieve Communication Costs", + "description": "Returns communication costs reported under 52 U.S.C. § 30118. These records capture spending by corporations or labor organizations for political communications that advocate for or against federal candidates", + "operationId": "GetCommunicationCosts", + "parameters": [ + { + "name": "max_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max date", + "description": "Latest transaction date YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "x-ms-summary": "Sort field", + "description": "Field to sort by, e.g., amount, date, committee_id, prefix with '-' for descending" + }, + { + "name": "support_oppose_indicator", + "in": "query", + "type": "string", + "required": true, + "default": "S", + "x-ms-summary": "Support or oppose", + "description": "Support or oppose indicator (S=support, O=oppose" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "max_image_number", + "in": "query", + "type": "string", + "required": true, + "default": "13990012345", + "x-ms-summary": "Max image number", + "description": "Maximum image number for scanned FEC document" + }, + { + "name": "min_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min date", + "description": "Earliest transaction date YYYY-MM-DD" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Move null values to the end of sorted results" + }, + { + "name": "image_number", + "in": "query", + "type": "string", + "required": true, + "default": "13990056789", + "x-ms-summary": "Image number", + "description": "Specific image number of communication cost report" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where sort field is null" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude records with null sort values" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "Filer committee ID (starts with 'C' followed by 8 digits" + }, + { + "name": "line_number", + "in": "query", + "type": "string", + "required": true, + "default": "21B", + "x-ms-summary": "FEC line number", + "description": "FEC line number e.g., 21B" + }, + { + "name": "min_image_number", + "in": "query", + "type": "string", + "required": true, + "default": "13990010000", + "x-ms-summary": "Min image number", + "description": "Minimum image number for scanned FEC documents" + }, + { + "name": "min_amount", + "in": "query", + "type": "string", + "required": true, + "default": "1000", + "x-ms-summary": "Min amount", + "description": "Minimum communication cost amount" + }, + { + "name": "max_amount", + "in": "query", + "type": "string", + "required": true, + "default": "100000", + "x-ms-summary": "Max amount", + "description": "Maximum communication cost amount" + }, + { + "name": "candidate_id", + "in": "query", + "type": "string", + "required": true, + "default": "P80003338", + "x-ms-summary": "Candidate ID", + "description": "Candidate ID (starts with P, H, or S" + } + ], + "responses": { + "200": { + "description": "Communication costs retrieved successfully", + "schema": { + "$ref": "#/definitions/CommunicationCostsResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no matching communication costs", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/election-dates/": { + "get": { + "summary": "Retrieve Election Dates", + "description": "Returns FEC election dates since 1995, including primaries, runoffs, and general elections across all states. Filter by year, state, party, and office sought", + "operationId": "GetElectionDates", + "parameters": [ + { + "name": "max_primary_general_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max primary/general date", + "description": "Latest primary or general election date YYYY-MM-DD" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-election_date", + "x-ms-summary": "Sort field", + "description": "Sort by field e.g., election_date); prefix with '-' for descending" + }, + { + "name": "election_district", + "in": "query", + "type": "string", + "required": true, + "default": "01", + "x-ms-summary": "Congressional district", + "description": "Congressional district e.g., 01, 12" + }, + { + "name": "election_year", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Election year", + "description": "Year of the election" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "min_create_date", + "in": "query", + "type": "string", + "required": true, + "default": "2020-01-01", + "x-ms-summary": "Min creation date", + "description": "Earliest record creation date in the FEC system" + }, + { + "name": "election_state", + "in": "query", + "type": "string", + "required": true, + "default": "NY", + "x-ms-summary": "State", + "description": "Two-letter state abbreviation" + }, + { + "name": "min_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2020-01-01", + "x-ms-summary": "Min update date", + "description": "Earliest date this record was last updated" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "min_primary_general_date", + "in": "query", + "type": "string", + "required": true, + "default": "2020-01-01", + "x-ms-summary": "Min primary/general date", + "description": "Earliest primary/general election date YYYY-MM-DD" + }, + { + "name": "max_create_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-07-01", + "x-ms-summary": "Max creation date", + "description": "Latest record creation date YYYY-MM-DD" + }, + { + "name": "election_party", + "in": "query", + "type": "string", + "required": true, + "default": "DEM", + "x-ms-summary": "Political party", + "description": "Political party abbreviation e.g., DEM, REP" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "election_type_id", + "in": "query", + "type": "string", + "required": true, + "default": "P", + "x-ms-summary": "Election type", + "description": "Election type ID (P = Primary, G = General, R = Runoff" + }, + { + "name": "max_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-07-01", + "x-ms-summary": "Max update date", + "description": "Latest update date YYYY-MM-DD" + }, + { + "name": "min_election_date", + "in": "query", + "type": "string", + "required": true, + "default": "2020-01-01", + "x-ms-summary": "Min election date", + "description": "Earliest election date to include" + }, + { + "name": "office_sought", + "in": "query", + "type": "string", + "required": true, + "default": "H", + "x-ms-summary": "Office sought", + "description": "Office being sought (H = House, S = Senate, P = President" + }, + { + "name": "max_election_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max election date", + "description": "Latest election date to include" + } + ], + "responses": { + "200": { + "description": "Election dates retrieved successfully", + "schema": { + "$ref": "#/definitions/ElectionDatesResponse" + } + }, + "400": { + "description": "Bad request – check query parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized – invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden – access not permitted", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – no election dates matched", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/filings/": { + "get": { + "summary": "Get All FEC Filings", + "description": "All official records and reports filed by or delivered to the FEC", + "operationId": "Filings", + "parameters": [ + { + "name": "party", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Party", + "default": "DEM", + "description": "Political party abbreviation e.g., DEM, REP, LIB" + }, + { + "name": "form_type", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Form Type", + "default": "F3", + "description": "Form type filed e.g., F1, F3, F3P, F5, F24" + }, + { + "name": "most_recent", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Most Recent", + "default": "true", + "description": "Whether to only return the most recent filing for each report" + }, + { + "name": "district", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "District", + "default": "01", + "description": "House district (2-digit string, e.g., 01, 09)" + }, + { + "name": "committee_type", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Committee Type", + "default": "P", + "description": "Committee type (P=Presidential, H=House, S=Senate, X=PAC, Y=Party)" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Sort Order", + "default": "-receipt_date", + "description": "Field to sort by, prefix with '-' for descending" + }, + { + "name": "cycle", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Cycle", + "default": "2024", + "description": "Election cycle (even-numbered year)" + }, + { + "name": "report_year", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Report Year", + "default": "2023", + "description": "Year the report was filed" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Max receipt date", + "default": "2024-06-30", + "description": "Latest filing receipt date (ISO format YYYY-MM-DD)" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "x-ms-summary": "Results Per Page", + "default": "20", + "description": "Results per page" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/FilingResults" + } + }, + "400": { + "description": "Bad request – missing or invalid parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – resource or endpoint not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + }, + "x-ms-visibility": "important" + } + }, + "/legal/search/": {}, + "/operations-log/": { + "get": { + "summary": "Get FEC Data Log", + "description": "The Operations log contains details of each report loaded into the database.", + "operationId": "OperationsLog", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "form_type", + "in": "query", + "type": "string", + "required": true, + "default": "F3", + "x-ms-summary": "Form Type", + "description": "FEC form type e.g., F1, F3, F5, F24" + }, + { + "name": "report_year", + "in": "query", + "type": "string", + "required": true, + "default": "2023", + "x-ms-summary": "Report Year", + "description": "Year the report was filed" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-report_year", + "x-ms-summary": "Sort Order", + "description": "Field to sort by e.g., report_year (prefix with '-' for descending)" + }, + { + "name": "max_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Latest Receipt Date", + "description": "Latest receipt date in YYYY-MM-DD format" + }, + { + "name": "report_type", + "in": "query", + "type": "string", + "required": true, + "default": "Q2", + "x-ms-summary": "Report Type", + "description": "Report type e.g., Q1, Q2, 12P, 30G, M3" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per Page", + "description": "Results per page (max 100)" + }, + { + "name": "candidate_committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "Committee ID linked to the candidate (starts with C)" + }, + { + "name": "min_receipt_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Earliest Receipt Date", + "description": "Earliest receipt date in YYYY-MM-DD format" + }, + { + "name": "min_coverage_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Earliest Coverage Period End Date", + "description": "Earliest coverage period end date YYYY-MM-DD" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return (starts at 1)" + }, + { + "name": "amendment_indicator", + "in": "query", + "type": "string", + "required": false, + "default": "N", + "x-ms-summary": "Amendment Indicator", + "description": "Filter filings based on amendment indicator" + }, + { + "name": "status_num", + "in": "query", + "type": "string", + "required": true, + "default": "0", + "x-ms-summary": "Status Code", + "description": "Filing status code (0 = pending, 1 = processed)" + }, + { + "name": "min_transaction_data_complete_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Earliest Transaction Data Completion Date", + "description": "Earliest date transaction data was marked complete" + }, + { + "name": "max_coverage_end_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Latest Coverage End Date", + "description": "Latest coverage end date" + }, + { + "name": "max_transaction_data_complete_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Latest Transaction Data Completion Date", + "description": "Latest date transaction data was marked complete" + }, + { + "name": "beginning_image_number", + "in": "query", + "type": "string", + "required": true, + "default": "14990012345", + "x-ms-summary": "Beginning Image Number", + "description": "First image number for the report (e.g., scanned FEC form)" + } + ], + "responses": { + "200": { + "description": "Successful response", + "schema": { + "$ref": "#/definitions/OperationsLogResponse" + } + }, + "400": { + "description": "Bad request – missing or invalid parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found – resource or endpoint not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/rad-analyst/": { + "get": { + "summary": "Retrieve RAD Analysts Assigned to Committees", + "description": "Use this endpoint to look up RAD (Reports Analysis Division) analysts assigned to a specific committee. Analysts support filers and ensure reports are complete", + "operationId": "GetRADAnalysts", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return starts at 1" + }, + { + "name": "max_assignment_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-06-30", + "x-ms-summary": "Max assignment update date", + "description": "Latest assignment update date YYYY-MM-DD" + }, + { + "name": "committee_id", + "in": "query", + "type": "string", + "required": true, + "default": "C00431445", + "x-ms-summary": "Committee ID", + "description": "Committee ID (starts with C, 9 characters" + }, + { + "name": "email", + "in": "query", + "type": "string", + "required": true, + "default": "analyst@fec.gov", + "x-ms-summary": "Analyst email", + "description": "Email address of the RAD analyst" + }, + { + "name": "analyst_id", + "in": "query", + "type": "string", + "required": true, + "default": "123", + "x-ms-summary": "Analyst ID", + "description": "Internal analyst ID number" + }, + { + "name": "analyst_short_id", + "in": "query", + "type": "string", + "required": true, + "default": "45", + "x-ms-summary": "Analyst short ID", + "description": "Shortened analyst identifier" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": false, + "default": null, + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., name, title, -assignment_update_date" + }, + { + "name": "name", + "in": "query", + "type": "string", + "required": true, + "default": "Smith", + "x-ms-summary": "Analyst name", + "description": "Full or partial analyst name" + }, + { + "name": "telephone_ext", + "in": "query", + "type": "string", + "required": true, + "default": "1234", + "x-ms-summary": "Telephone extension", + "description": "Telephone extension of the analyst" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "title", + "in": "query", + "type": "string", + "required": true, + "default": "Financial Analyst", + "x-ms-summary": "Analyst title", + "description": "Job title of the analyst e.g., Financial Analyst, Review Analyst" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "min_assignment_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Min assignment update date", + "description": "Earliest assignment update date YYYY-MM-DD" + } + ], + "responses": { + "200": { + "description": "RAD analyst records retrieved successfully", + "schema": { + "$ref": "#/definitions/RADAnalystResponse" + } + }, + "400": { + "description": "Bad request - check your parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized - invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden - access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found - resource not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/reporting-dates/": { + "get": { + "summary": "Retrieve Audit Reporting Dates", + "description": "Returns Federal Election Commission (FEC) report due dates and associated metadata starting from 1995. Useful for tracking quarterly, monthly, and special election filings", + "operationId": "GetAuditReportingDates", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "max_create_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-07-01", + "x-ms-summary": "Max create date", + "description": "Latest creation date for reporting schedule YYYY-MM-DD" + }, + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "required": true, + "default": "1", + "x-ms-summary": "Page number", + "description": "Page number to return (starts at 1" + }, + { + "name": "min_due_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-01-01", + "x-ms-summary": "Min due date", + "description": "Earliest report due date YYYY-MM-DD" + }, + { + "name": "max_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-07-01", + "x-ms-summary": "Max update date", + "description": "Latest update date for a reporting record" + }, + { + "name": "report_year", + "in": "query", + "type": "string", + "required": true, + "default": "2024", + "x-ms-summary": "Report year", + "description": "Year the report is due" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "required": true, + "default": "-due_date", + "x-ms-summary": "Sort field", + "description": "Sort field, e.g., due_date, prefix with '-' for descending" + }, + { + "name": "report_type", + "in": "query", + "type": "string", + "required": true, + "default": "Q2", + "x-ms-summary": "Report type", + "description": "Type of report e.g., Q1, Q2, 12P, M3, YEAR" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "required": true, + "default": "20", + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "min_create_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Min create date", + "description": "Earliest creation date for reporting schedule" + }, + { + "name": "max_due_date", + "in": "query", + "type": "string", + "required": true, + "default": "2024-12-31", + "x-ms-summary": "Max due date", + "description": "Latest report due date YYYY-MM-DD" + }, + { + "name": "min_update_date", + "in": "query", + "type": "string", + "required": true, + "default": "2023-01-01", + "x-ms-summary": "Min update date", + "description": "Earliest update date for a reporting record" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "required": false, + "default": "false", + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + } + ], + "responses": { + "200": { + "description": "Reporting dates retrieved successfully", + "schema": { + "$ref": "#/definitions/ReportingDatesResponse" + } + }, + "400": { + "description": "Bad request - check your parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized - invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden - access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found - resource not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + }, + "/state-election-office/": { + "get": { + "summary": "Retrieve State and Local Election Office Details", + "description": "This endpoint retrieves contact details for state and local election offices, including address, phone numbers, email, and websites. These offices provide information on laws, procedures, and candidate requirements for local elections", + "operationId": "StateElectionOffice", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "sort_hide_null", + "in": "query", + "type": "string", + "default": "false", + "required": false, + "x-ms-summary": "Hide null sort values", + "description": "Whether to exclude results where the sort field is null" + }, + { + "name": "page", + "in": "query", + "type": "string", + "default": "1", + "required": true, + "x-ms-summary": "Page number", + "description": "Page number to return starting at 1" + }, + { + "name": "sort_nulls_last", + "in": "query", + "type": "string", + "default": "false", + "required": false, + "x-ms-summary": "Nulls last", + "description": "Whether to move nulls to the bottom of sorted results" + }, + { + "name": "sort", + "in": "query", + "type": "string", + "default": "state", + "required": true, + "x-ms-summary": "Sort field", + "description": "Field to sort by e.g., state, email, -fax" + }, + { + "name": "sort_null_only", + "in": "query", + "type": "string", + "default": "false", + "required": false, + "x-ms-summary": "Only null sort values", + "description": "Return only records where the sort field is null" + }, + { + "name": "per_page", + "in": "query", + "type": "string", + "default": "20", + "required": true, + "x-ms-summary": "Results per page", + "description": "Number of results per page max 100" + }, + { + "name": "state", + "in": "query", + "type": "string", + "default": "NY", + "required": true, + "x-ms-summary": "State code", + "description": "2-letter state abbreviation e.g., NY, CA, TX" + } + ], + "responses": { + "200": { + "description": "State election offices retrieved successfully", + "schema": { + "$ref": "#/definitions/StateElectionOfficeResponse" + } + }, + "400": { + "description": "Bad request - check required parameters", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "401": { + "description": "Unauthorized - invalid or missing API key", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden - access denied", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found - resource does not exist", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "default": { + "description": "Unexpected error occurred" + } + } + } + } + }, + "definitions": { + "CalendarDatesResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total count of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of calendar events", + "items": { + "type": "object", + "properties": { + "all_day": { + "type": "boolean", + "description": "Whether the event lasts all day" + }, + "calendar_category_id": { + "type": "integer", + "format": "int32", + "description": "Event category ID" + }, + "category": { + "type": "string", + "description": "Category name" + }, + "description": { + "type": "string", + "description": "Event description" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "End date" + }, + "event_id": { + "type": "integer", + "format": "int32", + "description": "Unique event ID" + }, + "location": { + "type": "string", + "description": "Event location" + }, + "start_date": { + "type": "string", + "format": "date", + "description": "Start date" + }, + "state": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Related U.S. states (if any" + }, + "summary": { + "type": "string", + "description": "Event summary" + }, + "url": { + "type": "string", + "description": "Link to more information" + } + } + } + } + } + }, + "CandidateCommitteeHistoryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer", + "format": "int32" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer", + "format": "int32" + }, + "last_cycle_has_financial": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "description": "List of candidate's committee history records" + } + } + }, + "CandidateCommitteeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata for the response", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of candidate committees", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "affiliated_committee_name": { + "type": "string", + "description": "Name of the affiliated committee, if applicable" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of candidate IDs affiliated with this committee" + }, + "city": { + "type": "string", + "description": "Committee mailing city" + }, + "committee_type": { + "type": "string", + "description": "Committee type code" + }, + "committee_type_full": { + "type": "string", + "description": "Full name of the committee type" + }, + "custodian_city": { + "type": "string", + "description": "City of the committee’s custodian" + }, + "custodian_name_1": { + "type": "string", + "description": "Custodian's first name" + }, + "custodian_name_2": { + "type": "string", + "description": "Custodian's last name" + }, + "custodian_name_full": { + "type": "string", + "description": "Full name of the custodian" + }, + "custodian_name_middle": { + "type": "string", + "description": "Custodian's middle name" + }, + "custodian_name_prefix": { + "type": "string", + "description": "Custodian's name prefix e.g., Mr., Ms." + }, + "custodian_name_suffix": { + "type": "string", + "description": "Custodian's name suffix e.g., Jr., III" + }, + "custodian_name_title": { + "type": "string", + "description": "Custodian's professional title" + }, + "custodian_phone": { + "type": "string", + "description": "Phone number for the custodian" + }, + "custodian_state": { + "type": "string", + "description": "State abbreviation for custodian" + }, + "custodian_street_1": { + "type": "string", + "description": "Street address line 1 for the custodian" + }, + "custodian_street_2": { + "type": "string", + "description": "Street address line 2 for the custodian" + }, + "custodian_zip": { + "type": "string", + "description": "ZIP code for the custodian address" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Election cycles in which the committee was active" + }, + "designation": { + "type": "string", + "description": "Committee designation code e.g., P = principal" + }, + "designation_full": { + "type": "string", + "description": "Full description of designation" + }, + "email": { + "type": "string", + "description": "Contact email for the committee" + }, + "fax": { + "type": "string", + "description": "Fax number" + }, + "filing_frequency": { + "type": "string", + "description": "Filing frequency e.g., monthly, quarterly" + }, + "first_file_date": { + "type": "string", + "description": "Date of first filing by the committee" + }, + "form_type": { + "type": "string", + "description": "Form type last filed e.g., F1, F3" + }, + "last_file_date": { + "type": "string", + "description": "Date of most recent filing" + }, + "leadership_pac": { + "type": "string", + "description": "Indicates if this is a leadership PAC" + }, + "lobbyist_registrant_pac": { + "type": "string", + "description": "Indicates if this is a lobbyist registrant PAC" + }, + "name": { + "type": "string", + "description": "Name of the committee" + }, + "organization_type": { + "type": "string", + "description": "Organization type code e.g., C = Corporation" + }, + "organization_type_full": { + "type": "string", + "description": "Full organization type name" + }, + "party": { + "type": "string", + "description": "Party affiliation code" + }, + "party_full": { + "type": "string", + "description": "Full party name" + }, + "party_type": { + "type": "string", + "description": "Party type code" + }, + "party_type_full": { + "type": "string", + "description": "Full party type name" + }, + "state": { + "type": "string", + "description": "State abbreviation" + }, + "state_full": { + "type": "string", + "description": "Full state name" + }, + "street_1": { + "type": "string", + "description": "Mailing street address 1" + }, + "street_2": { + "type": "string", + "description": "Mailing street address 2" + }, + "treasurer_city": { + "type": "string", + "description": "City of the treasurer" + }, + "treasurer_name": { + "type": "string", + "description": "Full name of the treasurer" + }, + "treasurer_name_1": { + "type": "string", + "description": "Treasurer's first name" + }, + "treasurer_name_2": { + "type": "string", + "description": "Treasurer's last name" + }, + "treasurer_name_middle": { + "type": "string", + "description": "Treasurer's middle name" + }, + "treasurer_name_prefix": { + "type": "string", + "description": "Treasurer's name prefix e.g., Dr., Mr." + }, + "treasurer_name_suffix": { + "type": "string", + "description": "Treasurer's name suffix" + }, + "treasurer_name_title": { + "type": "string", + "description": "Treasurer’s professional title" + }, + "treasurer_phone": { + "type": "string", + "description": "Treasurer’s phone number" + }, + "treasurer_state": { + "type": "string", + "description": "Treasurer’s state abbreviation" + }, + "treasurer_street_1": { + "type": "string", + "description": "Treasurer’s mailing street address 1" + }, + "treasurer_street_2": { + "type": "string", + "description": "Treasurer’s mailing street address 2" + }, + "treasurer_zip": { + "type": "string", + "description": "Treasurer’s ZIP code" + }, + "website": { + "type": "string", + "description": "Committee website URL" + }, + "zip": { + "type": "string", + "description": "ZIP code of the committee" + } + } + } + } + } + }, + "CandidateHistoryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "Candidate history records", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC ID for the candidate" + }, + "two_year_period": { + "type": "integer", + "format": "int32", + "description": "Two-year cycle associated with the record" + }, + "active_through": { + "type": "integer", + "format": "int32", + "description": "Last year of active candidacy" + }, + "address_city": { + "type": "string", + "description": "Candidate's city" + }, + "address_state": { + "type": "string", + "description": "Candidate's state" + }, + "address_street_1": { + "type": "string", + "description": "Street address line 1" + }, + "address_street_2": { + "type": "string", + "description": "Street address line 2" + }, + "address_zip": { + "type": "string", + "description": "ZIP code" + }, + "candidate_election_year": { + "type": "integer", + "format": "int32", + "description": "Year the candidate stood for election" + }, + "candidate_inactive": { + "type": "boolean", + "description": "True if candidate is no longer active" + }, + "candidate_status": { + "type": "string", + "description": "Status of the candidate e.g., C for current" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "FEC election cycles" + }, + "district": { + "type": "string", + "description": "Congressional district code" + }, + "district_number": { + "type": "integer", + "format": "int32", + "description": "District number" + }, + "election_districts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of election districts" + }, + "election_years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Election years candidate participated in" + }, + "fec_cycles_in_election": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "FEC cycles relevant to elections" + }, + "first_file_date": { + "type": "string", + "description": "First date of filing YYYY-MM-DD" + }, + "flags": { + "type": "string", + "description": "Flags or warnings about the record" + }, + "incumbent_challenge": { + "type": "string", + "description": "Code for incumbent challenge status" + }, + "incumbent_challenge_full": { + "type": "string", + "description": "Full description of the challenge status" + }, + "last_f2_date": { + "type": "string", + "description": "Last Form 2 filing date" + }, + "last_file_date": { + "type": "string", + "description": "Most recent filing date" + }, + "load_date": { + "type": "string", + "description": "Date the data was loaded into FEC systems" + }, + "name": { + "type": "string", + "description": "Candidate's full name" + }, + "office": { + "type": "string", + "description": "Office sought e.g., H for House" + }, + "office_full": { + "type": "string", + "description": "Full office name" + }, + "party": { + "type": "string", + "description": "Party code" + }, + "party_full": { + "type": "string", + "description": "Full name of the party" + }, + "rounded_election_years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Rounded years for election groupings" + }, + "state": { + "type": "string", + "description": "State abbreviation" + } + } + } + } + } + }, + "CandidateProfileResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "description": "List of candidate records", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC ID for the candidate" + }, + "name": { + "type": "string", + "description": "Candidate's full name" + }, + "office": { + "type": "string", + "description": "Office sought" + }, + "party": { + "type": "string", + "description": "Party abbreviation" + }, + "state": { + "type": "string", + "description": "U.S. state abbreviation" + }, + "active_through": { + "type": "integer", + "format": "int32", + "description": "Last cycle candidate was active" + }, + "has_raised_funds": { + "type": "boolean", + "description": "True if candidate raised funds" + }, + "federal_funds_flag": { + "type": "boolean", + "description": "True if federal funds were accepted" + }, + "address_city": { + "type": "string", + "description": "Mailing city" + }, + "address_state": { + "type": "string", + "description": "Mailing state" + }, + "address_street_1": { + "type": "string", + "description": "Address line 1" + }, + "address_street_2": { + "type": "string", + "description": "Address line 2" + }, + "address_zip": { + "type": "string", + "description": "ZIP code" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "List of cycles active" + } + } + } + } + } + }, + "CandidateFilingsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string" + }, + "candidate_name": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "form_type": { + "type": "string" + }, + "form_category": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer" + }, + "receipt_date": { + "type": "string" + }, + "total_receipts": { + "type": "number", + "format": "float" + }, + "fec_url": { + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "update_date": { + "type": "string" + } + } + } + } + } + }, + "CandidateTotalsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cycle": { + "type": "integer", + "format": "int32" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "contributions": { + "type": "number", + "format": "float" + }, + "disbursements": { + "type": "number", + "format": "float" + }, + "cash_on_hand_beginning_period": { + "type": "number", + "format": "float" + }, + "last_cash_on_hand_end_period": { + "type": "number", + "format": "float" + }, + "last_debts_owed_by_committee": { + "type": "number", + "format": "float" + }, + "last_report_type_full": { + "type": "string" + }, + "last_report_year": { + "type": "integer", + "format": "int32" + }, + "operating_expenditures": { + "type": "number", + "format": "float" + }, + "receipts": { + "type": "number", + "format": "float" + }, + "refunds_relating_convention_exp": { + "type": "number", + "format": "float" + }, + "shared_fed_operating_expenditures": { + "type": "number", + "format": "float" + }, + "net_contributions": { + "type": "number", + "format": "float" + }, + "total_independent_expenditures": { + "type": "number", + "format": "float" + }, + "pdf_url": { + "type": "string" + }, + "party_full": { + "type": "string" + } + } + } + } + } + }, + "CandidatesTotalsByOfficeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "election_year": { + "type": "integer", + "format": "int32" + }, + "office": { + "type": "string" + }, + "total_receipts": { + "type": "number", + "format": "float" + }, + "total_disbursements": { + "type": "number", + "format": "float" + } + } + } + } + } + }, + "CandidatesTotalsByOfficeByPartyResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "election_year": { + "type": "integer", + "format": "int32" + }, + "office": { + "type": "string" + }, + "party": { + "type": "string" + }, + "total_receipts": { + "type": "number", + "format": "float" + }, + "total_disbursements": { + "type": "number", + "format": "float" + } + } + } + } + } + }, + "CandidatesTotalsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "office": { + "type": "string" + }, + "state": { + "type": "string" + }, + "party": { + "type": "string" + }, + "cycle": { + "type": "integer", + "format": "int32" + }, + "election_year": { + "type": "integer", + "format": "int32" + }, + "receipts": { + "type": "number", + "format": "float" + }, + "disbursements": { + "type": "number", + "format": "float" + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float" + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float" + }, + "federal_funds_flag": { + "type": "boolean" + }, + "is_election": { + "type": "boolean" + }, + "has_raised_funds": { + "type": "boolean" + }, + "candidate_status": { + "type": "string" + } + } + } + } + } + }, + "CandidatesResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "pages": { + "type": "integer" + }, + "per_page": { + "type": "integer" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "party": { + "type": "string" + }, + "office": { + "type": "string" + }, + "state": { + "type": "string" + }, + "candidate_status": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "election_years": { + "type": "array", + "items": { + "type": "integer" + } + }, + "incumbent_challenge": { + "type": "string" + }, + "federal_funds_flag": { + "type": "boolean" + }, + "has_raised_funds": { + "type": "boolean" + }, + "principal_committees": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "party": { + "type": "string" + }, + "state": { + "type": "string" + }, + "designation": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "CommitteeCandidateHistoryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of candidates associated with the committee", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "Unique FEC candidate ID" + }, + "two_year_period": { + "type": "integer", + "format": "int32", + "description": "Two-year reporting period" + }, + "active_through": { + "type": "integer", + "format": "int32", + "description": "Last year the candidate was active" + }, + "address_city": { + "type": "string", + "description": "Candidate's city" + }, + "address_state": { + "type": "string", + "description": "Candidate's state" + }, + "address_street_1": { + "type": "string", + "description": "Candidate's address line 1" + }, + "address_street_2": { + "type": "string", + "description": "Candidate's address line 2" + }, + "address_zip": { + "type": "string", + "description": "ZIP code" + }, + "candidate_election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + }, + "candidate_inactive": { + "type": "boolean", + "description": "Whether the candidate is inactive" + }, + "candidate_status": { + "type": "string", + "description": "Candidate status code e.g., 'C', 'P'" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Election cycles the candidate participated in" + }, + "district": { + "type": "string", + "description": "Congressional district" + }, + "district_number": { + "type": "integer", + "format": "int32", + "description": "District number" + }, + "election_districts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Election districts" + }, + "election_years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Years the candidate ran for election" + }, + "fec_cycles_in_election": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "FEC cycles in the election" + }, + "first_file_date": { + "type": "string", + "description": "First filing date" + }, + "flags": { + "type": "string", + "description": "Special flags associated with the candidate" + }, + "incumbent_challenge": { + "type": "string", + "description": "Incumbency status" + }, + "incumbent_challenge_full": { + "type": "string", + "description": "Full text of incumbent status" + }, + "last_f2_date": { + "type": "string", + "description": "Last Form 2 filing date" + }, + "last_file_date": { + "type": "string", + "description": "Most recent filing date" + }, + "load_date": { + "type": "string", + "description": "Load date of the record" + }, + "name": { + "type": "string", + "description": "Candidate's full name" + }, + "office": { + "type": "string", + "description": "Office code e.g., H, S, P" + }, + "office_full": { + "type": "string", + "description": "Full name of the office e.g., House, Senate, President" + }, + "party": { + "type": "string", + "description": "Party abbreviation" + }, + "party_full": { + "type": "string", + "description": "Full party name" + }, + "rounded_election_years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Rounded election years" + }, + "state": { + "type": "string", + "description": "State code" + } + } + } + } + } + }, + "CommitteeHistoryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata for the result set", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records available" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of committee history records", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID for the committee" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle year" + }, + "affiliated_committee_name": { + "type": "string", + "description": "Name of affiliated committee" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of candidate IDs linked to the committee" + }, + "city": { + "type": "string", + "description": "City of the committee’s address" + }, + "committee_type": { + "type": "string", + "description": "Code for the type of committee e.g., H, S, P" + }, + "committee_type_full": { + "type": "string", + "description": "Full name of the committee type" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles in which the committee was active" + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles in which the committee had any activity" + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles in which the committee reported financials" + }, + "designation": { + "type": "string", + "description": "Committee designation code e.g., P, A, J" + }, + "designation_full": { + "type": "string", + "description": "Full description of the designation" + }, + "filing_frequency": { + "type": "string", + "description": "Filing frequency e.g., M = monthly" + }, + "is_active": { + "type": "boolean", + "description": "Whether the committee is currently active" + }, + "last_cycle_has_activity": { + "type": "integer", + "format": "int32", + "description": "Most recent cycle with committee activity" + }, + "last_cycle_has_financial": { + "type": "integer", + "format": "int32", + "description": "Most recent cycle with financials" + }, + "name": { + "type": "string", + "description": "Official name of the committee" + }, + "organization_type": { + "type": "string", + "description": "Type of organization e.g., Corporation, Union" + }, + "organization_type_full": { + "type": "string", + "description": "Full name of organization type" + }, + "party": { + "type": "string", + "description": "Party code" + }, + "party_full": { + "type": "string", + "description": "Full name of the party" + }, + "state": { + "type": "string", + "description": "Two-letter state abbreviation" + }, + "state_full": { + "type": "string", + "description": "Full name of the state" + }, + "street_1": { + "type": "string", + "description": "First line of the committee’s address" + }, + "street_2": { + "type": "string", + "description": "Second line of the committee’s address (optional" + }, + "treasurer_name": { + "type": "string", + "description": "Name of the committee treasurer" + }, + "zip": { + "type": "string", + "description": "ZIP code of the committee’s address" + } + } + } + } + } + }, + "CommitteeHistoryCycleResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination information", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Number of results returned" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "Committee history data for the specified cycle", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC committee ID" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle" + }, + "affiliated_committee_name": { + "type": "string", + "description": "Name of affiliated committee" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Related candidate IDs" + }, + "city": { + "type": "string", + "description": "City of committee address" + }, + "committee_type": { + "type": "string", + "description": "Committee type code e.g., 'P', 'H', 'S'" + }, + "committee_type_full": { + "type": "string", + "description": "Full text for committee type" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles in which committee was active" + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles with activity" + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Cycles with financial filings" + }, + "designation": { + "type": "string", + "description": "Committee designation e.g., 'P'" + }, + "designation_full": { + "type": "string", + "description": "Full text for committee designation" + }, + "filing_frequency": { + "type": "string", + "description": "Filing frequency e.g., 'M', 'Q'" + }, + "is_active": { + "type": "boolean", + "description": "Whether the committee is currently active" + }, + "last_cycle_has_activity": { + "type": "integer", + "format": "int32", + "description": "Last active cycle" + }, + "last_cycle_has_financial": { + "type": "integer", + "format": "int32", + "description": "Last cycle with financial filings" + }, + "name": { + "type": "string", + "description": "Committee name" + }, + "organization_type": { + "type": "string", + "description": "Organization type code" + }, + "organization_type_full": { + "type": "string", + "description": "Full text for organization type" + }, + "party": { + "type": "string", + "description": "Party code" + }, + "party_full": { + "type": "string", + "description": "Full name of party" + }, + "state": { + "type": "string", + "description": "State abbreviation" + }, + "state_full": { + "type": "string", + "description": "Full state name" + }, + "street_1": { + "type": "string", + "description": "Address line 1" + }, + "street_2": { + "type": "string", + "description": "Address line 2" + }, + "treasurer_name": { + "type": "string", + "description": "Name of treasurer" + }, + "zip": { + "type": "string", + "description": "ZIP code" + } + } + } + } + } + }, + "CommitteeDetailsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of committee records", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "affiliated_committee_name": { + "type": "string", + "description": "Name of affiliated committee" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Associated candidate IDs" + }, + "city": { + "type": "string", + "description": "City of the committee" + }, + "committee_type": { + "type": "string", + "description": "Committee type code" + }, + "committee_type_full": { + "type": "string", + "description": "Full name of committee type" + }, + "custodian_city": { + "type": "string", + "description": "Custodian’s city" + }, + "custodian_name_1": { + "type": "string", + "description": "Custodian’s first name" + }, + "custodian_name_2": { + "type": "string", + "description": "Custodian’s last name" + }, + "custodian_name_full": { + "type": "string", + "description": "Full custodian name" + }, + "custodian_name_middle": { + "type": "string", + "description": "Custodian’s middle name" + }, + "custodian_name_prefix": { + "type": "string", + "description": "Prefix for custodian’s name" + }, + "custodian_name_suffix": { + "type": "string", + "description": "Suffix for custodian’s name" + }, + "custodian_name_title": { + "type": "string", + "description": "Title of custodian" + }, + "custodian_phone": { + "type": "string", + "description": "Custodian’s phone number" + }, + "custodian_state": { + "type": "string", + "description": "Custodian’s state" + }, + "custodian_street_1": { + "type": "string", + "description": "Custodian’s address line 1" + }, + "custodian_street_2": { + "type": "string", + "description": "Custodian’s address line 2" + }, + "custodian_zip": { + "type": "string", + "description": "Custodian’s ZIP code" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "List of active cycles" + }, + "designation": { + "type": "string", + "description": "Committee designation code" + }, + "designation_full": { + "type": "string", + "description": "Full committee designation" + }, + "email": { + "type": "string", + "description": "Committee email address" + }, + "fax": { + "type": "string", + "description": "Committee fax number" + }, + "filing_frequency": { + "type": "string", + "description": "Filing frequency" + }, + "first_file_date": { + "type": "string", + "description": "First filing date" + }, + "form_type": { + "type": "string", + "description": "Form type filed" + }, + "last_file_date": { + "type": "string", + "description": "Most recent filing date" + }, + "leadership_pac": { + "type": "string", + "description": "Leadership PAC flag" + }, + "lobbyist_registrant_pac": { + "type": "string", + "description": "Lobbyist PAC flag" + }, + "name": { + "type": "string", + "description": "Full name of committee" + }, + "organization_type": { + "type": "string", + "description": "Code for organization type" + }, + "organization_type_full": { + "type": "string", + "description": "Full organization type name" + }, + "party": { + "type": "string", + "description": "Party affiliation code" + }, + "party_full": { + "type": "string", + "description": "Full party name" + }, + "party_type": { + "type": "string", + "description": "Party type code" + }, + "party_type_full": { + "type": "string", + "description": "Full party type name" + }, + "state": { + "type": "string", + "description": "State abbreviation" + }, + "state_full": { + "type": "string", + "description": "Full state name" + }, + "street_1": { + "type": "string", + "description": "Address line 1" + }, + "street_2": { + "type": "string", + "description": "Address line 2" + }, + "treasurer_city": { + "type": "string", + "description": "City of treasurer" + }, + "treasurer_name": { + "type": "string", + "description": "Full name of treasurer" + }, + "treasurer_name_1": { + "type": "string", + "description": "Treasurer’s first name" + }, + "treasurer_name_2": { + "type": "string", + "description": "Treasurer’s last name" + }, + "treasurer_name_middle": { + "type": "string", + "description": "Treasurer’s middle name" + }, + "treasurer_name_prefix": { + "type": "string", + "description": "Prefix for treasurer’s name" + }, + "treasurer_name_suffix": { + "type": "string", + "description": "Suffix for treasurer’s name" + }, + "treasurer_name_title": { + "type": "string", + "description": "Title of treasurer" + }, + "treasurer_phone": { + "type": "string", + "description": "Treasurer’s phone number" + }, + "treasurer_state": { + "type": "string", + "description": "Treasurer’s state" + }, + "treasurer_street_1": { + "type": "string", + "description": "Treasurer’s address line 1" + }, + "treasurer_street_2": { + "type": "string", + "description": "Treasurer’s address line 2" + }, + "treasurer_zip": { + "type": "string", + "description": "Treasurer’s ZIP code" + }, + "website": { + "type": "string", + "description": "Committee website URL" + }, + "zip": { + "type": "string", + "description": "ZIP code of committee" + } + } + } + } + } + }, + "CommunicationCostsByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated communication costs by candidate", + "items": { + "type": "object", + "properties": { + "support_oppose_indicator": { + "type": "string", + "description": "Support ('S') or oppose ('O') indicator" + }, + "candidate": { + "type": "string", + "description": "Name or ID of the candidate" + }, + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "committee": { + "type": "string", + "description": "Committee name or ID" + }, + "committee_id": { + "type": "string", + "description": "FEC ID of the committee" + }, + "committee_name": { + "type": "string", + "description": "Full name of the committee" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of filings" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total communication cost in USD" + } + } + } + } + } + }, + "CommitteeFilingsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 100 + }, + "page": { + "type": "integer", + "example": 1 + }, + "pages": { + "type": "integer", + "example": 5 + }, + "per_page": { + "type": "integer", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "example": "C00100005" + }, + "committee_name": { + "type": "string", + "example": "Sample Committee Name" + }, + "form_type": { + "type": "string", + "example": "F3X" + }, + "report_type": { + "type": "string", + "example": "Q1" + }, + "receipt_date": { + "type": "string", + "example": "2023-03-15T00:00:00.000Z" + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float", + "example": 250000.75 + }, + "total_disbursements": { + "type": "number", + "format": "float", + "example": 125000.25 + }, + "total_receipts": { + "type": "number", + "format": "float", + "example": 150000 + }, + "is_amended": { + "type": "boolean", + "example": false + }, + "report_year": { + "type": "integer", + "example": 2023 + }, + "document_type": { + "type": "string", + "example": 24 + }, + "fec_url": { + "type": "string", + "example": "https://docquery.fec.gov/cgi-bin/fecimg/?202303159999999" + }, + "html_url": { + "type": "string", + "example": "https://docquery.fec.gov/cgi-bin/forms/C00100005/1599999/" + } + } + } + } + } + }, + "CommitteeReportsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 5 + }, + "page": { + "type": "integer", + "example": 1 + }, + "pages": { + "type": "integer", + "example": 1 + }, + "per_page": { + "type": "integer", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "example": "C00431445" + }, + "committee_name": { + "type": "string", + "example": "Obama for America" + }, + "coverage_start_date": { + "type": "string", + "format": "date", + "example": "2023-01-01" + }, + "coverage_end_date": { + "type": "string", + "format": "date", + "example": "2023-03-31" + }, + "total_receipts": { + "type": "number", + "format": "float", + "example": 1250000 + }, + "total_disbursements": { + "type": "number", + "format": "float", + "example": 1000000 + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float", + "example": 250000 + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float", + "example": 15000 + }, + "is_amended": { + "type": "boolean", + "example": false + }, + "report_type": { + "type": "string", + "example": "Q1" + }, + "document_description": { + "type": "string", + "example": "April Quarterly" + }, + "beginning_image_number": { + "type": "string", + "example": "202304159874123456" + }, + "fec_url": { + "type": "string", + "example": "https://docquery.fec.gov/cgi-bin/fecimg/?202304159874123456" + } + } + } + } + } + }, + "CommitteeTotalsResponse": { + "type": "object", + "description": "Financial summary totals for a committee over a given two-year cycle", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata for navigating large result sets", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results available" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of result pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results returned per page" + } + } + }, + "results": { + "type": "array", + "description": "List of financial totals for the committee", + "items": { + "type": "object", + "properties": { + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "committee_id": { + "type": "string", + "description": "FEC-assigned ID for the committee" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "committee_type": { + "type": "string", + "description": "Short code for committee type" + }, + "committee_type_full": { + "type": "string", + "description": "Full name for the committee type" + }, + "committee_designation": { + "type": "string", + "description": "Designation code for the committee" + }, + "committee_designation_full": { + "type": "string", + "description": "Full name of the committee designation" + }, + "receipts": { + "type": "number", + "format": "float", + "description": "Total receipts during the cycle" + }, + "disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements during the cycle" + }, + "cash_on_hand_beginning_period": { + "type": "number", + "format": "float", + "description": "Cash on hand at the beginning of the period" + }, + "last_cash_on_hand_end_period": { + "type": "number", + "format": "float", + "description": "Cash on hand at the end of the most recent reporting period" + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float", + "description": "Total debts owed by the committee" + }, + "debts_owed_to_committee": { + "type": "number", + "format": "float", + "description": "Total debts owed to the committee" + }, + "coverage_start_date": { + "type": "string", + "description": "Start date of coverage YYYY-MM-DD" + }, + "coverage_end_date": { + "type": "string", + "description": "End date of coverage YYYY-MM-DD" + }, + "last_report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the most recent financial report" + }, + "last_report_type_full": { + "type": "string", + "description": "Full name of the most recent report type" + }, + "pdf_url": { + "type": "string", + "description": "URL to PDF version of the report" + }, + "report_form": { + "type": "string", + "description": "FEC form used for reporting" + }, + "transaction_coverage_date": { + "type": "string", + "description": "Last date included in financial transactions" + } + } + } + } + } + }, + "CommunicationCostsAggregatesResponse": { + "type": "object", + "description": "Aggregated communication costs by candidate and committee", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page of results" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated communication cost records", + "items": { + "type": "object", + "properties": { + "support_oppose_indicator": { + "type": "string", + "description": "Indicates whether the communication supports or opposes the candidate", + "example": "S" + }, + "candidate": { + "type": "string", + "description": "Candidate full name", + "example": "John Smith" + }, + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID", + "example": "H0NY00010" + }, + "candidate_name": { + "type": "string", + "description": "Candidate name (alternate field", + "example": "John Smith" + }, + "committee": { + "type": "string", + "description": "Committee full name", + "example": "ACTBLUE" + }, + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID", + "example": "C00431445" + }, + "committee_name": { + "type": "string", + "description": "Committee name (alternate field", + "example": "ACTBLUE" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of communications", + "example": 7 + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle year", + "example": 2024 + }, + "total": { + "type": "number", + "format": "float", + "description": "Total dollar amount spent on communications", + "example": 5300 + } + } + } + } + } + }, + "CommunicationCostsTotalsByCandidateResponse": { + "type": "object", + "description": "Total communication costs aggregated by candidate", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page of results" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "Total communication cost records", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID", + "example": "H0CA12036" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle year", + "example": 2024 + }, + "support_oppose_indicator": { + "type": "string", + "description": "Indicates whether the spending supported or opposed the candidate", + "example": "O" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total cost of communications", + "example": 5820.25 + } + } + } + } + } + }, + "EfileReportsHouseSenateResponse": { + "type": "object", + "description": "F3, F3P, F3X summary reports from electronic filings", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current result page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of result pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of filed summary reports", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "Committee ID", + "example": "C00193433" + }, + "committee_name": { + "type": "string", + "description": "Committee name", + "example": "Friends of John Doe" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate", + "example": "John Doe" + }, + "candidate_id": { + "type": "string", + "description": "Candidate ID", + "example": "H0CA12345" + }, + "report": { + "type": "string", + "description": "Report code or label", + "example": "Q2" + }, + "report_type": { + "type": "string", + "description": "Report form type e.g., F3X, F3, F3P", + "example": "F3X" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "Unique FEC file number", + "example": 1739012 + }, + "receipt_date": { + "type": "string", + "description": "Date FEC received the filing", + "example": "2024-06-30" + }, + "coverage_start_date": { + "type": "string", + "description": "Start date of coverage period", + "example": "2024-04-01" + }, + "coverage_end_date": { + "type": "string", + "description": "End date of coverage period", + "example": "2024-06-30" + }, + "cash_on_hand_beginning_period": { + "type": "integer", + "format": "int32", + "description": "Cash on hand at the beginning of the period", + "example": 15200 + }, + "is_amended": { + "type": "boolean", + "description": "Whether the report is an amendment", + "example": false + }, + "pdf_url": { + "type": "string", + "description": "Link to FEC-hosted PDF of the report", + "example": "https://docquery.fec.gov/pdf/123/1739012.pdf" + }, + "fec_url": { + "type": "string", + "description": "FEC page for the filing", + "example": "https://www.fec.gov/data/filings/1739012/" + } + } + } + } + } + }, + "EfileReportsPACPartyResponse": { + "type": "object", + "description": "F3X summary filings from PAC and party committees", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total result count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of PAC/party report filings", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID", + "example": "C00193433" + }, + "committee_name": { + "type": "string", + "description": "Full name of the committee", + "example": "Progressive Victory Fund" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "Unique filing number", + "example": 1739012 + }, + "report": { + "type": "string", + "description": "Report code or label", + "example": "M5" + }, + "report_type": { + "type": "string", + "description": "Type of form submitted e.g. F3X", + "example": "F3X" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year the report was filed", + "example": 2024 + }, + "receipt_date": { + "type": "string", + "description": "Date FEC received the filing", + "example": "2024-06-30" + }, + "coverage_start_date": { + "type": "string", + "description": "Beginning of reporting period", + "example": "2024-05-01" + }, + "coverage_end_date": { + "type": "string", + "description": "End of reporting period", + "example": "2024-06-30" + }, + "is_amended": { + "type": "boolean", + "description": "Whether the report is an amended version", + "example": false + }, + "pdf_url": { + "type": "string", + "description": "Link to PDF version of the filing", + "example": "https://docquery.fec.gov/pdf/123/1739012.pdf" + }, + "fec_url": { + "type": "string", + "description": "FEC webpage for this filing", + "example": "https://www.fec.gov/data/filings/1739012/" + }, + "qualified_multicandidate_committee": { + "type": "string", + "description": "Indicates if the committee is a qualified multicandidate committee", + "example": "Y" + }, + "summary_lines": { + "type": "string", + "description": "Encoded summary of report totals" + }, + "state": { + "type": "string", + "description": "State abbreviation of committee mailing address", + "example": "NY" + }, + "city": { + "type": "string", + "description": "City of committee address", + "example": "New York" + }, + "street_1": { + "type": "string", + "description": "Street address line 1", + "example": "123 Liberty St" + }, + "street_2": { + "type": "string", + "description": "Street address line 2 (optional" + }, + "zip": { + "type": "string", + "description": "ZIP code", + "example": 10006 + } + } + } + } + } + }, + "EfileReportsPresidentialResponse": { + "type": "object", + "description": "Presidential committee electronic F3P report filings", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "F3P filings submitted by presidential committees", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID", + "example": "C00703975" + }, + "committee_name": { + "type": "string", + "description": "Name of the presidential committee", + "example": "Biden for President" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "Unique filing number", + "example": 1728456 + }, + "report_type": { + "type": "string", + "description": "FEC form type e.g., F3P", + "example": "F3P" + }, + "report": { + "type": "string", + "description": "Code or label for the report", + "example": "Q2" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the report", + "example": 2024 + }, + "receipt_date": { + "type": "string", + "description": "Date the FEC received the report", + "example": "2024-06-30" + }, + "coverage_start_date": { + "type": "string", + "description": "Start of the reporting period", + "example": "2024-04-01" + }, + "coverage_end_date": { + "type": "string", + "description": "End of the reporting period", + "example": "2024-06-30" + }, + "is_amended": { + "type": "boolean", + "description": "Whether this is an amended filing", + "example": false + }, + "most_recent": { + "type": "boolean", + "description": "Whether this is the most recent filing", + "example": true + }, + "pdf_url": { + "type": "string", + "description": "Link to the report PDF", + "example": "https://docquery.fec.gov/pdf/456/1728456.pdf" + }, + "fec_url": { + "type": "string", + "description": "Link to the report on FEC.gov", + "example": "https://www.fec.gov/data/filings/1728456/" + }, + "net_contributions_cycle_to_date": { + "type": "number", + "format": "float", + "description": "Net contributions received in the cycle", + "example": 54800000 + }, + "net_operating_expenditures_cycle_to_date": { + "type": "number", + "format": "float", + "description": "Net operating expenditures for the cycle", + "example": 50000000 + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float", + "description": "Committee debts owed", + "example": 1000000 + }, + "debts_owed_to_committee": { + "type": "number", + "format": "float", + "description": "Debts owed to the committee", + "example": 150000 + }, + "cash_on_hand_beginning_period": { + "type": "number", + "format": "float", + "description": "Starting cash balance", + "example": 2000000 + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float", + "description": "Ending cash balance", + "example": 1800000 + }, + "expenditure_subject_to_limits": { + "type": "number", + "format": "float", + "description": "Expenditures subject to federal limits", + "example": 32000000 + }, + "treasurer_name": { + "type": "string", + "description": "Full name of the treasurer", + "example": "Jane Smith" + }, + "sign_date": { + "type": "string", + "description": "Date the report was signed", + "example": "2024-06-28" + }, + "general_election": { + "type": "string", + "description": "Date of general election (if applicable", + "example": "2024-11-05" + }, + "primary_election": { + "type": "string", + "description": "Date of primary election (if applicable", + "example": "2024-04-23" + }, + "election_date": { + "type": "string", + "description": "Date of the relevant election", + "example": "2024-11-05" + }, + "election_state": { + "type": "string", + "description": "State abbreviation for election", + "example": "NY" + }, + "summary_lines": { + "type": "string", + "description": "Encoded or structured summary information" + }, + "subtotal_summary_period": { + "type": "string", + "description": "Optional subtotal breakdowns" + }, + "state": { + "type": "string", + "description": "State abbreviation of mailing address", + "example": "DE" + }, + "city": { + "type": "string", + "description": "City of mailing address", + "example": "Wilmington" + }, + "street_1": { + "type": "string", + "description": "Street address line 1", + "example": "123 Hope Ave" + }, + "street_2": { + "type": "string", + "description": "Street address line 2", + "example": "Apt 4C" + }, + "zip": { + "type": "string", + "description": "ZIP code", + "example": 19801 + } + } + } + } + } + }, + "EfileFilingsResponse": { + "type": "object", + "description": "Metadata and details for electronic FEC filings", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of electronic filings", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "Unique filing number" + }, + "form_type": { + "type": "string", + "description": "FEC form type e.g., F3X, F3P" + }, + "fec_file_id": { + "type": "string", + "description": "FEC file ID string" + }, + "fec_url": { + "type": "string", + "description": "URL to the filing on FEC.gov" + }, + "pdf_url": { + "type": "string", + "description": "URL to the filing in PDF format" + }, + "html_url": { + "type": "string", + "description": "URL to the HTML version of the filing" + }, + "csv_url": { + "type": "string", + "description": "URL to the CSV version of the filing" + }, + "filed_date": { + "type": "string", + "description": "Date when the filing was submitted YYYY-MM-DD" + }, + "receipt_date": { + "type": "string", + "description": "Date when the filing was received by the FEC YYYY-MM-DD" + }, + "coverage_start_date": { + "type": "string", + "description": "Start date of coverage period" + }, + "coverage_end_date": { + "type": "string", + "description": "End date of coverage period" + }, + "beginning_image_number": { + "type": "string", + "description": "Starting image number of the filing" + }, + "ending_image_number": { + "type": "string", + "description": "Ending image number of the filing" + }, + "is_amended": { + "type": "boolean", + "description": "Whether the filing is an amendment" + }, + "amended_by": { + "type": "integer", + "format": "int32", + "description": "Filing number that amended this report, if any" + }, + "amendment_number": { + "type": "integer", + "format": "int32", + "description": "Amendment version number" + }, + "amends_file": { + "type": "integer", + "format": "int32", + "description": "Original file number that this filing amends" + }, + "most_recent": { + "type": "boolean", + "description": "Whether this is the most recent filing for the period" + }, + "most_recent_filing": { + "type": "integer", + "format": "int32", + "description": "Most recent filing number" + }, + "document_description": { + "type": "string", + "description": "Description of the document" + }, + "load_timestamp": { + "type": "string", + "description": "Timestamp when this record was loaded into the system" + } + } + } + } + } + }, + "ElectioneeringResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total result count" + }, + "last_indexes": { + "type": "string", + "description": "Keyset pagination marker" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amendment_indicator": { + "type": "string", + "description": "Report amendment indicator" + }, + "beginning_image_number": { + "type": "string", + "description": "Beginning image number" + }, + "calculated_candidate_share": { + "type": "number", + "format": "float", + "description": "Share of communication attributed to the candidate" + }, + "candidate_district": { + "type": "string", + "description": "Candidate’s congressional district" + }, + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "candidate_office": { + "type": "string", + "description": "Office the candidate is running for (H, S, or P" + }, + "candidate_state": { + "type": "string", + "description": "Candidate’s state" + }, + "committee_id": { + "type": "string", + "description": "FEC ID of the committee" + }, + "committee_name": { + "type": "string", + "description": "Full name of the committee" + }, + "communication_date": { + "type": "string", + "description": "Date of the communication" + }, + "disbursement_amount": { + "type": "number", + "format": "float", + "description": "Amount spent on the communication" + }, + "disbursement_date": { + "type": "string", + "description": "Date of the disbursement" + }, + "election_type": { + "type": "string", + "description": "Type of election (general, primary, etc." + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "FEC file number" + }, + "link_id": { + "type": "integer", + "format": "int32", + "description": "Link identifier for the record" + }, + "number_ofCandidates_": { + "type": "number", + "format": "float", + "description": "Number of candidates mentioned" + }, + "payee_name": { + "type": "string", + "description": "Name of the vendor/payee" + }, + "payee_state": { + "type": "string", + "description": "State of the payee" + }, + "pdf_url": { + "type": "string", + "description": "URL to the PDF version of the report" + }, + "public_distribution_date": { + "type": "string", + "description": "Date of public distribution" + }, + "purpose_description": { + "type": "string", + "description": "Purpose or nature of the communication" + }, + "receipt_date": { + "type": "string", + "description": "Date the report was received" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Reporting year" + }, + "sb_image_num": { + "type": "string", + "description": "Image number for Schedule B" + }, + "sb_link_id": { + "type": "string", + "description": "Link ID for Schedule B" + }, + "sub_id": { + "type": "integer", + "format": "int32", + "description": "Unique transaction identifier" + } + } + } + } + } + }, + "ElectioneeringAggregatesResponse": { + "type": "object", + "description": "Aggregated totals of electioneering communications per candidate and committee", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of aggregated results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated communication records", + "items": { + "type": "object", + "properties": { + "candidate": { + "type": "string", + "description": "Candidate ID or label" + }, + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "committee": { + "type": "string", + "description": "Committee ID or label" + }, + "committee_id": { + "type": "string", + "description": "FEC ID of the committee" + }, + "committee_name": { + "type": "string", + "description": "Full name of the committee" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of communications" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total dollar amount of electioneering communications" + } + } + } + } + } + }, + "ElectioneeringByCandidateResponse": { + "type": "object", + "description": "Electioneering spending data aggregated by candidate", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Items per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated spending results", + "items": { + "type": "object", + "properties": { + "candidate": { + "type": "string", + "description": "Candidate name or ID" + }, + "candidate_id": { + "type": "string", + "description": "FEC-assigned ID of the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "committee": { + "type": "string", + "description": "Committee name or ID" + }, + "committee_id": { + "type": "string", + "description": "FEC-assigned ID of the committee" + }, + "committee_name": { + "type": "string", + "description": "Full name of the committee" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of electioneering communications" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount spent on electioneering" + } + } + } + } + } + }, + "ElectioneeringTotalsByCandidateResponse": { + "type": "object", + "description": "Total electioneering communication spending by candidate", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "Electioneering totals by candidate", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC-assigned ID of the candidate" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount spent on electioneering communications" + } + } + } + } + } + }, + "ElectionsResponse": { + "type": "object", + "description": "Financial summary for all candidates in a given race", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total result count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of candidate financials for the election", + "items": { + "type": "object", + "properties": { + "candidate_election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the candidate’s election" + }, + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "candidate_pcc_id": { + "type": "string", + "description": "Principal campaign committee ID" + }, + "candidate_pcc_name": { + "type": "string", + "description": "Principal campaign committee name" + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float", + "description": "Cash on hand at the end of the period" + }, + "committee_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of associated committee IDs" + }, + "coverage_end_date": { + "type": "string", + "description": "Coverage end date" + }, + "incumbent_challenge_full": { + "type": "string", + "description": "Incumbent/challenger status" + }, + "party_full": { + "type": "string", + "description": "Full name of the political party" + }, + "total_disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements" + }, + "total_receipts": { + "type": "number", + "format": "float", + "description": "Total receipts" + } + } + } + } + } + }, + "ElectionsSearchResponse": { + "type": "object", + "description": "Response for /elections/search/ endpoint", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of elections found for specified parameters", + "items": { + "type": "object", + "properties": { + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "district": { + "type": "string", + "description": "Congressional district" + }, + "office": { + "type": "string", + "description": "Office being sought e.g., house, senate, president" + }, + "state": { + "type": "string", + "description": "Two-letter state code" + } + } + } + } + } + }, + "ElectionSummaryResponse": { + "type": "object", + "description": "Summary of receipts, disbursements, and independent expenditures", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Number of matched election records" + }, + "disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements reported" + }, + "independent_expenditures": { + "type": "number", + "format": "float", + "description": "Total independent expenditures" + }, + "receipts": { + "type": "number", + "format": "float", + "description": "Total receipts reported" + } + } + }, + "NameSearchResponse": { + "type": "object", + "description": "Results for name-based candidate or committee lookup", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "FEC ID for candidate or committee" + }, + "name": { + "type": "string", + "description": "Name of the candidate or committee" + } + } + } + } + } + }, + "CandidateNameSearchResponse": { + "type": "object", + "description": "Candidate name search response", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Candidate ID" + }, + "name": { + "type": "string", + "description": "Candidate name" + }, + "office_sought": { + "type": "string", + "description": "Office sought e.g., H, S, P" + } + } + } + } + } + }, + "CommitteeNameSearchResponse": { + "type": "object", + "description": "Committee name search response", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Committee ID" + }, + "name": { + "type": "string", + "description": "Committee name" + }, + "is_active": { + "type": "boolean", + "description": "Indicates if the committee is active" + } + } + } + } + } + }, + "PresidentialContributionsResponse": { + "type": "object", + "description": "Net receipts and contribution summaries by candidate and state", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of candidate contribution totals", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "Unique candidate ID" + }, + "candidate_last_name": { + "type": "string", + "description": "Candidate's last name" + }, + "candidate_party_affiliation": { + "type": "string", + "description": "Political party of the candidate" + }, + "contributor_state": { + "type": "string", + "description": "State where contributions originated" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Election year" + }, + "net_receipts": { + "type": "number", + "format": "float", + "description": "Total net receipts" + }, + "rounded_net_receipts": { + "type": "number", + "format": "float", + "description": "Rounded total of net receipts" + } + } + } + } + } + }, + "PresidentialContributionsBySizeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination metadata for results" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "description": "Amount of contribution received" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + }, + "size": { + "type": "integer", + "format": "int32", + "description": "Size of the contribution bucket" + }, + "size_range_id": { + "type": "integer", + "format": "int32", + "description": "Internal ID representing the size range" + } + } + }, + "description": "List of contributions by size per candidate" + } + } + }, + "PresidentialContributionsByStateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination metadata for results" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "description": "Amount of contributions received in the state" + }, + "contribution_state": { + "type": "string", + "description": "Two-letter state abbreviation" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + } + } + }, + "description": "List of contributions by state per candidate" + } + } + }, + "PresidentialCoverageEndDateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination metadata for results" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID" + }, + "coverage_end_date": { + "type": "string", + "description": "End date of coverage (format YYYY-MM-DD" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + } + } + }, + "description": "List of candidates with coverage end dates" + } + } + }, + "PresidentialFinancialSummaryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination metadata for the response" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_contributions_less_repayments": { + "type": "number", + "format": "float", + "description": "Candidate contributions minus loan repayments" + }, + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID" + }, + "candidate_last_name": { + "type": "string", + "description": "Candidate’s last name" + }, + "candidate_name": { + "type": "string", + "description": "Full name of the candidate" + }, + "candidate_party_affiliation": { + "type": "string", + "description": "Political party affiliation" + }, + "cash_on_hand_end": { + "type": "number", + "format": "float", + "description": "Cash on hand at the end of the reporting period" + }, + "committee_designation": { + "type": "string", + "description": "Designation code of the committee" + }, + "committee_id": { + "type": "string", + "description": "Committee ID associated with the candidate" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "committee_type": { + "type": "string", + "description": "Type of committee" + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float", + "description": "Outstanding debts owed by the committee" + }, + "disbursements_less_offsets": { + "type": "number", + "format": "float", + "description": "Net disbursements after offsets" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + }, + "exempt_legal_accounting_disbursement": { + "type": "number", + "format": "float", + "description": "Disbursement for exempt legal or accounting services" + }, + "federal_funds": { + "type": "number", + "format": "float", + "description": "Federal funds received" + }, + "fundraising_disbursements": { + "type": "number", + "format": "float", + "description": "Amount spent on fundraising" + }, + "individual_contributions_less_refunds": { + "type": "number", + "format": "float", + "description": "Net individual contributions after refunds" + }, + "net_receipts": { + "type": "number", + "format": "float", + "description": "Total net receipts" + }, + "offsets_to_operating_expenditures": { + "type": "number", + "format": "float", + "description": "Offsets to operating expenditures" + }, + "operating_expenditures": { + "type": "number", + "format": "float", + "description": "Operating expenditures made by the committee" + }, + "other_disbursements": { + "type": "number", + "format": "float", + "description": "Other miscellaneous disbursements" + }, + "pac_contributions_less_refunds": { + "type": "number", + "format": "float", + "description": "Net PAC contributions after refunds" + }, + "party_contributions_less_refunds": { + "type": "number", + "format": "float", + "description": "Net party contributions after refunds" + }, + "repayments_loans_made_by_candidate": { + "type": "number", + "format": "float", + "description": "Loan repayments made by the candidate" + }, + "repayments_other_loans": { + "type": "number", + "format": "float", + "description": "Loan repayments from other sources" + }, + "rounded_net_receipts": { + "type": "number", + "format": "float", + "description": "Net receipts rounded to nearest dollar" + }, + "total_contribution_refunds": { + "type": "number", + "format": "float", + "description": "Total amount refunded in contributions" + }, + "total_loan_repayments_made": { + "type": "number", + "format": "float", + "description": "Total loan repayments made" + }, + "transfers_from_affiliated_committees": { + "type": "number", + "format": "float", + "description": "Transfers received from affiliated committees" + }, + "transfers_to_other_authorized_committees": { + "type": "number", + "format": "float", + "description": "Transfers sent to other authorized committees" + } + } + }, + "description": "Financial summary data for presidential candidates" + } + } + }, + "ScheduleABySizeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Records per page" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC committee ID" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle year" + }, + "size": { + "type": "integer", + "format": "int32", + "description": "Size bucket e.g., 200, 500, etc." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions in that size range" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount of contributions in that size range" + } + } + } + } + } + }, + "ScheduleABySizeByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata for the response", + "properties": { + "count": { + "type": "integer", + "example": 12 + }, + "page": { + "type": "integer", + "example": 1 + }, + "pages": { + "type": "integer", + "example": 1 + }, + "per_page": { + "type": "integer", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "example": "P80001571", + "description": "FEC ID of the candidate" + }, + "size": { + "type": "string", + "example": "200.00", + "description": "Contribution size bracket" + }, + "count": { + "type": "integer", + "example": 1432, + "description": "Number of contributions in this size" + }, + "total": { + "type": "number", + "format": "float", + "example": 280000.5, + "description": "Total amount received in this size bracket" + }, + "cycle": { + "type": "integer", + "example": 2024, + "description": "Election cycle" + } + } + } + } + } + }, + "ScheduleAByStateByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string" + }, + "count": { + "type": "integer" + }, + "cycle": { + "type": "integer" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "total": { + "type": "number", + "format": "float" + } + } + } + } + } + }, + "ScheduleAByStateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "pages": { + "type": "integer" + }, + "per_page": { + "type": "integer" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "count": { + "type": "integer" + }, + "total": { + "type": "number", + "format": "float" + } + } + } + } + } + }, + "ScheduleAByStateByCandidateTotalsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details for the response", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records returned" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of contribution totals grouped by candidate and state", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC candidate ID" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "state": { + "type": "string", + "description": "Contributor state abbreviation" + }, + "state_full": { + "type": "string", + "description": "Full name of contributor state" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total dollar amount of contributions" + } + } + } + } + } + }, + "ScheduleAByStateTotalsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details for the response", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "Contribution totals by state and committee type", + "items": { + "type": "object", + "properties": { + "committee_type": { + "type": "string", + "description": "Committee type code e.g. 'P', 'H', 'S'" + }, + "committee_type_full": { + "type": "string", + "description": "Full name of the committee type" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions in this category" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle year e.g. 2024" + }, + "state": { + "type": "string", + "description": "State abbreviation e.g. 'CA'" + }, + "state_full": { + "type": "string", + "description": "Full name of the state e.g. 'California'" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total dollar amount of contributions" + } + } + } + } + } + }, + "ScheduleAResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info for the result set", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records found", + "example": 43052850 + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records returned per page", + "example": 20 + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages", + "example": 2152643 + }, + "last_indexes": { + "type": "object", + "description": "Index info for keyset pagination", + "properties": { + "last_index": { + "type": "string", + "description": "The last_index used to fetch the next page", + "example": "230880619" + }, + "last_contribution_receipt_date": { + "type": "string", + "description": "The last contribution_receipt_date used for pagination", + "example": "2014-01-01" + }, + "sort_null_only": { + "type": "boolean", + "description": "Flag indicating if nulls were sorted exclusively", + "example": false + } + } + } + } + }, + "results": { + "type": "array", + "description": "List of individual Schedule A itemized receipt transactions", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned ID of the receiving committee", + "example": "C00401224" + }, + "committee_name": { + "type": "string", + "description": "Name of the receiving committee", + "example": "OBAMA FOR AMERICA" + }, + "contributor_name": { + "type": "string", + "description": "Full name of the contributor", + "example": "SMITH, JOHN A" + }, + "contributor_city": { + "type": "string", + "description": "Contributor's city", + "example": "CHICAGO" + }, + "contributor_state": { + "type": "string", + "description": "Two-letter state abbreviation", + "example": "IL" + }, + "contributor_zip": { + "type": "string", + "description": "ZIP code of the contributor", + "example": "60614" + }, + "contributor_occupation": { + "type": "string", + "description": "Contributor's occupation", + "example": "ENGINEER" + }, + "contributor_employer": { + "type": "string", + "description": "Contributor's employer", + "example": "SELF-EMPLOYED" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "description": "Amount of the contribution received", + "example": 2700 + }, + "contribution_receipt_date": { + "type": "string", + "description": "Date contribution was received YYYY-MM-DD", + "example": "2024-03-15T00:00:00.000Z" + }, + "is_individual": { + "type": "boolean", + "description": "Indicates whether the contributor is an individual", + "example": true + }, + "line_number": { + "type": "string", + "description": "Line number from the form", + "example": "11AI" + }, + "memo_code": { + "type": "string", + "description": "Optional memo code indicating special handling", + "example": "X" + }, + "memo_text": { + "type": "string", + "description": "Memo text for this transaction", + "example": "CONTRIBUTION RECEIVED FROM JOINT FUNDRAISING COMMITTEE" + }, + "receipt_type": { + "type": "string", + "description": "Code for the type of receipt", + "example": "15" + }, + "report_type": { + "type": "string", + "description": "FEC form report type", + "example": "F3" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the report", + "example": 2024 + }, + "two_year_transaction_period": { + "type": "integer", + "format": "int32", + "description": "2-year election period", + "example": 2024 + }, + "sub_id": { + "type": "string", + "description": "Unique identifier for the transaction record", + "example": "1234567891234567890" + }, + "transaction_id": { + "type": "string", + "description": "FEC-assigned transaction ID", + "example": "B12345" + }, + "image_number": { + "type": "string", + "description": "Image number of the scanned FEC form", + "example": "14960793902" + }, + "pdf_url": { + "type": "string", + "description": "URL to the PDF of the filing document", + "example": "https://docquery.fec.gov/pdf/902/14960793902/14960793902.pdf" + } + } + } + } + } + }, + "ScheduleAResult": { + "type": "object", + "properties": { + "contributor_name": { + "type": "string" + }, + "contributor_city": { + "type": "string" + }, + "contributor_state": { + "type": "string" + }, + "contributor_zip": { + "type": "string" + }, + "contributor_employer": { + "type": "string" + }, + "contributor_occupation": { + "type": "string" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float" + }, + "contribution_receipt_date": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "is_individual": { + "type": "boolean" + }, + "image_number": { + "type": "string" + }, + "memo_text": { + "type": "string" + }, + "receipt_type": { + "type": "string" + }, + "receipt_type_desc": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "sub_id": { + "type": "string" + } + } + }, + "ErrorResponse": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + } + }, + "ScheduleAByEmployerResult": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID of the committee receiving the contributions" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle of the contribution" + }, + "employer": { + "type": "string", + "description": "Contributor’s employer name" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions from this employer" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount contributed by this employer" + } + } + }, + "ScheduleAByOccupationResult": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID of the committee receiving the contributions" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle of the contribution" + }, + "occupation": { + "type": "string", + "description": "Contributor’s occupation" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions from this occupation group" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount contributed by this occupation group" + } + } + }, + "ScheduleAByZipResult": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID of the committee receiving the contributions" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle of the contribution" + }, + "zip": { + "type": "string", + "description": "ZIP code of the contributor" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of contributions from this ZIP code" + }, + "state": { + "type": "string", + "description": "Two-letter postal abbreviation of the state" + }, + "state_full": { + "type": "string", + "description": "Full name of the state" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount contributed from this ZIP code" + } + } + }, + "ScheduleAEfileResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of eFiled Schedule A contributions", + "items": { + "type": "object", + "properties": { + "file_number": { + "type": "integer", + "format": "int32", + "description": "Unique identifier for the filing" + }, + "contribution_receipt_date": { + "type": "string", + "format": "date", + "description": "Date the contribution was received" + }, + "contributor_name": { + "type": "string", + "description": "Full name of the contributor" + }, + "contributor_city": { + "type": "string", + "description": "Contributor's city" + }, + "contributor_state": { + "type": "string", + "description": "Contributor's state" + }, + "contributor_zip": { + "type": "string", + "description": "Contributor's ZIP code" + }, + "contributor_employer": { + "type": "string", + "description": "Contributor's employer" + }, + "contributor_occupation": { + "type": "string", + "description": "Contributor's occupation" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "description": "Dollar amount received" + }, + "committee_id": { + "type": "string", + "description": "FEC ID of the committee receiving the contribution" + }, + "image_number": { + "type": "string", + "description": "Unique image number for the filing" + } + } + } + } + } + }, + "ScheduleATransaction": { + "type": "object", + "properties": { + "sub_id": { + "type": "string", + "description": "Unique transaction ID" + }, + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "contributor_name": { + "type": "string", + "description": "Full name of contributor" + }, + "contributor_first_name": { + "type": "string", + "description": "Contributor's first name" + }, + "contributor_middle_name": { + "type": "string", + "description": "Contributor's middle name" + }, + "contributor_last_name": { + "type": "string", + "description": "Contributor's last name" + }, + "contributor_prefix": { + "type": "string", + "description": "Contributor's name prefix" + }, + "contributor_suffix": { + "type": "string", + "description": "Contributor's name suffix" + }, + "contributor_employer": { + "type": "string", + "description": "Contributor's employer" + }, + "contributor_occupation": { + "type": "string", + "description": "Contributor's occupation" + }, + "contributor_city": { + "type": "string", + "description": "City of the contributor" + }, + "contributor_state": { + "type": "string", + "description": "State of the contributor" + }, + "contributor_zip": { + "type": "string", + "description": "ZIP code of the contributor" + }, + "contribution_receipt_date": { + "type": "string", + "format": "date", + "description": "Date of contribution" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "description": "Amount of the contribution" + }, + "is_individual": { + "type": "boolean", + "description": "Whether the contributor is an individual" + }, + "memo_text": { + "type": "string", + "description": "Memo text associated with the contribution" + }, + "memoed_subtotal": { + "type": "boolean", + "description": "Indicates whether the record is a memoed subtotal" + }, + "receipt_type": { + "type": "string", + "description": "Type of receipt" + }, + "receipt_type_desc": { + "type": "string", + "description": "Description of receipt type" + }, + "report_type": { + "type": "string", + "description": "Type of report the transaction appears on" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the report" + }, + "candidate_id": { + "type": "string", + "description": "FEC candidate ID (if applicable" + }, + "candidate_name": { + "type": "string", + "description": "Name of candidate associated with the contribution" + }, + "candidate_office": { + "type": "string", + "description": "Office candidate is running for" + }, + "candidate_office_state": { + "type": "string", + "description": "State of office" + }, + "candidate_office_district": { + "type": "string", + "description": "District of office" + }, + "election_type": { + "type": "string", + "description": "Election type e.g. primary, general" + }, + "transaction_id": { + "type": "string", + "description": "Internal FEC transaction ID" + }, + "filing_form": { + "type": "string", + "description": "The filing form that includes this transaction" + }, + "image_number": { + "type": "string", + "description": "Image number for viewing the PDF filing" + }, + "pdf_url": { + "type": "string", + "description": "URL to the PDF version of the filing" + }, + "load_date": { + "type": "string", + "format": "date", + "description": "Date the record was loaded into FEC systems" + }, + "line_number": { + "type": "string", + "description": "FEC form line number" + } + } + }, + "ScheduleBResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "count" + }, + "last_indexes": { + "type": "string", + "description": "last_indexes" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "per_page" + } + }, + "description": "pagination" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "committee": { + "type": "object", + "description": "Spending committee information", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer", + "format": "int32" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer" + }, + "last_cycle_has_financial": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "recipient_committee": { + "type": "object", + "description": "Receiving committee information", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer" + }, + "last_cycle_has_financial": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "amendment_indicator": { + "type": "string" + }, + "amendment_indicator_desc": { + "type": "string" + }, + "back_reference_schedule_id": { + "type": "string" + }, + "back_reference_transaction_id": { + "type": "string" + }, + "beneficiary_committee_name": { + "type": "string" + }, + "candidate_first_name": { + "type": "string" + }, + "candidate_id": { + "type": "string" + }, + "candidate_last_name": { + "type": "string" + }, + "candidate_middle_name": { + "type": "string" + }, + "candidate_name": { + "type": "string" + }, + "candidate_office": { + "type": "string" + }, + "candidate_office_description": { + "type": "string" + }, + "candidate_office_district": { + "type": "string" + }, + "candidate_office_state": { + "type": "string" + }, + "candidate_office_state_full": { + "type": "string" + }, + "candidate_prefix": { + "type": "string" + }, + "candidate_suffix": { + "type": "string" + }, + "category_code": { + "type": "string" + }, + "category_code_full": { + "type": "string" + }, + "comm_dt": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "conduit_committee_city": { + "type": "string" + }, + "conduit_committee_name": { + "type": "string" + }, + "conduit_committee_state": { + "type": "string" + }, + "conduit_committee_street1": { + "type": "string" + }, + "conduit_committee_street2": { + "type": "string" + }, + "conduit_committee_zip": { + "type": "integer" + }, + "disbursement_amount": { + "type": "number", + "format": "float" + }, + "disbursement_date": { + "type": "string" + }, + "disbursement_description": { + "type": "string" + }, + "disbursement_purpose_category": { + "type": "string" + }, + "disbursement_type": { + "type": "string" + }, + "disbursement_type_description": { + "type": "string" + }, + "election_type": { + "type": "string" + }, + "election_type_full": { + "type": "string" + }, + "entity_type": { + "type": "string" + }, + "entity_type_desc": { + "type": "string" + }, + "fec_election_type_desc": { + "type": "string" + }, + "fec_election_year": { + "type": "string" + }, + "file_number": { + "type": "integer" + }, + "filing_form": { + "type": "string" + }, + "image_number": { + "type": "string" + }, + "line_number": { + "type": "string" + }, + "line_number_label": { + "type": "string" + }, + "link_id": { + "type": "integer" + }, + "load_date": { + "type": "string" + }, + "memo_code": { + "type": "string" + }, + "memo_code_full": { + "type": "string" + }, + "memo_text": { + "type": "string" + }, + "memoed_subtotal": { + "type": "boolean" + }, + "national_committee_nonfederal_account": { + "type": "string" + }, + "original_sub_id": { + "type": "string" + }, + "payee_employer": { + "type": "string" + }, + "payee_first_name": { + "type": "string" + }, + "payee_last_name": { + "type": "string" + }, + "payee_middle_name": { + "type": "string" + }, + "payee_occupation": { + "type": "string" + }, + "payee_prefix": { + "type": "string" + }, + "payee_suffix": { + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "recipient_city": { + "type": "string" + }, + "recipient_committee_id": { + "type": "string" + }, + "recipient_name": { + "type": "string" + }, + "recipient_state": { + "type": "string" + }, + "recipient_zip": { + "type": "string" + }, + "ref_disp_excess_flg": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer" + }, + "schedule_type": { + "type": "string" + }, + "schedule_type_full": { + "type": "string" + }, + "semi_annual_bundled_refund": { + "type": "number", + "format": "float" + }, + "spender_committee_designation": { + "type": "string" + }, + "spender_committee_org_type": { + "type": "string" + }, + "spender_committee_type": { + "type": "string" + }, + "sub_id": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "two_year_transaction_period": { + "type": "integer" + }, + "unused_recipient_committee_id": { + "type": "string" + } + } + } + } + } + }, + "ScheduleBByPurposeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records matching the query" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated disbursement totals by purpose", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID e.g., C00703975" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year transaction period e.g., 2024" + }, + "purpose": { + "type": "string", + "description": "Derived disbursement purpose e.g., Printing and postage" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of disbursements for this purpose" + }, + "memo_count": { + "type": "integer", + "format": "int32", + "description": "Number of memoed transactions (excluded from totals" + }, + "memo_total": { + "type": "number", + "format": "float", + "description": "Total of memoed transactions (excluded from total" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total disbursement amount for this purpose" + } + } + } + } + } + }, + "ScheduleBByRecipientResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of matching records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of result pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records returned per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated disbursement totals by recipient", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID of the reporting committee e.g., C00703975" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year period when the disbursement occurred e.g., 2024" + }, + "recipient_name": { + "type": "string", + "description": "Name of the recipient receiving disbursement(s" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of disbursement transactions for this recipient" + }, + "memo_count": { + "type": "integer", + "format": "int32", + "description": "Number of excluded memoed transactions for this recipient" + }, + "memo_total": { + "type": "number", + "format": "float", + "description": "Total amount of memoed disbursements (excluded" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total disbursement amount (excluding memoed items" + } + } + } + } + } + }, + "ScheduleBByRecipientIdResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of matching records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated disbursements grouped by recipient committee ID", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC ID of the committee making the disbursement e.g., C00703975" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year transaction period e.g., 2024" + }, + "recipient_id": { + "type": "string", + "description": "FEC ID of the recipient committee e.g., C00580100" + }, + "committee_name": { + "type": "string", + "description": "Official name of the recipient committee" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of disbursements to this committee" + }, + "memo_count": { + "type": "integer", + "format": "int32", + "description": "Number of memoed transactions excluded from totals" + }, + "memo_total": { + "type": "number", + "format": "float", + "description": "Total amount of excluded memoed disbursements" + }, + "recipient_name": { + "type": "string", + "description": "Name of the recipient (if different from committee name" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total disbursement amount to this recipient" + } + } + } + } + } + }, + "ScheduleBEfileResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "description": "Real-time disbursement records from electronic filings", + "items": { + "type": "object", + "properties": { + "file_number": { + "type": "integer", + "format": "int32" + }, + "related_line_number": { + "type": "integer", + "format": "int32" + }, + "amendment_indicator": { + "type": "string" + }, + "back_reference_schedule_name": { + "type": "string" + }, + "back_reference_transaction_id": { + "type": "string" + }, + "beginning_image_number": { + "type": "string" + }, + "beneficiary_committee_name": { + "type": "string" + }, + "candidate_office": { + "type": "string" + }, + "candidate_office_district": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "csv_url": { + "type": "string" + }, + "disbursement_amount": { + "type": "number", + "format": "float" + }, + "disbursement_date": { + "type": "string" + }, + "disbursement_description": { + "type": "string" + }, + "disbursement_type": { + "type": "string" + }, + "entity_type": { + "type": "string" + }, + "fec_url": { + "type": "string" + }, + "image_number": { + "type": "string" + }, + "is_notice": { + "type": "boolean" + }, + "line_number": { + "type": "string" + }, + "load_timestamp": { + "type": "string" + }, + "memo_code": { + "type": "string" + }, + "memo_text": { + "type": "string" + }, + "payee_name": { + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "recipient_city": { + "type": "string" + }, + "recipient_name": { + "type": "string" + }, + "recipient_prefix": { + "type": "string" + }, + "recipient_state": { + "type": "string" + }, + "recipient_suffix": { + "type": "string" + }, + "recipient_zip": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "semi_annual_bundled_refund": { + "type": "integer", + "format": "int32" + }, + "transaction_id": { + "type": "string" + }, + "committee": { + "type": "object", + "description": "Filer committee details", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer" + }, + "last_cycle_has_financial": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "filing": { + "type": "object", + "description": "Filing header information", + "properties": { + "amended_by": { + "type": "integer" + }, + "amendment_chain": { + "type": "array", + "items": { + "type": "integer" + } + }, + "amendment_number": { + "type": "integer" + }, + "amends_file": { + "type": "integer" + }, + "beginning_image_number": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "coverage_end_date": { + "type": "string" + }, + "coverage_start_date": { + "type": "string" + }, + "csv_url": { + "type": "string" + }, + "document_description": { + "type": "string" + }, + "ending_image_number": { + "type": "string" + }, + "fec_file_id": { + "type": "string" + }, + "fec_url": { + "type": "string" + }, + "file_number": { + "type": "integer" + }, + "filed_date": { + "type": "string" + }, + "form_type": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "is_amended": { + "type": "boolean" + }, + "load_timestamp": { + "type": "string" + }, + "most_recent": { + "type": "boolean" + }, + "most_recent_filing": { + "type": "integer" + }, + "pdf_url": { + "type": "string" + }, + "receipt_date": { + "type": "string" + } + } + } + } + } + } + } + }, + "ScheduleCResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "action_code": { + "type": "string" + }, + "action_code_full": { + "type": "string" + }, + "candidate_first_name": { + "type": "string" + }, + "candidate_id": { + "type": "string" + }, + "candidate_last_name": { + "type": "string" + }, + "candidate_middle_name": { + "type": "string" + }, + "candidate_name": { + "type": "string" + }, + "candidate_office": { + "type": "string" + }, + "candidate_office_district": { + "type": "string" + }, + "candidate_office_full": { + "type": "string" + }, + "candidate_office_state": { + "type": "string" + }, + "candidate_office_state_full": { + "type": "string" + }, + "candidate_prefix": { + "type": "string" + }, + "candidate_suffix": { + "type": "string" + }, + "committee": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer" + }, + "last_cycle_has_financial": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "cycle": { + "type": "integer" + }, + "due_date_terms": { + "type": "string" + }, + "election_type": { + "type": "string" + }, + "election_type_full": { + "type": "string" + }, + "entity_type": { + "type": "string" + }, + "entity_type_full": { + "type": "string" + }, + "fec_committee_id": { + "type": "string" + }, + "fec_election_type_full": { + "type": "string" + }, + "fec_election_type_year": { + "type": "string" + }, + "file_number": { + "type": "integer" + }, + "filing_form": { + "type": "string" + }, + "image_number": { + "type": "string" + }, + "incurred_date": { + "type": "string" + }, + "interest_rate_terms": { + "type": "string" + }, + "line_number": { + "type": "string" + }, + "link_id": { + "type": "integer" + }, + "load_date": { + "type": "string" + }, + "loan_balance": { + "type": "number" + }, + "loan_source_city": { + "type": "string" + }, + "loan_source_first_name": { + "type": "string" + }, + "loan_source_last_name": { + "type": "string" + }, + "loan_source_middle_name": { + "type": "string" + }, + "loan_source_name": { + "type": "string" + }, + "loan_source_prefix": { + "type": "string" + }, + "loan_source_state": { + "type": "string" + }, + "loan_source_street_1": { + "type": "string" + }, + "loan_source_street_2": { + "type": "string" + }, + "loan_source_suffix": { + "type": "string" + }, + "loan_source_zip": { + "type": "integer" + }, + "memo_code": { + "type": "string" + }, + "memo_text": { + "type": "string" + }, + "original_loan_amount": { + "type": "number" + }, + "original_sub_id": { + "type": "integer" + }, + "payment_to_date": { + "type": "number" + }, + "pdf_url": { + "type": "string" + }, + "personally_funded": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer" + }, + "schedule_a_line_number": { + "type": "integer" + }, + "schedule_type": { + "type": "string" + } + } + } + } + } + }, + "ScheduleDResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info for the response", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of Schedule D disbursement records", + "items": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "committee_name": { + "type": "string", + "description": "Name of the reporting committee" + }, + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate, if applicable" + }, + "candidate_first_name": { + "type": "string", + "description": "First name of the candidate" + }, + "candidate_last_name": { + "type": "string", + "description": "Last name of the candidate" + }, + "candidate_office": { + "type": "string", + "description": "Candidate office sought e.g., H, S, P" + }, + "candidate_office_state": { + "type": "string", + "description": "State where office is sought" + }, + "candidate_office_district": { + "type": "string", + "description": "Congressional district" + }, + "amount_incurred_period": { + "type": "number", + "format": "float", + "description": "Amount incurred during the period" + }, + "outstanding_balance_beginning_of_period": { + "type": "number", + "format": "float", + "description": "Balance at the beginning of the period" + }, + "outstanding_balance_close_of_period": { + "type": "number", + "format": "float", + "description": "Balance at the close of the period" + }, + "nature_of_debt": { + "type": "string", + "description": "Description of the nature of the debt" + }, + "creditor_debtor_name": { + "type": "string", + "description": "Name of the creditor or debtor" + }, + "creditor_debtor_city": { + "type": "string", + "description": "City of the creditor or debtor" + }, + "creditor_debtor_state": { + "type": "string", + "description": "State of the creditor or debtor" + }, + "creditor_debtor_street1": { + "type": "string", + "description": "Street address line 1" + }, + "creditor_debtor_street2": { + "type": "string", + "description": "Street address line 2" + }, + "creditor_debtor_zip": { + "type": "string", + "description": "ZIP code of the creditor or debtor" + }, + "entity_type": { + "type": "string", + "description": "Type of entity e.g., IND, COM" + }, + "report_type": { + "type": "string", + "description": "FEC report type e.g., Q1, YE" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the report" + }, + "pdf_url": { + "type": "string", + "description": "Link to the original report PDF" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "File number of the submission" + }, + "image_number": { + "type": "string", + "description": "Image number of the filing" + }, + "schedule_type": { + "type": "string", + "description": "Schedule type (should be D" + }, + "schedule_type_full": { + "type": "string", + "description": "Full description of the schedule type" + }, + "sub_id": { + "type": "string", + "description": "Unique FEC submission ID" + }, + "transaction_id": { + "type": "string", + "description": "Unique transaction ID" + }, + "payment_period": { + "type": "number", + "format": "float", + "description": "Number of periods the debt spans" + } + } + } + } + } + }, + "ScheduleEResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Approximate number of results returned" + }, + "last_indexes": { + "type": "object", + "properties": { + "last_index": { + "type": "string", + "description": "Keyset index for pagination" + }, + "last_expenditure_amount": { + "type": "number", + "format": "float", + "description": "Keyset expenditure amount for pagination" + } + }, + "description": "Indexes to use for pagination" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Approximate number of pages available" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC ID of the candidate" + }, + "committee_id": { + "type": "string", + "description": "FEC ID of the spending committee" + }, + "expenditure_amount": { + "type": "number", + "format": "float", + "description": "Amount spent on the independent expenditure" + }, + "expenditure_date": { + "type": "string", + "format": "date", + "description": "Date the expenditure occurred" + }, + "support_oppose_indicator": { + "type": "string", + "enum": [ + "S", + "O" + ], + "description": "Whether the expenditure supports or opposes the candidate" + }, + "candidate_name": { + "type": "string", + "description": "Name of the candidate" + }, + "payee_name": { + "type": "string", + "description": "Name of the person or entity paid" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Reporting year" + }, + "filing_form": { + "type": "string", + "description": "FEC form filed for this expenditure" + }, + "line_number": { + "type": "string", + "description": "Form line number where expenditure is disclosed" + }, + "image_number": { + "type": "string", + "description": "Image number for accessing the original filing document" + }, + "pdf_url": { + "type": "string", + "description": "Link to the filing PDF" + } + } + }, + "description": "Independent expenditure line items" + } + } + }, + "ScheduleEEfileResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "expenditure_amount": { + "type": "integer", + "format": "int32" + }, + "expenditure_date": { + "type": "string" + }, + "payee_name": { + "type": "string" + }, + "support_oppose_indicator": { + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "transaction_id": { + "type": "string" + } + } + } + } + } + }, + "ScheduleEByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cycle": { + "type": "integer", + "format": "int32", + "description": "Election cycle" + }, + "candidate_id": { + "type": "string", + "description": "FEC-assigned candidate ID" + }, + "candidate_name": { + "type": "string", + "description": "Full candidate name" + }, + "committee_id": { + "type": "string", + "description": "FEC-assigned committee ID" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "support_oppose_indicator": { + "type": "string", + "enum": [ + "S", + "O" + ], + "description": "Whether the expenditure supports or opposes the candidate" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Number of independent expenditures" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total amount spent by the committee toward the candidate" + } + } + }, + "description": "Aggregated results by candidate" + } + } + }, + "ScheduleETotalsByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC ID for the candidate" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "support_oppose_indicator": { + "type": "string", + "description": "Indicator of support (S) or opposition (O" + }, + "total": { + "type": "number", + "format": "float", + "description": "Total dollar amount spent" + } + } + } + } + } + }, + "ScheduleFResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + }, + "description": "Pagination info" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ScheduleFResult" + }, + "description": "Schedule F records" + } + } + }, + "ScheduleFResult": { + "type": "object", + "properties": { + "action_code": { + "type": "string" + }, + "action_code_full": { + "type": "string" + }, + "aggregate_general_election_expenditure": { + "type": "string" + }, + "back_reference_schedule_name": { + "type": "string" + }, + "back_reference_transaction_id": { + "type": "string" + }, + "candidate_first_name": { + "type": "string" + }, + "candidate_id": { + "type": "string" + }, + "candidate_last_name": { + "type": "string" + }, + "candidate_middle_name": { + "type": "string" + }, + "candidate_name": { + "type": "string" + }, + "candidate_office": { + "type": "string" + }, + "candidate_office_district": { + "type": "string" + }, + "candidate_office_full": { + "type": "string" + }, + "candidate_office_state": { + "type": "string" + }, + "candidate_office_state_full": { + "type": "string" + }, + "candidate_prefix": { + "type": "string" + }, + "candidate_suffix": { + "type": "string" + }, + "catolog_code": { + "type": "string" + }, + "catolog_code_full": { + "type": "string" + }, + "committee": { + "$ref": "#/definitions/CommitteeDetails" + }, + "committee_designated_coordinated_expenditure_indicator": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "conduit_committee_city": { + "type": "string" + }, + "conduit_committee_id": { + "type": "string" + }, + "conduit_committee_name": { + "type": "string" + }, + "conduit_committee_state": { + "type": "string" + }, + "conduit_committee_street1": { + "type": "string" + }, + "conduit_committee_street2": { + "type": "string" + }, + "conduit_committee_zip": { + "type": "integer" + }, + "designated_committee_id": { + "type": "string" + }, + "designated_committee_name": { + "type": "string" + }, + "election_cycle": { + "type": "integer" + }, + "entity_type": { + "type": "string" + }, + "entity_type_desc": { + "type": "string" + }, + "expenditure_amount": { + "type": "integer" + }, + "expenditure_date": { + "type": "string" + }, + "expenditure_purpose_full": { + "type": "string" + }, + "expenditure_type": { + "type": "string" + }, + "expenditure_type_full": { + "type": "string" + }, + "file_number": { + "type": "integer" + }, + "filing_form": { + "type": "string" + }, + "image_number": { + "type": "string" + }, + "line_number": { + "type": "string" + }, + "link_id": { + "type": "integer" + }, + "load_date": { + "type": "string" + }, + "memo_code": { + "type": "string" + }, + "memo_code_full": { + "type": "string" + }, + "memo_text": { + "type": "string" + }, + "original_sub_id": { + "type": "integer" + }, + "payee_first_name": { + "type": "string" + }, + "payee_last_name": { + "type": "string" + }, + "payee_middle_name": { + "type": "string" + }, + "payee_name": { + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer" + }, + "schedule_type": { + "type": "string" + }, + "schedule_type_full": { + "type": "string" + }, + "sub_id": { + "type": "string" + }, + "subordinate_committee": { + "$ref": "#/definitions/CommitteeDetails" + }, + "subordinate_committee_id": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "unlimited_spending_flag": { + "type": "string" + }, + "unlimited_spending_flag_full": { + "type": "string" + } + } + }, + "CommitteeDetails": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "cycle": { + "type": "integer" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "type": "string" + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_activity": { + "type": "array", + "items": { + "type": "integer" + } + }, + "cycles_has_financial": { + "type": "array", + "items": { + "type": "integer" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "last_cycle_has_activity": { + "type": "integer" + }, + "last_cycle_has_financial": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "street_1": { + "type": "string" + }, + "street_2": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "ScheduleFSubIdResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info for the result set", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records returned" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of itemized coordinated party expenditure records (Schedule F", + "items": { + "$ref": "#/definitions/ScheduleFResult" + } + } + } + }, + "EntityTotalsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info for the response set", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records returned" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of aggregate totals by entity type", + "items": { + "$ref": "#/definitions/EntityTotalsResult" + } + } + } + }, + "EntityTotalsResult": { + "type": "object", + "properties": { + "cumulative_candidate_disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements made by candidates over the cycle" + }, + "cumulative_candidate_receipts": { + "type": "number", + "format": "float", + "description": "Total receipts received by candidates over the cycle" + }, + "cumulative_pac_disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements made by PACs over the cycle" + }, + "cumulative_pac_receipts": { + "type": "number", + "format": "float", + "description": "Total receipts received by PACs over the cycle" + }, + "cumulative_party_disbursements": { + "type": "number", + "format": "float", + "description": "Total disbursements made by political parties over the cycle" + }, + "cumulative_party_receipts": { + "type": "number", + "format": "float", + "description": "Total receipts received by political parties over the cycle" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "The two-year election cycle the totals apply to" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The most recent date included in the totals" + } + } + }, + "TotalsByCommitteeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata for the result set", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of financial totals aggregated by committee", + "items": { + "$ref": "#/definitions/CommitteeTotalResult" + } + } + } + }, + "CommitteeTotalResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records available" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current results page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of result pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination details for the response" + }, + "results": { + "type": "array", + "description": "Array of committee totals for the specified cycle", + "items": { + "$ref": "#/definitions/CommitteeTotalResult" + } + } + } + }, + "CommitteeTotalResult": { + "type": "object", + "properties": { + "all_loans_received": { + "type": "number", + "format": "float", + "description": "all_loans_received" + }, + "all_other_loans": { + "type": "number", + "format": "float", + "description": "all_other_loans" + }, + "allocated_federal_election_levin_share": { + "type": "number", + "format": "float", + "description": "allocated_federal_election_levin_share" + }, + "candidate_contribution": { + "type": "number", + "format": "float", + "description": "candidate_contribution" + }, + "cash_on_hand_beginning_period": { + "type": "number", + "format": "float", + "description": "cash_on_hand_beginning_period" + }, + "committee_designation": { + "type": "string", + "description": "committee_designation" + }, + "committee_designation_full": { + "type": "string", + "description": "committee_designation_full" + }, + "committee_id": { + "type": "string", + "description": "committee_id" + }, + "committee_name": { + "type": "string", + "description": "committee_name" + }, + "committee_type": { + "type": "string", + "description": "committee_type" + }, + "committee_type_full": { + "type": "string", + "description": "committee_type_full" + }, + "contribution_refunds": { + "type": "number", + "format": "float", + "description": "contribution_refunds" + }, + "contributions": { + "type": "number", + "format": "float", + "description": "contributions" + }, + "convention_exp": { + "type": "number", + "format": "float", + "description": "convention_exp" + }, + "coordinated_expenditures_by_party_committee": { + "type": "number", + "format": "float", + "description": "coordinated_expenditures_by_party_committee" + }, + "coverage_end_date": { + "type": "string", + "description": "coverage_end_date" + }, + "coverage_start_date": { + "type": "string", + "description": "coverage_start_date" + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "cycle" + }, + "disbursements": { + "type": "number", + "format": "float", + "description": "disbursements" + }, + "exempt_legal_accounting_disbursement": { + "type": "number", + "format": "float", + "description": "exempt_legal_accounting_disbursement" + }, + "exp_prior_years_subject_limits": { + "type": "number", + "format": "float", + "description": "exp_prior_years_subject_limits" + }, + "exp_subject_limits": { + "type": "number", + "format": "float", + "description": "exp_subject_limits" + }, + "fed_candidate_committee_contributions": { + "type": "number", + "format": "float", + "description": "fed_candidate_committee_contributions" + }, + "fed_candidate_contribution_refunds": { + "type": "number", + "format": "float", + "description": "fed_candidate_contribution_refunds" + }, + "fed_disbursements": { + "type": "number", + "format": "float", + "description": "fed_disbursements" + }, + "fed_election_activity": { + "type": "number", + "format": "float", + "description": "fed_election_activity" + }, + "fed_operating_expenditures": { + "type": "number", + "format": "float", + "description": "fed_operating_expenditures" + }, + "fed_receipts": { + "type": "number", + "format": "float", + "description": "fed_receipts" + }, + "federal_funds": { + "type": "number", + "format": "float", + "description": "federal_funds" + }, + "fundraising_disbursements": { + "type": "number", + "format": "float", + "description": "fundraising_disbursements" + }, + "independent_expenditures": { + "type": "number", + "format": "float", + "description": "independent_expenditures" + }, + "individual_contributions": { + "type": "number", + "format": "float", + "description": "individual_contributions" + }, + "individual_itemized_contributions": { + "type": "number", + "format": "float", + "description": "individual_itemized_contributions" + }, + "individual_unitemized_contributions": { + "type": "number", + "format": "float", + "description": "individual_unitemized_contributions" + }, + "itemized_convention_exp": { + "type": "number", + "format": "float", + "description": "itemized_convention_exp" + }, + "itemized_other_disb": { + "type": "number", + "format": "float", + "description": "itemized_other_disb" + }, + "itemized_other_income": { + "type": "number", + "format": "float", + "description": "itemized_other_income" + }, + "itemized_other_refunds": { + "type": "number", + "format": "float", + "description": "itemized_other_refunds" + }, + "itemized_refunds_relating_convention_exp": { + "type": "number", + "format": "float", + "description": "itemized_refunds_relating_convention_exp" + }, + "last_beginning_image_number": { + "type": "string", + "description": "last_beginning_image_number" + }, + "last_cash_on_hand_end_period": { + "type": "number", + "format": "float", + "description": "last_cash_on_hand_end_period" + }, + "last_debts_owed_by_committee": { + "type": "number", + "format": "float", + "description": "last_debts_owed_by_committee" + }, + "last_debts_owed_to_committee": { + "type": "number", + "format": "float", + "description": "last_debts_owed_to_committee" + }, + "last_report_type_full": { + "type": "string", + "description": "last_report_type_full" + }, + "last_report_year": { + "type": "integer", + "format": "int32", + "description": "last_report_year" + }, + "loan_repayments": { + "type": "number", + "format": "float", + "description": "loan_repayments" + }, + "loan_repayments_candidate_loans": { + "type": "number", + "format": "float", + "description": "loan_repayments_candidate_loans" + }, + "loan_repayments_made": { + "type": "number", + "format": "float", + "description": "loan_repayments_made" + }, + "loan_repayments_other_loans": { + "type": "number", + "format": "float", + "description": "loan_repayments_other_loans" + }, + "loan_repayments_received": { + "type": "number", + "format": "float", + "description": "loan_repayments_received" + }, + "loans": { + "type": "number", + "format": "float", + "description": "loans" + }, + "loans_and_loan_repayments_made": { + "type": "number", + "format": "float", + "description": "loans_and_loan_repayments_made" + }, + "loans_and_loan_repayments_received": { + "type": "number", + "format": "float", + "description": "loans_and_loan_repayments_received" + }, + "loans_made": { + "type": "number", + "format": "float", + "description": "loans_made" + }, + "loans_made_by_candidate": { + "type": "number", + "format": "float", + "description": "loans_made_by_candidate" + }, + "loans_received": { + "type": "number", + "format": "float", + "description": "loans_received" + }, + "loans_received_from_candidate": { + "type": "number", + "format": "float", + "description": "loans_received_from_candidate" + }, + "net_contributions": { + "type": "number", + "format": "float", + "description": "net_contributions" + }, + "net_operating_expenditures": { + "type": "number", + "format": "float", + "description": "net_operating_expenditures" + }, + "non_allocated_fed_election_activity": { + "type": "number", + "format": "float", + "description": "non_allocated_fed_election_activity" + }, + "offsets_to_fundraising_expenditures": { + "type": "number", + "format": "float", + "description": "offsets_to_fundraising_expenditures" + }, + "offsets_to_legal_accounting": { + "type": "number", + "format": "float", + "description": "offsets_to_legal_accounting" + }, + "offsets_to_operating_expenditures": { + "type": "number", + "format": "float", + "description": "offsets_to_operating_expenditures" + }, + "operating_expenditures": { + "type": "number", + "format": "float", + "description": "operating_expenditures" + }, + "other_disbursements": { + "type": "number", + "format": "float", + "description": "other_disbursements" + }, + "other_fed_operating_expenditures": { + "type": "number", + "format": "float", + "description": "other_fed_operating_expenditures" + }, + "other_fed_receipts": { + "type": "number", + "format": "float", + "description": "other_fed_receipts" + }, + "other_loans_received": { + "type": "number", + "format": "float", + "description": "other_loans_received" + }, + "other_political_committee_contributions": { + "type": "number", + "format": "float", + "description": "other_political_committee_contributions" + }, + "other_receipts": { + "type": "number", + "format": "float", + "description": "other_receipts" + }, + "other_refunds": { + "type": "number", + "format": "float", + "description": "other_refunds" + }, + "party_full": { + "type": "string", + "description": "party_full" + }, + "pdf_url": { + "type": "string", + "description": "pdf_url" + }, + "political_party_committee_contributions": { + "type": "number", + "format": "float", + "description": "political_party_committee_contributions" + }, + "receipts": { + "type": "number", + "format": "float", + "description": "receipts" + }, + "refunded_individual_contributions": { + "type": "number", + "format": "float", + "description": "refunded_individual_contributions" + }, + "refunded_other_political_committee_contributions": { + "type": "number", + "format": "float", + "description": "refunded_other_political_committee_contributions" + }, + "refunded_political_party_committee_contributions": { + "type": "number", + "format": "float", + "description": "refunded_political_party_committee_contributions" + }, + "refunds_relating_convention_exp": { + "type": "number", + "format": "float", + "description": "refunds_relating_convention_exp" + }, + "repayments_loans_made_by_candidate": { + "type": "number", + "format": "float", + "description": "repayments_loans_made_by_candidate" + }, + "repayments_other_loans": { + "type": "number", + "format": "float", + "description": "repayments_other_loans" + }, + "report_form": { + "type": "string", + "description": "report_form" + }, + "shared_fed_activity": { + "type": "number", + "format": "float", + "description": "shared_fed_activity" + }, + "shared_fed_activity_nonfed": { + "type": "number", + "format": "float", + "description": "shared_fed_activity_nonfed" + }, + "shared_fed_operating_expenditures": { + "type": "number", + "format": "float", + "description": "shared_fed_operating_expenditures" + }, + "shared_nonfed_operating_expenditures": { + "type": "number", + "format": "float", + "description": "shared_nonfed_operating_expenditures" + }, + "total_exp_subject_limits": { + "type": "number", + "format": "float", + "description": "total_exp_subject_limits" + }, + "total_independent_contributions": { + "type": "number", + "format": "float", + "description": "total_independent_contributions" + }, + "total_independent_expenditures": { + "type": "number", + "format": "float", + "description": "total_independent_expenditures" + }, + "total_offsets_to_operating_expenditures": { + "type": "number", + "format": "float", + "description": "total_offsets_to_operating_expenditures" + }, + "total_transfers": { + "type": "number", + "format": "float", + "description": "total_transfers" + }, + "transaction_coverage_date": { + "type": "string", + "description": "transaction_coverage_date" + }, + "transfers_from_affiliated_committee": { + "type": "number", + "format": "float", + "description": "transfers_from_affiliated_committee" + }, + "transfers_from_affiliated_party": { + "type": "number", + "format": "float", + "description": "transfers_from_affiliated_party" + }, + "transfers_from_nonfed_account": { + "type": "number", + "format": "float", + "description": "transfers_from_nonfed_account" + }, + "transfers_from_nonfed_levin": { + "type": "number", + "format": "float", + "description": "transfers_from_nonfed_levin" + }, + "transfers_from_other_authorized_committee": { + "type": "number", + "format": "float", + "description": "transfers_from_other_authorized_committee" + }, + "transfers_to_affiliated_committee": { + "type": "number", + "format": "float", + "description": "transfers_to_affiliated_committee" + }, + "transfers_to_other_authorized_committee": { + "type": "number", + "format": "float", + "description": "transfers_to_other_authorized_committee" + }, + "unitemized_convention_exp": { + "type": "number", + "format": "float", + "description": "unitemized_convention_exp" + }, + "unitemized_other_disb": { + "type": "number", + "format": "float", + "description": "unitemized_other_disb" + }, + "unitemized_other_income": { + "type": "number", + "format": "float", + "description": "unitemized_other_income" + }, + "unitemized_other_refunds": { + "type": "number", + "format": "float", + "description": "unitemized_other_refunds" + }, + "unitemized_refunds_relating_convention_exp": { + "type": "number", + "format": "float", + "description": "unitemized_refunds_relating_convention_exp" + } + } + }, + "AuditCaseResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "description": "Array of audit case results", + "items": { + "type": "object", + "properties": { + "audit_case_id": { + "type": "string", + "description": "Unique FEC audit case ID e.g., 12-34" + }, + "audit_id": { + "type": "integer", + "format": "int32", + "description": "Internal audit identifier" + }, + "candidate_id": { + "type": "string", + "description": "FEC candidate ID" + }, + "candidate_name": { + "type": "string", + "description": "Name of the candidate involved in the audit" + }, + "committee_description": { + "type": "string", + "description": "Description of the committee being audited" + }, + "committee_designation": { + "type": "string", + "description": "Designation of the committee e.g., Principal, Authorized" + }, + "committee_id": { + "type": "string", + "description": "Committee ID e.g., C00431445" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "committee_type": { + "type": "string", + "description": "Type of the committee (P, H, S, etc." + }, + "cycle": { + "type": "integer", + "format": "int32", + "description": "Two-year election cycle" + }, + "far_release_date": { + "type": "string", + "description": "Date the Final Audit Report was released" + }, + "link_to_report": { + "type": "string", + "description": "URL to the Final Audit Report PDF" + }, + "primary_category_list": { + "type": "array", + "description": "Primary categories of audit issues", + "items": { + "type": "object", + "properties": { + "primary_category_id": { + "type": "string", + "description": "ID of the primary category" + }, + "primary_category_name": { + "type": "string", + "description": "Name of the primary category" + }, + "sub_category_list": { + "type": "array", + "description": "List of sub-categories under the primary category", + "items": { + "type": "object", + "properties": { + "sub_category_id": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "ID value for the sub-category" + } + }, + "description": "Sub-category ID" + }, + "sub_category_name": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Name value for the sub-category" + } + }, + "description": "Sub-category name" + } + } + } + } + } + } + } + } + } + } + } + }, + "AuditCategoryResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "per_page" + } + }, + "description": "pagination" + }, + "results": { + "type": "array", + "description": "results", + "items": { + "type": "object", + "properties": { + "primary_category_id": { + "type": "string", + "description": "primary_category_id" + }, + "primary_category_name": { + "type": "string", + "description": "primary_category_name" + }, + "sub_category_list": { + "type": "array", + "description": "sub_category_list", + "items": { + "type": "object", + "properties": { + "sub_category_id": { + "type": "string", + "description": "sub_category_id" + }, + "sub_category_name": { + "type": "string", + "description": "sub_category_name" + } + } + } + } + } + } + } + } + }, + "StateElectionOfficeResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + }, + "description": "Pagination metadata" + }, + "results": { + "type": "array", + "description": "List of state election office records", + "items": { + "$ref": "#/definitions/StateElectionOfficeRecord" + } + } + } + }, + "StateElectionOfficeRecord": { + "type": "object", + "properties": { + "office_type": { + "type": "string", + "description": "Type of office e.g., State, Local" + }, + "state": { + "type": "string", + "description": "2-letter state abbreviation" + }, + "address_line1": { + "type": "string", + "description": "Primary street address" + }, + "address_line2": { + "type": "string", + "description": "Secondary address line (if applicable" + }, + "city": { + "type": "string", + "description": "City name" + }, + "email": { + "type": "string", + "description": "Contact email" + }, + "fax_number": { + "type": "string", + "description": "Fax number" + }, + "mailing_address1": { + "type": "string", + "description": "Mailing address line 1" + }, + "mailing_address2": { + "type": "string", + "description": "Mailing address line 2" + }, + "mailing_city": { + "type": "string", + "description": "Mailing city" + }, + "mailing_state": { + "type": "string", + "description": "Mailing state abbreviation" + }, + "mailing_zipcode": { + "type": "string", + "description": "Mailing zip code" + }, + "office_name": { + "type": "string", + "description": "Name of the office" + }, + "primary_phone_number": { + "type": "string", + "description": "Primary contact number" + }, + "secondary_phone_number": { + "type": "string", + "description": "Secondary contact number" + }, + "state_full_name": { + "type": "string", + "description": "Full name of the state" + }, + "website_url1": { + "type": "string", + "description": "Official website URL" + }, + "website_url2": { + "type": "string", + "description": "Secondary website URL" + }, + "zip_code": { + "type": "string", + "description": "Physical zip code" + } + } + }, + "ReportingDatesResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of audit reporting dates", + "items": { + "$ref": "#/definitions/ReportingDateRecord" + } + } + } + }, + "ReportingDateRecord": { + "type": "object", + "properties": { + "create_date": { + "type": "string", + "description": "Date the record was created YYYY-MM-DD" + }, + "due_date": { + "type": "string", + "description": "Date the report is due YYYY-MM-DD" + }, + "report_type": { + "type": "string", + "description": "Report type abbreviation e.g., Q1, Q2, YEAR" + }, + "report_type_full": { + "type": "string", + "description": "Full name of the report type" + }, + "report_year": { + "type": "integer", + "format": "int32", + "description": "Year of the report" + }, + "update_date": { + "type": "string", + "description": "Last update date for this record YYYY-MM-DD" + } + } + }, + "RADAnalystResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination information", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of analyst assignments", + "items": { + "$ref": "#/definitions/RADAnalystRecord" + } + } + } + }, + "RADAnalystRecord": { + "type": "object", + "properties": { + "committee_id": { + "type": "string", + "description": "FEC committee ID" + }, + "analyst_id": { + "type": "number", + "format": "float", + "description": "Unique analyst identifier" + }, + "analyst_short_id": { + "type": "number", + "format": "float", + "description": "Abbreviated analyst ID" + }, + "assignment_update_date": { + "type": "string", + "description": "Last update to assignment YYYY-MM-DD" + }, + "committee_name": { + "type": "string", + "description": "Name of the committee" + }, + "email": { + "type": "string", + "description": "Analyst email address" + }, + "first_name": { + "type": "string", + "description": "First name of the analyst" + }, + "last_name": { + "type": "string", + "description": "Last name of the analyst" + }, + "rad_branch": { + "type": "string", + "description": "RAD branch name" + }, + "telephone_ext": { + "type": "number", + "format": "float", + "description": "Analyst's telephone extension" + }, + "title": { + "type": "string", + "description": "Job title e.g., Financial Analyst" + } + } + }, + "FilingResults": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Filing" + } + } + } + }, + "Filing": { + "type": "object", + "properties": { + "amendment_chain": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "amendment_indicator": { "type": "string" }, + "amendment_version": { + "type": "integer", + "format": "int32" + }, + "beginning_image_number": { "type": "string" }, + "candidate_id": { "type": "string" }, + "candidate_name": { "type": "string" }, + "cash_on_hand_beginning_period": { + "type": "number", + "format": "float" + }, + "cash_on_hand_end_period": { + "type": "number", + "format": "float" + }, + "committee_id": { "type": "string" }, + "committee_name": { "type": "string" }, + "committee_type": { "type": "string" }, + "coverage_end_date": { "type": "string" }, + "coverage_start_date": { "type": "string" }, + "csv_url": { "type": "string" }, + "cycle": { + "type": "integer", + "format": "int32" + }, + "debts_owed_by_committee": { + "type": "number", + "format": "float" + }, + "debts_owed_to_committee": { + "type": "number", + "format": "float" + }, + "document_description": { "type": "string" }, + "document_type": { "type": "string" }, + "document_type_full": { "type": "string" }, + "election_year": { + "type": "integer", + "format": "int32" + }, + "ending_image_number": { "type": "string" }, + "fec_file_id": { "type": "string" }, + "fec_url": { "type": "string" }, + "file_number": { + "type": "integer", + "format": "int32" + }, + "form_category": { "type": "string" }, + "form_type": { "type": "string" }, + "house_personal_funds": { + "type": "number", + "format": "float" + }, + "html_url": { "type": "string" }, + "is_amended": { "type": "boolean" }, + "means_filed": { "type": "string" }, + "most_recent": { "type": "boolean" }, + "most_recent_file_number": { + "type": "integer", + "format": "int32" + }, + "net_donations": { + "type": "number", + "format": "float" + }, + "office": { "type": "string" }, + "opposition_personal_funds": { + "type": "number", + "format": "float" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "party": { "type": "string" }, + "pdf_url": { "type": "string" }, + "previous_file_number": { + "type": "integer", + "format": "int32" + }, + "primary_general_indicator": { "type": "string" }, + "receipt_date": { "type": "string" }, + "report_type": { "type": "string" }, + "report_type_full": { "type": "string" }, + "report_year": { + "type": "integer", + "format": "int32" + }, + "request_type": { "type": "string" }, + "senate_personal_funds": { + "type": "number", + "format": "float" + }, + "state": { "type": "string" }, + "sub_id": { "type": "string" }, + "total_communication_cost": { + "type": "number", + "format": "float" + }, + "total_disbursements": { + "type": "number", + "format": "float" + }, + "total_independent_expenditures": { + "type": "number", + "format": "float" + }, + "total_individual_contributions": { + "type": "number", + "format": "float" + }, + "total_receipts": { + "type": "number", + "format": "float" + }, + "treasurer_name": { "type": "string" }, + "update_date": { "type": "string" } + } + }, + + "EfileFilingResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination details", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total record count" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Records per page" + } + } + }, + "results": { + "type": "array", + "description": "List of electronic filing records", + "items": { + "$ref": "#/definitions/EfileFilingRecord" + } + } + } + }, + "EfileFilingRecord": { + "type": "object", + "properties": { + "amended_by": { + "type": "integer", + "format": "int32", + "description": "Filing number that amends this filing" + }, + "amendment_chain": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "All amendments related to the original filing" + }, + "amendment_number": { + "type": "integer", + "format": "int32", + "description": "Sequential number of the amendment" + }, + "amends_file": { + "type": "integer", + "format": "int32", + "description": "File number that was amended" + }, + "beginning_image_number": { + "type": "string", + "description": "Starting image number" + }, + "committee_id": { + "type": "string", + "description": "FEC committee ID" + }, + "committee_name": { + "type": "string", + "description": "Committee name" + }, + "coverage_end_date": { + "type": "string", + "description": "Coverage period end date" + }, + "coverage_start_date": { + "type": "string", + "description": "Coverage period start date" + }, + "csv_url": { + "type": "string", + "description": "URL to CSV version of filing" + }, + "document_description": { + "type": "string", + "description": "Description of the document" + }, + "ending_image_number": { + "type": "string", + "description": "Ending image number" + }, + "fec_file_id": { + "type": "string", + "description": "Internal FEC file ID" + }, + "fec_url": { + "type": "string", + "description": "URL to FEC record" + }, + "file_number": { + "type": "integer", + "format": "int32", + "description": "Filing number" + }, + "filed_date": { + "type": "string", + "description": "Date filing was submitted" + }, + "form_type": { + "type": "string", + "description": "Type of FEC form e.g., F3, F3X" + }, + "html_url": { + "type": "string", + "description": "URL to HTML version of filing" + }, + "is_amended": { + "type": "boolean", + "description": "Whether the filing is an amendment" + }, + "load_timestamp": { + "type": "string", + "description": "Time the filing was loaded into the system" + }, + "most_recent": { + "type": "boolean", + "description": "Whether this is the most recent filing" + }, + "most_recent_filing": { + "type": "integer", + "format": "int32", + "description": "Filing number of the most recent amendment" + }, + "pdf_url": { + "type": "string", + "description": "URL to PDF version of the filing" + }, + "receipt_date": { + "type": "string", + "description": "Date the FEC received the filing" + } + } + }, + "ElectionDatesResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + } + }, + "results": { + "type": "array", + "description": "List of election date records", + "items": { + "$ref": "#/definitions/ElectionDateRecord" + } + } + } + }, + "ElectionDateRecord": { + "type": "object", + "properties": { + "active_election": { + "type": "boolean", + "description": "Whether the election is currently active" + }, + "create_date": { + "type": "string", + "description": "Date record was created" + }, + "election_date": { + "type": "string", + "description": "Date of the election" + }, + "election_district": { + "type": "integer", + "format": "int32", + "description": "Congressional district number" + }, + "election_notes": { + "type": "string", + "description": "Additional notes about the election" + }, + "election_party": { + "type": "string", + "description": "Political party abbreviation" + }, + "election_state": { + "type": "string", + "description": "Two-letter state abbreviation" + }, + "election_type_full": { + "type": "string", + "description": "Full description of the election type" + }, + "election_type_id": { + "type": "string", + "description": "Election type ID e.g., P, G, R" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Year of the election" + }, + "office_sought": { + "type": "string", + "description": "Office being sought (H, S, P" + }, + "primary_general_date": { + "type": "string", + "description": "Date of the primary or general election" + }, + "update_date": { + "type": "string", + "description": "Date the record was last updated" + } + } + }, + "CommunicationCostsResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination information", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "last_indexes": { + "type": "string" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "description": "List of communication cost transactions", + "items": { + "$ref": "#/definitions/CommunicationCostRecord" + } + } + } + }, + "CommunicationCostRecord": { + "type": "object", + "properties": { + "action_code": { + "type": "string" + }, + "action_code_full": { + "type": "string" + }, + "candidate_first_name": { + "type": "string" + }, + "candidate_id": { + "type": "string" + }, + "candidate_last_name": { + "type": "string" + }, + "candidate_middle_name": { + "type": "string" + }, + "candidate_name": { + "type": "string" + }, + "candidate_office": { + "type": "string" + }, + "candidate_office_district": { + "type": "string" + }, + "candidate_office_full": { + "type": "string" + }, + "candidate_office_state": { + "type": "string" + }, + "committee_id": { + "type": "string" + }, + "committee_name": { + "type": "string" + }, + "communication_class": { + "type": "string" + }, + "communication_type": { + "type": "string" + }, + "communication_type_full": { + "type": "string" + }, + "cycle": { + "type": "integer", + "format": "int32" + }, + "file_number": { + "type": "integer", + "format": "int32" + }, + "form_type_code": { + "type": "string" + }, + "image_number": { + "type": "string" + }, + "original_sub_id": { + "type": "integer", + "format": "int32" + }, + "pdf_url": { + "type": "string" + }, + "primary_general_indicator": { + "type": "string" + }, + "primary_general_indicator_description": { + "type": "string" + }, + "purpose": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer", + "format": "int32" + }, + "schedule_type": { + "type": "string" + }, + "schedule_type_full": { + "type": "string" + }, + "state_full": { + "type": "string" + }, + "sub_id": { + "type": "integer", + "format": "int32" + }, + "support_oppose_indicator": { + "type": "string" + }, + "tran_id": { + "type": "string" + }, + "transaction_amount": { + "type": "number", + "format": "float" + }, + "transaction_date": { + "type": "string" + }, + "transaction_type": { + "type": "string" + } + } + }, + "CommitteeSearchResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination info", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "description": "List of committees", + "items": { + "$ref": "#/definitions/CommitteeRecord" + } + } + } + }, + "CommitteeRecord": { + "type": "object", + "properties": { + "committee_id": { + "type": "string" + }, + "affiliated_committee_name": { + "type": "string" + }, + "candidate_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "committee_type": { + "type": "string" + }, + "committee_type_full": { + "type": "string" + }, + "cycles": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "designation": { + "type": "string" + }, + "designation_full": { + "type": "string" + }, + "filing_frequency": { + "type": "string" + }, + "first_file_date": { + "type": "string" + }, + "last_f1_date": { + "type": "string" + }, + "last_file_date": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_type": { + "type": "string" + }, + "organization_type_full": { + "type": "string" + }, + "party": { + "type": "string" + }, + "party_full": { + "type": "string" + }, + "state": { + "type": "string" + }, + "treasurer_name": { + "type": "string" + } + } + }, + "ScheduleAByOccupationResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated contribution results by occupation", + "items": { + "$ref": "#/definitions/ScheduleAByOccupationResult" + } + } + } + }, + "ScheduleAByEmployerResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "description": "Pagination metadata", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total pages available" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "description": "Aggregated contribution results by employer", + "items": { + "$ref": "#/definitions/ScheduleAByEmployerResult" + } + } + } + }, + "ScheduleAResponseSingle": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "page": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "pages": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "per_page": { + "type": "integer", + "format": "int32", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sub_id": { + "type": "string", + "example": "4082023031553958000", + "description": "Unique identifier for the transaction" + }, + "committee_id": { + "type": "string", + "example": "C00703975", + "description": "FEC ID of the receiving committee" + }, + "contributor_name": { + "type": "string", + "example": "SMITH, JOHN", + "description": "Name of the contributor" + }, + "contributor_city": { + "type": "string", + "example": "NEW YORK" + }, + "contributor_state": { + "type": "string", + "example": "NY" + }, + "contributor_zip": { + "type": "string", + "example": "10001" + }, + "contributor_employer": { + "type": "string", + "example": "SELF" + }, + "contributor_occupation": { + "type": "string", + "example": "ENGINEER" + }, + "contribution_receipt_date": { + "type": "string", + "format": "date", + "example": "2023-03-01" + }, + "contribution_receipt_amount": { + "type": "number", + "format": "float", + "example": 500 + }, + "is_individual": { + "type": "boolean", + "example": true + }, + "memo_text": { + "type": "string", + "example": "Contribution earmarked through ActBlue" + }, + "line_number": { + "type": "string", + "example": "11AI" + }, + "image_number": { + "type": "string", + "example": "202303019599145123" + }, + "schedule_type": { + "type": "string", + "example": "SA" + }, + "schedule_type_full": { + "type": "string", + "example": "Itemized individual contributions" + }, + "report_type": { + "type": "string", + "example": "Q1" + }, + "report_year": { + "type": "integer", + "example": 2023 + } + } + } + } + } + }, + "ScheduleAByZipResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of records returned" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page number" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Number of results per page" + } + }, + "description": "Pagination metadata for navigating the results" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ScheduleAByZipResult" + }, + "description": "List of aggregated contributions by ZIP code" + } + } + }, + "PresidentialContributionsByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of results" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Current page" + }, + "pages": { + "type": "integer", + "format": "int32", + "description": "Total number of pages" + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "Results per page" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "candidate_id": { + "type": "string", + "description": "FEC ID of the presidential candidate" + }, + "candidate_last_name": { + "type": "string", + "description": "Last name of the candidate" + }, + "candidate_party_affiliation": { + "type": "string", + "description": "Candidate’s party affiliation" + }, + "contributor_state": { + "type": "string", + "description": "State of the contributor" + }, + "election_year": { + "type": "integer", + "format": "int32", + "description": "Presidential election year" + }, + "net_receipts": { + "type": "number", + "format": "float", + "description": "Net receipts total" + }, + "rounded_net_receipts": { + "type": "number", + "format": "float", + "description": "Rounded net receipts total" + } + } + } + } + } + }, + "CommunicationCostByCandidateResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "page": { + "type": "integer", + "example": 1 + }, + "pages": { + "type": "integer", + "example": 1 + }, + "per_page": { + "type": "integer", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "support_oppose_indicator": { + "type": "string", + "example": "O" + }, + "candidate": { + "type": "string", + "example": "John Doe" + }, + "candidate_id": { + "type": "string", + "example": "H4GA05270" + }, + "candidate_name": { + "type": "string", + "example": "John Doe" + }, + "committee": { + "type": "string", + "example": "Americans for Freedom" + }, + "committee_id": { + "type": "string", + "example": "C00123456" + }, + "committee_name": { + "type": "string", + "example": "Americans for Freedom" + }, + "count": { + "type": "integer", + "example": 5 + }, + "cycle": { + "type": "integer", + "example": 2024 + }, + "total": { + "type": "number", + "format": "float", + "example": 350000 + } + } + } + } + } + }, + "ScheduleASubIdResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "page": { + "type": "integer", + "example": 1 + }, + "pages": { + "type": "integer", + "example": 1 + }, + "per_page": { + "type": "integer", + "example": 20 + } + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ScheduleATransaction" + } + } + } + }, + "OperationsLogResponse": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "per_page": { + "type": "integer", + "format": "int32" + } + } + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amendment_indicator": { + "type": "string" + }, + "beginning_image_number": { + "type": "string" + }, + "candidate_committee_id": { + "type": "string" + }, + "coverage_end_date": { + "type": "string" + }, + "coverage_start_date": { + "type": "string" + }, + "ending_image_number": { + "type": "string" + }, + "form_type": { + "type": "string" + }, + "receipt_date": { + "type": "string" + }, + "report_type": { + "type": "string" + }, + "report_year": { + "type": "integer", + "format": "int32" + }, + "status_num": { + "type": "integer", + "format": "int32" + }, + "sub_id": { + "type": "integer", + "format": "int32" + }, + "summary_data_complete_date": { + "type": "string" + }, + "summary_data_verification_date": { + "type": "string" + }, + "transaction_data_complete_date": { + "type": "string" + } + } + } + } + } + } + }, + + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "api_key": { + "type": "apiKey", + "in": "query", + "name": "api_key" + } + }, + "security": [ + { + "api_key": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/independent-publisher-connectors/US Federal Election Commission/apiProperties.json b/independent-publisher-connectors/US Federal Election Commission/apiProperties.json new file mode 100644 index 0000000000..9a0d9924c0 --- /dev/null +++ b/independent-publisher-connectors/US Federal Election Commission/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "Enter your FEC API key.", + "tooltip": "The API key used to authenticate with the FEC API", + "constraints": { + "tabIndex": 1, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Dan Romano", + "stackOwner": "Federal Election Commission" + } +} \ No newline at end of file