# FEC API: Search federal candidates

> Lists federal candidates for an office and election year from FEC data, ranked by total money raised. Senate and House searches require a state; a House search can be narrowed to one district.

Unofficial. Not affiliated with or endorsed by FEC.

- Page: https://fous.com/methods/fec.gov/search-candidates
- Method: `fec.gov/search_candidates`, version 1
- Website: fec.gov
- Returns: candidate name, party, state, district, incumbency, status, total raised, cash on hand, coverage end date, FEC URL
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `state` | string | no | `"Texas"` | State or territory name or two-letter code, for example Texas or TX. Required for Senate and House. |
| `office` | string | yes | `"senate"` | Federal office to search, for example house. One of "president", "senate", "house". |
| `district` | integer | no |  | House district number, for example 12. Use 0 for an at-large district. |
| `max_results` | integer | no | `5` | Maximum candidates to return, for example 50. Default 50. |
| `election_year` | integer | yes | `2026` | Election year, for example 2026. |
| `raised_money_only` | string | no |  | Use yes to include only candidates who have raised money; use no for all candidates. For example yes. One of "yes", "no". Default "yes". |

## Output

From a run on Oct 31, 2026, shortened. Its input:

```json
{
  "state": "Texas",
  "office": "senate",
  "max_results": 5,
  "election_year": 2026
}
```

Its output:

```json
{
  "candidates": [
    {
      "party": "DEMOCRATIC PARTY",
      "state": "Texas",
      "district": null,
      "incumbency": "Challenger",
      "candidate_id": "S6TX00479",
      "candidate_url": "https://www.fec.gov/data/candidate/S6TX00479/?cycle=2026",
      "candidate_name": "TALARICO, JAMES",
      "candidate_status": "Present candidate",
      "cash_on_hand_usd": 21548155.08,
      "total_raised_usd": 68560930.42,
      "coverage_end_date": "2026-06-30"
    },
    {
      "party": "REPUBLICAN PARTY",
      "state": "Texas",
      "district": null,
      "incumbency": "Incumbent",
      "candidate_id": "S2TX00106",
      "candidate_url": "https://www.fec.gov/data/candidate/S2TX00106/?cycle=2026",
      "candidate_name": "CORNYN, JOHN SEN",
      "candidate_status": "Present candidate",
      "cash_on_hand_usd": 542119.97,
      "total_raised_usd": 14261513.59,
      "coverage_end_date": "2026-06-30"
    },
    {
      "party": "DEMOCRATIC PARTY",
      "state": "Texas",
      "district": null,
      "incumbency": "Challenger",
      "candidate_id": "S6TX00552",
      "candidate_url": "https://www.fec.gov/data/candidate/S6TX00552/?cycle=2026",
      "candidate_name": "CROCKETT, JASMINE",
      "candidate_status": "Present candidate",
      "cash_on_hand_usd": 0,
      "total_raised_usd": 11096965.96,
      "coverage_end_date": "2026-08-13"
    }
  ]
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"fec.gov/search_candidates","input":{"state":"Texas","office":"senate","max_results":5,"election_year":2026}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- Who's running for the Senate in Arizona in 2026, and how much has each candidate raised so far?
- Pull up the FEC list of House candidates for Texas's 28th district in the 2024 election, including the ones who haven't raised any money.
- Top 10 fundraisers among 2024 presidential candidates, with their cash on hand and party
- I need every candidate filed for Wyoming's at-large House seat in 2022 — party, incumbent or challenger, total receipts, and the date their reports cover through.
- Using fec.gov data, show me the Georgia Senate race candidates for 2020 ranked by money raised, with links to their FEC pages.

## Input schema

```json
{
  "type": "object",
  "required": [
    "office",
    "election_year"
  ],
  "properties": {
    "state": {
      "type": "string",
      "description": "State or territory name or two-letter code, for example Texas or TX. Required for Senate and House."
    },
    "office": {
      "enum": [
        "president",
        "senate",
        "house"
      ],
      "type": "string",
      "description": "Federal office to search, for example house."
    },
    "district": {
      "type": "integer",
      "maximum": 99,
      "minimum": 0,
      "description": "House district number, for example 12. Use 0 for an at-large district."
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum candidates to return, for example 50."
    },
    "election_year": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1900,
      "description": "Election year, for example 2026."
    },
    "raised_money_only": {
      "enum": [
        "yes",
        "no"
      ],
      "type": "string",
      "default": "yes",
      "description": "Use yes to include only candidates who have raised money; use no for all candidates. For example yes."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "candidates"
  ],
  "properties": {
    "candidates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "candidate_name",
          "party",
          "state",
          "district",
          "incumbency",
          "candidate_status",
          "total_raised_usd",
          "cash_on_hand_usd",
          "coverage_end_date",
          "candidate_url",
          "candidate_id"
        ],
        "properties": {
          "party": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "district": {
            "type": [
              "integer",
              "null"
            ]
          },
          "incumbency": {
            "type": [
              "string",
              "null"
            ]
          },
          "candidate_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "candidate_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "candidate_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "candidate_status": {
            "type": [
              "string",
              "null"
            ]
          },
          "cash_on_hand_usd": {
            "type": [
              "number",
              "null"
            ]
          },
          "total_raised_usd": {
            "type": [
              "number",
              "null"
            ]
          },
          "coverage_end_date": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
```

## See more

- [FEC API: Get candidate fundraising](https://fous.com/methods/fec.gov/get-candidate-fundraising.md): Gets a federal candidate's fundraising and spending for a two-year FEC cycle. If several names match, returns the match with the most reported receipts.
- [USAJOBS API: Search federal jobs](https://fous.com/methods/usajobs.gov/search-jobs.md): Searches USAJOBS federal jobs by keywords, location, salary threshold and applicant group, in website relevance order. Salary ranges may start below the threshold; annual pay or remote status is null when the announcement does not state it.
- [Federal Register API: Search rules and notices](https://fous.com/methods/federalregister.gov/search-rules.md): Find Federal Register rules, proposed rules, notices, and presidential documents by topic, agency, publication dates, and comment status. Significant means designated significant by the source; documents without that designation show no.
- [USAspending API: Search federal awards](https://fous.com/methods/usaspending.gov/search-federal-awards.md): Searches USAspending federal awards by keywords, awarding agency, state of performance and date across contracts, grants, loans and direct payments. Searches from October 1, 2007 onward.
- [PolitiFact API: Search fact checks](https://fous.com/methods/politifact.com/search-fact-checks.md): Finds PolitiFact fact checks matching a claim, topic, or person, newest first. An exact person match returns that person's checked statements; otherwise fact-check text is searched. An optional Truth-O-Meter rating filters the results.
- [FDA API: Search food recalls](https://fous.com/methods/open.fda.gov/search-food-recalls.md): Finds FDA food recall enforcement reports by product, brand, or allergen, newest first. Reports are updated weekly and recall statuses may lag.
- [SEC EDGAR API: Search filings by phrase](https://fous.com/methods/sec.gov/search-filings.md): Finds SEC EDGAR company filings that mention an exact phrase, optionally limited to a company, a filing category and a filing date range, ranked by search relevance; one entry per filing.
- [Grants.gov API: Search grant opportunities](https://fous.com/methods/grants.gov/search-grants.md): Finds U.S. federal grant opportunities by topic, agency, applicant type and status, with funding and eligibility details. Open results exclude opportunities whose closing date has passed.
- [All FEC methods](https://fous.com/methods/fec.gov.md)
