Skip to content

OpenFEC API

by fec.gov

API keyHTTPSOpen Data
Open documentation ↗

Overview

This application programming interface (API) allows you to explore the way candidates and committees fund their campaigns. The Federal Election Commission (FEC) API is a RESTful web service supporting full-text and field-specific searches on FEC data. [Bulk downloads](https://www.fec.gov/data/advanced/?tab=bulk-data) are available on the current site. Information is tied to the underlying forms by file ID and image ID. Data is updated nightly. There are a lot of data, and a good place to start is to use search to find interesting candidates and committees. Then, you can use their IDs to find report or line item details with the other endpoints. If you are interested in individual donors, check out contributor information in the `/schedule_a/` endpoints. <b class="body" id="getting_started_head">Getting started with the openFEC API</b><br> If you would like to use the FEC's API programmatically, you can sign up for your own API key using our form. Alternatively, you can still try out our API without an API key by using the web interface and using DEMO_KEY. Note that when you use the openFEC API you are subject to the [Terms of Service](https://github.com/fecgov/FEC/blob/master/TERMS-OF-SERVICE.md) and [Acceptable Use policy](https://github.com/fecgov/FEC/blob/master/ACCEPTABLE-USE-POLICY.md). Signing up for an API key will enable you to place up to 1,000 calls an hour. Each call is limited to 100 results per page. You can email questions, comments or a request to get a key for 7,200 calls an hour (120 calls per minute) to <a href="mailto:[email protected]">[email protected]</a>. You can also ask questions and discuss the data in a community led [group](https://groups.google.com/forum/#!forum/fec-data). The model definitions and schema are available at [/swagger](/swagger/). This is useful for making wrappers and exploring the data. A few restrictions limit the way you can use FEC data. For example, you can’t use contributor lists for commercial purposes or to solicit donations. [Learn more here](https://www.fec.gov/updates/sale-or-use-contributor-information/). [Inspect our source code](https://github.com/fecgov/openFEC). We welcome issues and pull requests! <p><br></p> <h2 class="title" id="signup_head">Sign up for an API key</h2> <div id="apidatagov_signup">Loading signup form...</div>

OpenFEC is an open data API from fec.gov. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 91 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
Open Data
Version
1.0
Endpoints
91
Spec updated
2023-03-06

Endpoints

MethodPathWhat it does
GET/audit-case/—
GET/audit-category/—
GET/audit-primary-category/—
GET/calendar-dates/—
GET/calendar-dates/export/—
GET/candidate/{candidate_id}/—
GET/candidate/{candidate_id}/committees/—
GET/candidate/{candidate_id}/committees/history/—
GET/candidate/{candidate_id}/committees/history/{cycle}/—
GET/candidate/{candidate_id}/filings/—
GET/candidate/{candidate_id}/history/—
GET/candidate/{candidate_id}/history/{cycle}/—
GET/candidate/{candidate_id}/totals/—
GET/candidates/—
GET/candidates/search/—
GET/candidates/totals/—
GET/candidates/totals/aggregates/Candidate total receipts and disbursements aggregated by `aggregate_by`.
GET/candidates/totals/by_office/Aggregated candidate receipts and disbursements grouped by office by cycle.
GET/candidates/totals/by_office/by_party/Aggregated candidate receipts and disbursements grouped by office by party by cycle.
GET/committee/{committee_id}/—
GET/committee/{committee_id}/candidates/—
GET/committee/{committee_id}/candidates/history/—
GET/committee/{committee_id}/candidates/history/{cycle}/—
GET/committee/{committee_id}/filings/—
GET/committee/{committee_id}/history/—
GET/committee/{committee_id}/history/{cycle}/—
GET/committee/{committee_id}/reports/—
GET/committee/{committee_id}/totals/—
GET/committees/—
GET/communication_costs/—
GET/communication_costs/aggregates/Communication cost aggregated by candidate ID and committee ID.
GET/communication_costs/by_candidate/Communication cost aggregated by candidate ID and committee ID.
GET/communication_costs/totals/by_candidate/—
GET/efile/filings/Basic information about electronic files coming into the FEC, posted as they are received.
GET/efile/reports/house-senate/—
GET/efile/reports/pac-party/—
GET/efile/reports/presidential/—
GET/election-dates/—
GET/electioneering/—
GET/electioneering/aggregates/Electioneering communications costs aggregates
GET/electioneering/by_candidate/Electioneering costs aggregated by candidate
GET/electioneering/totals/by_candidate/—
GET/elections/—
GET/elections/search/—
GET/elections/summary/—
GET/filings/—
GET/legal/search/—
GET/names/audit_candidates/—
GET/names/audit_committees/—
GET/names/candidates/—
GET/names/committees/—
GET/operations-log/—
GET/presidential/contributions/by_candidate/—
GET/presidential/contributions/by_size/—
GET/presidential/contributions/by_state/—
GET/presidential/coverage_end_date/—
GET/presidential/financial_summary/—
GET/rad-analyst/—
GET/reporting-dates/—
GET/reports/{entity_type}/—
GET/schedules/schedule_a/—
GET/schedules/schedule_a/by_employer/—
GET/schedules/schedule_a/by_occupation/—
GET/schedules/schedule_a/by_size/—
GET/schedules/schedule_a/by_size/by_candidate/—
GET/schedules/schedule_a/by_state/—
GET/schedules/schedule_a/by_state/by_candidate/—
GET/schedules/schedule_a/by_state/by_candidate/totals/—
GET/schedules/schedule_a/by_state/totals/—
GET/schedules/schedule_a/by_zip/—
GET/schedules/schedule_a/efile/—
GET/schedules/schedule_a/{sub_id}/—
GET/schedules/schedule_b/—
GET/schedules/schedule_b/by_purpose/—
GET/schedules/schedule_b/by_recipient/—
GET/schedules/schedule_b/by_recipient_id/—
GET/schedules/schedule_b/efile/—
GET/schedules/schedule_b/{sub_id}/—
GET/schedules/schedule_c/—
GET/schedules/schedule_c/{sub_id}/—
GET/schedules/schedule_d/—
GET/schedules/schedule_d/{sub_id}/—
GET/schedules/schedule_e/—
GET/schedules/schedule_e/by_candidate/—
GET/schedules/schedule_e/efile/—
GET/schedules/schedule_e/totals/by_candidate/—
GET/schedules/schedule_f/—
GET/schedules/schedule_f/{sub_id}/—
GET/state-election-office/—
GET/totals/by_entity/—
GET/totals/{entity_type}/—

Questions

Does the OpenFEC API need an API key?

Yes. The OpenFEC API uses API key authentication; the documentation explains how to get credentials.

Does the OpenFEC API support HTTPS?

Yes, the OpenFEC API is served over HTTPS.

How many endpoints does the OpenFEC API have?

Its OpenAPI description lists 91 endpoints in version 1.0. All of them are shown on this page.

What are alternatives to the OpenFEC API?

Other Open Data APIs include Search Services, Wayback API, Wikipedia, Nasdaq Data Link, University of Oslo.

Compare alternatives →

Listed from APIs.guru (CC0).