---
title: "GET /v1/candidates/"
method: GET
path: "/v1/candidates/"
tags: ["candidate"]
---

# GET /v1/candidates/

`GET /v1/candidates/`

## Request

- Base URL: `https://api.open.fec.gov` (the document declares no server; this is the origin it was published from)
- URL: `https://api.open.fec.gov/v1/candidates/`
- Auth: API key in header `X-Api-Key` and API key in query parameter `api_key` and API key in query parameter `api_key`
- TypeScript: <https://skmtc.dev/fec/apis/openfec/docs/v1/candidates/get.ts> (a function with typed inputs; its response is checked against the schema)

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. That ID is particular to the candidate for a
particular office sought. If a candidate runs for the same office multiple times, the ID
stays the same. If the same person runs for another office — for example, a House
candidate runs for a Senate office — that candidate will get a unique ID for each office.

## Query parameters

- `page` integer
- `per_page` integer
- `q` string[]
- `candidate_id` string[]
- `min_first_file_date` string
- `max_first_file_date` string
- `is_active_candidate` boolean
- `cycle` integer[]
- `election_year` integer[]
- `office` string[]
- `state` string[]
- `party` string[]
- `year` string
- `district` string[]
- `candidate_status` string[]
- `incumbent_challenge` string[]
- `federal_funds_flag` boolean
- `has_raised_funds` boolean
- `name` string[]
- `sort` string
- `sort_hide_null` boolean
- `sort_null_only` boolean
- `sort_nulls_last` boolean
- `api_key` string

## Response `default`

Default response

- CandidatePage
  - `pagination` OffsetInfo
    - `count` integer
    - `is_count_exact` boolean
    - `page` integer
    - `pages` integer
    - `per_page` integer
  - `results` Candidate[]
    - `active_through` integer, nullable: Last year a candidate was active. This field is specific to the candidate_id so if the same person runs for another office, there may be a different record for them.
    - `candidate_id` string, nullable: A unique identifier assigned to each candidate registered with the FEC. If a person runs for several offices, that person will have separate candidate IDs for each office. First character indicates office - [P]residential, [H]ouse, [S]enate]. Second character is the last digit of the two-year period the ID was created. Third and fourth is the candidate state. Presidential IDs don't have state. Fifth and sixth is the district when the candidate first ran. This does not change if the candidate/member's district changes during re-districting. Presidential IDs don't have districts. The rest is sequence.
    - `candidate_inactive` boolean, nullable: Candidates who are actively seeking office. If no value is specified, all candidates are returned. When True is specified, only active candidates are returned. When False is specified, only inactive candidates are returned.
    - `candidate_status` string, nullable: One-letter code explaining if the candidate is: - C present candidate - F future candidate - N not yet a candidate - P prior candidate
    - `cycles` integer[], nullable: Two-year election cycle in which a candidate runs for office. Calculated from Form 2. The cycle begins with an odd year and is named for its ending, even year. This cycle follows the traditional house election cycle and subdivides the presidential and Senate elections into comparable two-year blocks. To retrieve data for the entire four years of a presidential term or six years of a senatorial term, you will need the `election_full` flag.
    - `district` string, nullable: Two-digit US House distirict of the office the candidate is running for. Presidential, Senate and House at-large candidates will have District 00.
    - `district_number` integer, nullable: Two-digit US House distirict of the office the candidate is running for. Presidential, Senate and House at-large candidates will have District 00.
    - `election_districts` string[], nullable: Two-digit US House distirict of the office the candidate is running for. Presidential, Senate and House at-large candidates will have District 00.
    - `election_years` integer[], nullable: Years in which a candidate ran for office.
    - `federal_funds_flag` boolean
    - `first_file_date` string, date, nullable: The day the FEC received the candidate's first filing. This is a F2 candidate registration.
    - `has_raised_funds` boolean
    - `inactive_election_years` integer[], nullable: inactive years
    - `incumbent_challenge` string, nullable: One-letter code ('I', 'C', 'O') explaining if the candidate is an incumbent, a challenger, or if the seat is open.
    - `incumbent_challenge_full` string, nullable: Explains if the candidate is an incumbent, a challenger, or if the seat is open.
    - `last_f2_date` string, date, nullable: The day the FEC received the candidate's most recent Form 2
    - `last_file_date` string, date, nullable: The day the FEC received the candidate's most recent filing
    - `load_date` string, date-time, nullable: Date the information was loaded into the FEC systems. This can be affected by reseting systems and other factors, refer to receipt_date for the day that the FEC received the paper or electronic document. Keep in mind that paper filings take more time to process and there can be a lag between load_date and receipt_date. This field can be helpful to identify paper records that have been processed recently.
    - `name` string, nullable: Name of candidate running for office
    - `office` string, nullable: Federal office candidate runs for: H, S or P
    - `office_full` string, nullable: Federal office candidate runs for: House, Senate or presidential
    - `party` string, nullable: Three-letter code for the party affiliated with a candidate or committee. For example, DEM for Democratic Party and REP for Republican Party.
    - `party_full` string, nullable: Party affiliated with a candidate or committee
    - `state` string, nullable: US state or territory where a candidate runs for office

---

[API](https://skmtc.dev/fec/apis/openfec.md) - [All operations](https://skmtc.dev/fec/apis/openfec/llms.txt) - [OpenAPI document](https://skmtc.dev/fec/apis/openfec/revisions/d2eb3171e225?raw)
