---
type: "firecrawl-provider"
description: "civicAPI (civicapi.org), a free keyless election results API. Live US election-night results for the 3 November 2026 midterms (and other dates): every US Senate, US House and governor race with candidates, parties, votes, percentages, share reporting and winner calls, the nationwide seat tally per chamber, one race in full with county breakdown, and civicAPI's own Monte Carlo forecast of Senate, House and governor control with per-race ratings. Counts are unofficial until certified. Attribution to civicAPI is required by its terms."
use_when: "civicAPI (civicapi.org), a free keyless election results API. Live US election-night results for the 3 November 2026 midterms (and other dates): every US Senate, US House and governor race with candidates, parties, votes, percentages, share reporting and winner calls, the nationwide seat tally per chamber, one race in full with county breakdown, and civicAPI's own Monte Carlo forecast of Senate, House and governor control with per-race ratings. Counts are unofficial until certified. Attribution to civicAPI is required by its terms."
categories: "Public records"
capabilities: 3
credits_per_call: 5
---
# civicAPI live election results and forecasts on Firecrawl Alexandria

civicAPI (civicapi.org), a free keyless election results API. Live US election-night results for the 3 November 2026 midterms (and other dates): every US Senate, US House and governor race with candidates, parties, votes, percentages, share reporting and winner calls, the nationwide seat tally per chamber, one race in full with county breakdown, and civicAPI's own Monte Carlo forecast of Senate, House and governor control with per-race ratings. Counts are unofficial until certified. Attribution to civicAPI is required by its terms.

- Categories: Public records
- Category index: [Public records category](https://alexandria.firecrawl.dev/agents/categories/public-records)
- Provider key: `civicapi-org`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/civicapi-org)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/openapi.json)

## Capabilities

- [Forecast](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/forecast): civicAPI's own 2026 forecast for a chamber (senate, house or governor): Monte Carlo simulation summary (expected seats, percentiles, majority probabilities), rating totals, majority rating, seat distribution, input weights, House popular-vote and generic-ballot estimates, and per-race ratings with projected vote shares and candidates, optionally for one state. One GET of /api/v2/forecast/{chamber}/2026/civicapi. office, body, race_type, contest, race, branch, seat, office_type, contest_type, and type are aliases of chamber. When chamber is omitted the forecast is the Senate. A timeout is not retried; a fast HTTP 502 is. Unknown options are rejected by name.
- [Live results](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/live_results): Live results of every race of a chamber (senate, house or governor) on an election date, nationwide or for one state: candidates, parties, votes, percent, share reporting, called/winner and current leader, plus counts of called and reporting races, calls by party and civicAPI's nationwide seat tally. Pass chamber, or office, body, race_type, contest, race, branch, seat, office_type, contest_type, or type (US Senate, House of Representatives, Governor, gov, and sen are accepted). When chamber is omitted, a state lists every race in that state and a national query lists the US Senate; status_note says which. chamber all lists every race on the ballot in one state and needs state. Date defaults to 2026-11-03. Pages are 100 rows. A fast HTTP 502 is retried; a timeout is not, so the call returns inside 20s. If a later page does not fit, the races already read are returned and status_note says the result is partial. Unknown options are rejected by name.
- [Race](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/race): One civicAPI race in full: every candidate with party, votes, percent, incumbency, winner and runoff flags, share reporting, poll open and close times, civicAPI's last ingest time (last_updated) and the time the counts last changed (votes_updated_at, from the race's history snapshots), test-data and disputed flags, and optionally the county or district breakdown. GET /api/v2/race/{id} plus /api/v2/race/{id}/history when the call budget still has room. id, link, and results_url are aliases of race_id and url. A timeout is not retried; a fast HTTP 502 is. The race is returned with votes_updated_at null when history does not fit. Unknown options are rejected by name.

## 1. Choose this provider when

civicAPI (civicapi.org), a free keyless election results API. Live US election-night results for the 3 November 2026 midterms (and other dates): every US Senate, US House and governor race with candidates, parties, votes, percentages, share reporting and winner calls, the nationwide seat tally per chamber, one race in full with county breakdown, and civicAPI's own Monte Carlo forecast of Senate, House and governor control with per-race ratings. Counts are unofficial until certified. Attribution to civicAPI is required by its terms.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "civicapi-org",
  "capability": "elections/forecast",
  "options": {
    "chamber": "senate"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `body` (string): Alias of chamber. Same values as office. Example: `<body>`
- `branch` (string): Alias of chamber. Same values as office. Example: `<branch>`
- `chamber` (string): senate, house, or governor. Also US Senate, House of Representatives, Governor, gov, and sen. Omitted: senate. Example: `<chamber>`
- `contest` (string): Alias of chamber. Same values as office. Example: `<contest>`
- `contest_type` (string): Alias of chamber. Same values as office. Example: `<contest_type>`
- `location` (string): Alias of state. Example: `<location>`
- `office` (string): Alias of chamber: senate, house, governor, or US Senate, House of Representatives, Governor. Example: `<office>`
- `office_type` (string): Alias of chamber. Same values as office. Example: `<office_type>`
- `province` (string): Alias of state. Example: `<province>`
- `race` (string): Alias of chamber. Same values as office. Example: `<race>`
- `race_type` (string): Alias of chamber. Same values as office. Example: `<race_type>`
- `seat` (string): Alias of chamber. Same values as office. Example: `<seat>`
- `state` (string): Only ratings for this state: a two-letter code or a name (Georgia). Totals and simulations stay national. location, province, and state_code are aliases. Example: `<state>`
- `state_code` (string): Alias of state. Example: `<state_code>`
- `type` (string): Alias of chamber. Same values as office. Example: `<type>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "civicapi-org",
    capability: "elections/forecast",
    options: {
      chamber: "senate",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "civicapi-org",
  "capability": "elections/forecast",
  "options": {
    "chamber": "senate"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "civicapi-org",
    "capability": "elections/forecast",
    "options": {
      "chamber": "senate"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'civicapi-org/elections/forecast' \
  --options '{"chamber":"senate"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "civicapi-org",
  "capability": "elections/forecast",
  "options": {
    "chamber": "senate"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "civicapi-org",
  "capability": "elections/forecast",
  "options": {
    "chamber": "senate"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "attribution": "Results and forecasts from civicAPI (https://civicapi.org)",
  "chamber": "senate",
  "count": 35,
  "factor_weights": {
    "betting_markets": 0.2,
    "expert_ratings": 0.2,
    "fundraising": 0.1,
    "outside_spending": 0.1,
    "polls": 0.2
  },
  "forecaster": "civicAPI",
  "last_updated": "2026-11-03",
  "majority_rating": "Safe D",
  "monte_carlo": {
    "democrat_seats_p5": 59,
    "democrat_seats_p50": 63,
    "democrat_seats_p95": 66,
    "expected_democrat_seats": 62.7,
    "expected_republican_seats": 62.8,
    "majority_threshold": 51,
    "prob_democrat_majority": 100,
    "prob_republican_majority": 100,
    "republican_seats_p5": 59,
    "republican_seats_p50": 63,
    "republican_seats_p95": 67,
    "simulations": 65000
  },
  "national": null,
  "observed_at_ms": 1793720565648,
  "ratings": [
    {
      "democrat_pct": 62.2,
      "democratic_candidate": "Mary Peltola",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Sidney “Sid” Hill",
      "independent_pct": 0.1,
      "key": "AK",
      "rating": "Tilt D",
      "republican_candidate": null,
      "republican_pct": 37.7,
      "state": "AK"
    },
    {
      "democrat_pct": 5.3,
      "democratic_candidate": "Everett Wess",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "AL",
      "rating": "Safe R",
      "republican_candidate": "Barry Moore",
      "republican_pct": 94.7,
      "state": "AL"
    },
    {
      "democrat_pct": 7.7,
      "democratic_candidate": "Hallie Shoffner",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "AR",
      "rating": "Safe R",
      "republican_candidate": "Tom Cotton",
      "republican_pct": 92.3,
      "state": "AR"
    },
    {
      "democrat_pct": 98.7,
      "democratic_candidate": "John Hickenlooper",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Donald Willoughby",
      "independent_pct": 0,
      "key": "CO",
      "rating": "Safe D",
      "republican_candidate": null,
      "republican_pct": 1.3,
      "state": "CO"
    },
    {
      "democrat_pct": 98.5,
      "democratic_candidate": "Chris Coons",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "DE",
      "rating": "Safe D",
      "republican_candidate": "Michael \"Dr. Mike\" Katz",
      "republican_pct": 1.5,
      "state": "DE"
    },
    {
      "democrat_pct": 17.3,
      "democratic_candidate": "Angie Nixon",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Neil J. Gillespie",
      "independent_pct": 0,
      "key": "FL",
      "rating": "Likely R",
      "republican_candidate": "Ashley Moody",
      "republican_pct": 82.7,
      "state": "FL"
    },
    {
      "democrat_pct": 84.2,
      "democratic_candidate": "Jon Ossoff",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "GA",
      "rating": "Likely D",
      "republican_candidate": "Mike Collins",
      "republican_pct": 15.8,
      "state": "GA"
    },
    {
      "democrat_pct": 50.8,
      "democratic_candidate": "Josh Turek",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "IA",
      "rating": "Tossup",
      "republican_candidate": "Ashley Hinson",
      "republican_pct": 49.2,
      "state": "IA"
    },
    {
      "democrat_pct": 5.8,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 2.2,
      "key": "ID",
      "rating": "Safe R",
      "republican_candidate": "Jim Risch",
      "republican_pct": 92,
      "state": "ID"
    },
    {
      "democrat_pct": 92,
      "democratic_candidate": "Juliana Stratton",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "IL",
      "rating": "Safe D",
      "republican_candidate": "Don Tracy",
      "republican_pct": 8,
      "state": "IL"
    },
    {
      "democrat_pct": 43,
      "democratic_candidate": "Adam Hamilton",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "KS",
      "rating": "Tossup",
      "republican_candidate": "Roger Marshall",
      "republican_pct": 57,
      "state": "KS"
    },
    {
      "democrat_pct": 13.2,
      "democratic_candidate": "Charles Booker",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "KY",
      "rating": "Likely R",
      "republican_candidate": "Andy Barr",
      "republican_pct": 86.8,
      "state": "KY"
    },
    {
      "democrat_pct": 8,
      "democratic_candidate": "Jamie Davis",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "LA",
      "rating": "Safe R",
      "republican_candidate": "Julia Letlow",
      "republican_pct": 92,
      "state": "LA"
    },
    {
      "democrat_pct": 98,
      "democratic_candidate": "Edward J. Markey",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Shiva Ayyadurai",
      "independent_pct": 0,
      "key": "MA",
      "rating": "Safe D",
      "republican_candidate": "John Deaton",
      "republican_pct": 2,
      "state": "MA"
    },
    {
      "democrat_pct": 58.4,
      "democratic_candidate": "Troy Jackson",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "ME",
      "rating": "Tossup",
      "republican_candidate": "Susan Collins",
      "republican_pct": 41.6,
      "state": "ME"
    },
    {
      "democrat_pct": 61.3,
      "democratic_candidate": "Abdul El-Sayed",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "MI",
      "rating": "Tilt D",
      "republican_candidate": "Mike Rogers",
      "republican_pct": 38.7,
      "state": "MI"
    },
    {
      "democrat_pct": 80,
      "democratic_candidate": "Peggy Flanagan",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Marisa Simonetti",
      "independent_pct": 0,
      "key": "MN",
      "rating": "Likely D",
      "republican_candidate": "Michele Tafoya",
      "republican_pct": 20,
      "state": "MN"
    },
    {
      "democrat_pct": 8,
      "democratic_candidate": "Scott Colom",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Ty Pinkins",
      "independent_pct": 0,
      "key": "MS",
      "rating": "Safe R",
      "republican_candidate": "Cindy Hyde-Smith",
      "republican_pct": 92,
      "state": "MS"
    },
    {
      "democrat_pct": 0.6,
      "democratic_candidate": "Alani Bankhead",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Seth Bodnar",
      "independent_pct": 7.4,
      "key": "MT",
      "rating": "Safe R",
      "republican_candidate": "Kurt Alme",
      "republican_pct": 92,
      "state": "MT"
    },
    {
      "democrat_pct": 76.2,
      "democratic_candidate": "Roy Cooper",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NC",
      "rating": "Lean D",
      "republican_candidate": "Michael Whatley",
      "republican_pct": 23.8,
      "state": "NC"
    },
    {
      "democrat_pct": 1.9,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Dan  Osborn",
      "independent_pct": 39.7,
      "key": "NE",
      "rating": "Tossup",
      "republican_candidate": "Pete  Ricketts",
      "republican_pct": 58.4,
      "state": "NE"
    },
    {
      "democrat_pct": 69.3,
      "democratic_candidate": "Chris Pappas",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NH",
      "rating": "Tilt D",
      "republican_candidate": "John E. Sununu",
      "republican_pct": 30.7,
      "state": "NH"
    },
    {
      "democrat_pct": 98.8,
      "democratic_candidate": "Cory Booker",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NJ",
      "rating": "Safe D",
      "republican_candidate": "Justin Murphy",
      "republican_pct": 1.2,
      "state": "NJ"
    },
    {
      "democrat_pct": 95.7,
      "democratic_candidate": "Ben Ray Luján",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NM",
      "rating": "Safe D",
      "republican_candidate": "Larry Marker",
      "republican_pct": 4.3,
      "state": "NM"
    },
    {
      "democrat_pct": 55.6,
      "democratic_candidate": "Sherrod Brown",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OH",
      "rating": "Tossup",
      "republican_candidate": "Jon Husted",
      "republican_pct": 44.4,
      "state": "OH"
    },
    {
      "democrat_pct": 1.4,
      "democratic_candidate": "N'Kiyla Jasmine Thomas",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OK",
      "rating": "Safe R",
      "republican_candidate": "Kevin Hern",
      "republican_pct": 98.6,
      "state": "OK"
    },
    {
      "democrat_pct": 82.3,
      "democratic_candidate": "Jeff Merkley",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OR",
      "rating": "Likely D",
      "republican_candidate": "David Brock Smith",
      "republican_pct": 17.7,
      "state": "OR"
    },
    {
      "democrat_pct": 97.4,
      "democratic_candidate": "John F. Reed",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Michael Bahry",
      "independent_pct": 0,
      "key": "RI",
      "rating": "Safe D",
      "republican_candidate": "Raymond T. McKay",
      "republican_pct": 2.6,
      "state": "RI"
    },
    {
      "democrat_pct": 26.4,
      "democratic_candidate": "Annie Andrews",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "SC",
      "rating": "Lean R",
      "republican_candidate": "Darline Graham",
      "republican_pct": 73.6,
      "state": "SC"
    },
    {
      "democrat_pct": 0.2,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Brian Bengs",
      "independent_pct": 5.1,
      "key": "SD",
      "rating": "Safe R",
      "republican_candidate": "Mike Rounds",
      "republican_pct": 94.7,
      "state": "SD"
    },
    {
      "democrat_pct": 1.3,
      "democratic_candidate": "Marquita Bradshaw",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "TN",
      "rating": "Safe R",
      "republican_candidate": "Bill Hagerty",
      "republican_pct": 98.7,
      "state": "TN"
    },
    {
      "democrat_pct": 68.7,
      "democratic_candidate": "James Talarico",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "TX",
      "rating": "Tilt D",
      "republican_candidate": "Ken Paxton",
      "republican_pct": 31.3,
      "state": "TX"
    },
    {
      "democrat_pct": 98.2,
      "democratic_candidate": "Mark Warner",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "VA",
      "rating": "Safe D",
      "republican_candidate": "Bert Mizusawa",
      "republican_pct": 1.8,
      "state": "VA"
    },
    {
      "democrat_pct": 1.4,
      "democratic_candidate": "Rachel Fetty Anderson",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "WV",
      "rating": "Safe R",
      "republican_candidate": "Shelley Moore Capito",
      "republican_pct": 98.6,
      "state": "WV"
    },
    {
      "democrat_pct": 1.6,
      "democratic_candidate": "James W. Byrd",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "WY",
      "rating": "Safe R",
      "republican_candidate": "Harriet Hageman",
      "republican_pct": 98.4,
      "state": "WY"
    }
  ],
  "seat_distribution": [
    {
      "democrat_seats": 53,
      "probability_pct": 0
    },
    {
      "democrat_seats": 54,
      "probability_pct": 0.01
    },
    {
      "democrat_seats": 55,
      "probability_pct": 0.06
    },
    {
      "democrat_seats": 56,
      "probability_pct": 0.22
    },
    {
      "democrat_seats": 57,
      "probability_pct": 0.85
    },
    {
      "democrat_seats": 58,
      "probability_pct": 2.15
    },
    {
      "democrat_seats": 59,
      "probability_pct": 4.81
    },
    {
      "democrat_seats": 60,
      "probability_pct": 8.57
    },
    {
      "democrat_seats": 61,
      "probability_pct": 13.12
    },
    {
      "democrat_seats": 62,
      "probability_pct": 16.79
    },
    {
      "democrat_seats": 63,
      "probability_pct": 17.42
    },
    {
      "democrat_seats": 64,
      "probability_pct": 15.08
    },
    {
      "democrat_seats": 65,
      "probability_pct": 10.61
    },
    {
      "democrat_seats": 66,
      "probability_pct": 6.1
    },
    {
      "democrat_seats": 67,
      "probability_pct": 2.82
    },
    {
      "democrat_seats": 68,
      "probability_pct": 1
    },
    {
      "democrat_seats": 69,
      "probability_pct": 0.32
    },
    {
      "democrat_seats": 70,
      "probability_pct": 0.06
    },
    {
      "democrat_seats": 71,
      "probability_pct": 0.01
    },
    {
      "democrat_seats": 72,
      "probability_pct": 0
    },
    {
      "democrat_seats": 73,
      "probability_pct": 0
    }
  ],
  "source_url": "https://civicapi.org/api/v2/forecast/senate/2026/civicapi",
  "state": null,
  "totals": {
    "democrat": 62,
    "independent": 0,
    "republican": 59,
    "tossup": 5
  },
  "year": 2026
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Forecast

- Capability: `elections/forecast`
- Description: civicAPI's own 2026 forecast for a chamber (senate, house or governor): Monte Carlo simulation summary (expected seats, percentiles, majority probabilities), rating totals, majority rating, seat distribution, input weights, House popular-vote and generic-ballot estimates, and per-race ratings with projected vote shares and candidates, optionally for one state. One GET of /api/v2/forecast/{chamber}/2026/civicapi. office, body, race_type, contest, race, branch, seat, office_type, contest_type, and type are aliases of chamber. When chamber is omitted the forecast is the Senate. A timeout is not retried; a fast HTTP 502 is. Unknown options are rejected by name.
- Instructions: Pre-results expectations or context next to live_results: who is favoured to control the Senate or House, and how a given race is rated.
- Cost: 5 credits per call
- Capability file: [Forecast](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/forecast)

Accepted options:
- `body` (string): Alias of chamber. Same values as office. Example: `<body>`
- `branch` (string): Alias of chamber. Same values as office. Example: `<branch>`
- `chamber` (string): senate, house, or governor. Also US Senate, House of Representatives, Governor, gov, and sen. Omitted: senate. Example: `<chamber>`
- `contest` (string): Alias of chamber. Same values as office. Example: `<contest>`
- `contest_type` (string): Alias of chamber. Same values as office. Example: `<contest_type>`
- `location` (string): Alias of state. Example: `<location>`
- `office` (string): Alias of chamber: senate, house, governor, or US Senate, House of Representatives, Governor. Example: `<office>`
- `office_type` (string): Alias of chamber. Same values as office. Example: `<office_type>`
- `province` (string): Alias of state. Example: `<province>`
- `race` (string): Alias of chamber. Same values as office. Example: `<race>`
- `race_type` (string): Alias of chamber. Same values as office. Example: `<race_type>`
- `seat` (string): Alias of chamber. Same values as office. Example: `<seat>`
- `state` (string): Only ratings for this state: a two-letter code or a name (Georgia). Totals and simulations stay national. location, province, and state_code are aliases. Example: `<state>`
- `state_code` (string): Alias of state. Example: `<state_code>`
- `type` (string): Alias of chamber. Same values as office. Example: `<type>`

Response schema example:
```json
{
  "attribution": "Results and forecasts from civicAPI (https://civicapi.org)",
  "chamber": "senate",
  "count": 35,
  "factor_weights": {
    "betting_markets": 0.2,
    "expert_ratings": 0.2,
    "fundraising": 0.1,
    "outside_spending": 0.1,
    "polls": 0.2
  },
  "forecaster": "civicAPI",
  "last_updated": "2026-11-03",
  "majority_rating": "Safe D",
  "monte_carlo": {
    "democrat_seats_p5": 59,
    "democrat_seats_p50": 63,
    "democrat_seats_p95": 66,
    "expected_democrat_seats": 62.7,
    "expected_republican_seats": 62.8,
    "majority_threshold": 51,
    "prob_democrat_majority": 100,
    "prob_republican_majority": 100,
    "republican_seats_p5": 59,
    "republican_seats_p50": 63,
    "republican_seats_p95": 67,
    "simulations": 65000
  },
  "national": null,
  "observed_at_ms": 1793720565648,
  "ratings": [
    {
      "democrat_pct": 62.2,
      "democratic_candidate": "Mary Peltola",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Sidney “Sid” Hill",
      "independent_pct": 0.1,
      "key": "AK",
      "rating": "Tilt D",
      "republican_candidate": null,
      "republican_pct": 37.7,
      "state": "AK"
    },
    {
      "democrat_pct": 5.3,
      "democratic_candidate": "Everett Wess",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "AL",
      "rating": "Safe R",
      "republican_candidate": "Barry Moore",
      "republican_pct": 94.7,
      "state": "AL"
    },
    {
      "democrat_pct": 7.7,
      "democratic_candidate": "Hallie Shoffner",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "AR",
      "rating": "Safe R",
      "republican_candidate": "Tom Cotton",
      "republican_pct": 92.3,
      "state": "AR"
    },
    {
      "democrat_pct": 98.7,
      "democratic_candidate": "John Hickenlooper",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Donald Willoughby",
      "independent_pct": 0,
      "key": "CO",
      "rating": "Safe D",
      "republican_candidate": null,
      "republican_pct": 1.3,
      "state": "CO"
    },
    {
      "democrat_pct": 98.5,
      "democratic_candidate": "Chris Coons",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "DE",
      "rating": "Safe D",
      "republican_candidate": "Michael \"Dr. Mike\" Katz",
      "republican_pct": 1.5,
      "state": "DE"
    },
    {
      "democrat_pct": 17.3,
      "democratic_candidate": "Angie Nixon",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Neil J. Gillespie",
      "independent_pct": 0,
      "key": "FL",
      "rating": "Likely R",
      "republican_candidate": "Ashley Moody",
      "republican_pct": 82.7,
      "state": "FL"
    },
    {
      "democrat_pct": 84.2,
      "democratic_candidate": "Jon Ossoff",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "GA",
      "rating": "Likely D",
      "republican_candidate": "Mike Collins",
      "republican_pct": 15.8,
      "state": "GA"
    },
    {
      "democrat_pct": 50.8,
      "democratic_candidate": "Josh Turek",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "IA",
      "rating": "Tossup",
      "republican_candidate": "Ashley Hinson",
      "republican_pct": 49.2,
      "state": "IA"
    },
    {
      "democrat_pct": 5.8,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 2.2,
      "key": "ID",
      "rating": "Safe R",
      "republican_candidate": "Jim Risch",
      "republican_pct": 92,
      "state": "ID"
    },
    {
      "democrat_pct": 92,
      "democratic_candidate": "Juliana Stratton",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "IL",
      "rating": "Safe D",
      "republican_candidate": "Don Tracy",
      "republican_pct": 8,
      "state": "IL"
    },
    {
      "democrat_pct": 43,
      "democratic_candidate": "Adam Hamilton",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "KS",
      "rating": "Tossup",
      "republican_candidate": "Roger Marshall",
      "republican_pct": 57,
      "state": "KS"
    },
    {
      "democrat_pct": 13.2,
      "democratic_candidate": "Charles Booker",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "KY",
      "rating": "Likely R",
      "republican_candidate": "Andy Barr",
      "republican_pct": 86.8,
      "state": "KY"
    },
    {
      "democrat_pct": 8,
      "democratic_candidate": "Jamie Davis",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "LA",
      "rating": "Safe R",
      "republican_candidate": "Julia Letlow",
      "republican_pct": 92,
      "state": "LA"
    },
    {
      "democrat_pct": 98,
      "democratic_candidate": "Edward J. Markey",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Shiva Ayyadurai",
      "independent_pct": 0,
      "key": "MA",
      "rating": "Safe D",
      "republican_candidate": "John Deaton",
      "republican_pct": 2,
      "state": "MA"
    },
    {
      "democrat_pct": 58.4,
      "democratic_candidate": "Troy Jackson",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "ME",
      "rating": "Tossup",
      "republican_candidate": "Susan Collins",
      "republican_pct": 41.6,
      "state": "ME"
    },
    {
      "democrat_pct": 61.3,
      "democratic_candidate": "Abdul El-Sayed",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "MI",
      "rating": "Tilt D",
      "republican_candidate": "Mike Rogers",
      "republican_pct": 38.7,
      "state": "MI"
    },
    {
      "democrat_pct": 80,
      "democratic_candidate": "Peggy Flanagan",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Marisa Simonetti",
      "independent_pct": 0,
      "key": "MN",
      "rating": "Likely D",
      "republican_candidate": "Michele Tafoya",
      "republican_pct": 20,
      "state": "MN"
    },
    {
      "democrat_pct": 8,
      "democratic_candidate": "Scott Colom",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Ty Pinkins",
      "independent_pct": 0,
      "key": "MS",
      "rating": "Safe R",
      "republican_candidate": "Cindy Hyde-Smith",
      "republican_pct": 92,
      "state": "MS"
    },
    {
      "democrat_pct": 0.6,
      "democratic_candidate": "Alani Bankhead",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Seth Bodnar",
      "independent_pct": 7.4,
      "key": "MT",
      "rating": "Safe R",
      "republican_candidate": "Kurt Alme",
      "republican_pct": 92,
      "state": "MT"
    },
    {
      "democrat_pct": 76.2,
      "democratic_candidate": "Roy Cooper",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NC",
      "rating": "Lean D",
      "republican_candidate": "Michael Whatley",
      "republican_pct": 23.8,
      "state": "NC"
    },
    {
      "democrat_pct": 1.9,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Dan  Osborn",
      "independent_pct": 39.7,
      "key": "NE",
      "rating": "Tossup",
      "republican_candidate": "Pete  Ricketts",
      "republican_pct": 58.4,
      "state": "NE"
    },
    {
      "democrat_pct": 69.3,
      "democratic_candidate": "Chris Pappas",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NH",
      "rating": "Tilt D",
      "republican_candidate": "John E. Sununu",
      "republican_pct": 30.7,
      "state": "NH"
    },
    {
      "democrat_pct": 98.8,
      "democratic_candidate": "Cory Booker",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NJ",
      "rating": "Safe D",
      "republican_candidate": "Justin Murphy",
      "republican_pct": 1.2,
      "state": "NJ"
    },
    {
      "democrat_pct": 95.7,
      "democratic_candidate": "Ben Ray Luján",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "NM",
      "rating": "Safe D",
      "republican_candidate": "Larry Marker",
      "republican_pct": 4.3,
      "state": "NM"
    },
    {
      "democrat_pct": 55.6,
      "democratic_candidate": "Sherrod Brown",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OH",
      "rating": "Tossup",
      "republican_candidate": "Jon Husted",
      "republican_pct": 44.4,
      "state": "OH"
    },
    {
      "democrat_pct": 1.4,
      "democratic_candidate": "N'Kiyla Jasmine Thomas",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OK",
      "rating": "Safe R",
      "republican_candidate": "Kevin Hern",
      "republican_pct": 98.6,
      "state": "OK"
    },
    {
      "democrat_pct": 82.3,
      "democratic_candidate": "Jeff Merkley",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "OR",
      "rating": "Likely D",
      "republican_candidate": "David Brock Smith",
      "republican_pct": 17.7,
      "state": "OR"
    },
    {
      "democrat_pct": 97.4,
      "democratic_candidate": "John F. Reed",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": "Michael Bahry",
      "independent_pct": 0,
      "key": "RI",
      "rating": "Safe D",
      "republican_candidate": "Raymond T. McKay",
      "republican_pct": 2.6,
      "state": "RI"
    },
    {
      "democrat_pct": 26.4,
      "democratic_candidate": "Annie Andrews",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "SC",
      "rating": "Lean R",
      "republican_candidate": "Darline Graham",
      "republican_pct": 73.6,
      "state": "SC"
    },
    {
      "democrat_pct": 0.2,
      "democratic_candidate": null,
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": "Brian Bengs",
      "independent_pct": 5.1,
      "key": "SD",
      "rating": "Safe R",
      "republican_candidate": "Mike Rounds",
      "republican_pct": 94.7,
      "state": "SD"
    },
    {
      "democrat_pct": 1.3,
      "democratic_candidate": "Marquita Bradshaw",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "TN",
      "rating": "Safe R",
      "republican_candidate": "Bill Hagerty",
      "republican_pct": 98.7,
      "state": "TN"
    },
    {
      "democrat_pct": 68.7,
      "democratic_candidate": "James Talarico",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "TX",
      "rating": "Tilt D",
      "republican_candidate": "Ken Paxton",
      "republican_pct": 31.3,
      "state": "TX"
    },
    {
      "democrat_pct": 98.2,
      "democratic_candidate": "Mark Warner",
      "district": null,
      "incumbent_party": "D",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "VA",
      "rating": "Safe D",
      "republican_candidate": "Bert Mizusawa",
      "republican_pct": 1.8,
      "state": "VA"
    },
    {
      "democrat_pct": 1.4,
      "democratic_candidate": "Rachel Fetty Anderson",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "WV",
      "rating": "Safe R",
      "republican_candidate": "Shelley Moore Capito",
      "republican_pct": 98.6,
      "state": "WV"
    },
    {
      "democrat_pct": 1.6,
      "democratic_candidate": "James W. Byrd",
      "district": null,
      "incumbent_party": "R",
      "independent_candidate": null,
      "independent_pct": 0,
      "key": "WY",
      "rating": "Safe R",
      "republican_candidate": "Harriet Hageman",
      "republican_pct": 98.4,
      "state": "WY"
    }
  ],
  "seat_distribution": [
    {
      "democrat_seats": 53,
      "probability_pct": 0
    },
    {
      "democrat_seats": 54,
      "probability_pct": 0.01
    },
    {
      "democrat_seats": 55,
      "probability_pct": 0.06
    },
    {
      "democrat_seats": 56,
      "probability_pct": 0.22
    },
    {
      "democrat_seats": 57,
      "probability_pct": 0.85
    },
    {
      "democrat_seats": 58,
      "probability_pct": 2.15
    },
    {
      "democrat_seats": 59,
      "probability_pct": 4.81
    },
    {
      "democrat_seats": 60,
      "probability_pct": 8.57
    },
    {
      "democrat_seats": 61,
      "probability_pct": 13.12
    },
    {
      "democrat_seats": 62,
      "probability_pct": 16.79
    },
    {
      "democrat_seats": 63,
      "probability_pct": 17.42
    },
    {
      "democrat_seats": 64,
      "probability_pct": 15.08
    },
    {
      "democrat_seats": 65,
      "probability_pct": 10.61
    },
    {
      "democrat_seats": 66,
      "probability_pct": 6.1
    },
    {
      "democrat_seats": 67,
      "probability_pct": 2.82
    },
    {
      "democrat_seats": 68,
      "probability_pct": 1
    },
    {
      "democrat_seats": 69,
      "probability_pct": 0.32
    },
    {
      "democrat_seats": 70,
      "probability_pct": 0.06
    },
    {
      "democrat_seats": 71,
      "probability_pct": 0.01
    },
    {
      "democrat_seats": 72,
      "probability_pct": 0
    },
    {
      "democrat_seats": 73,
      "probability_pct": 0
    }
  ],
  "source_url": "https://civicapi.org/api/v2/forecast/senate/2026/civicapi",
  "state": null,
  "totals": {
    "democrat": 62,
    "independent": 0,
    "republican": 59,
    "tossup": 5
  },
  "year": 2026
}
```

### Live results

- Capability: `elections/live_results`
- Description: Live results of every race of a chamber (senate, house or governor) on an election date, nationwide or for one state: candidates, parties, votes, percent, share reporting, called/winner and current leader, plus counts of called and reporting races, calls by party and civicAPI's nationwide seat tally. Pass chamber, or office, body, race_type, contest, race, branch, seat, office_type, contest_type, or type (US Senate, House of Representatives, Governor, gov, and sen are accepted). When chamber is omitted, a state lists every race in that state and a national query lists the US Senate; status_note says which. chamber all lists every race on the ballot in one state and needs state. Date defaults to 2026-11-03. Pages are 100 rows. A fast HTTP 502 is retried; a timeout is not, so the call returns inside 20s. If a later page does not fit, the races already read are returned and status_note says the result is partial. Unknown options are rejected by name.
- Instructions: Election night: who is winning or has won the Senate, House or governor races, overall or in one state. Poll again for fresh counts; pass a race_id to race for every candidate and the county map.
- Cost: 5 credits per call
- Capability file: [Live results](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/live_results)

Accepted options:
- `body` (string): Alias of chamber. Same values as office. Example: `<body>`
- `branch` (string): Alias of chamber. Same values as office. Example: `<branch>`
- `chamber` (string): senate, house, governor, or all races in one state (needs state). Also US Senate, House of Representatives, Governor, gov, and sen. Omitted: senate nationwide, or every race when state is set. Example: `<chamber>`
- `contest` (string): Alias of chamber. Same values as office. Example: `<contest>`
- `contest_type` (string): Alias of chamber. Same values as office. Example: `<contest_type>`
- `date` (string): Election date YYYY-MM-DD, a datetime starting with that, or M/D/YYYY. Defaults to 2026-11-03. election_date is an alias. Example: `<date>`
- `election_date` (string): Alias of date. Example: `<election_date>`
- `location` (string): Alias of state. Example: `<location>`
- `office` (string): Alias of chamber. Agents send this: senate, house, governor, all, or US Senate, House of Representatives, Governor. Example: `<office>`
- `office_type` (string): Alias of chamber. Same values as office. Example: `<office_type>`
- `province` (string): Alias of state. civicAPI's province code or a state name. Example: `<province>`
- `race` (string): Alias of chamber. Same values as office. Example: `<race>`
- `race_type` (string): Alias of chamber. Same values as office, including civicAPI's type names (US Senate, House of Representatives, Governor). Example: `<race_type>`
- `seat` (string): Alias of chamber. Same values as office. Example: `<seat>`
- `state` (string): US state: a two-letter code (GA) or a name (Georgia). location, province, and state_code are aliases. Example: `<state>`
- `state_code` (string): Alias of state. Example: `<state_code>`
- `type` (string): Alias of chamber. civicAPI's office name, or senate, house, governor, all. Example: `<type>`

Response schema example:
```json
{
  "attribution": "Results and forecasts from civicAPI (https://civicapi.org)",
  "called_count": 0,
  "calls_by_party": [],
  "chamber": "senate",
  "count": 1,
  "date": "2026-11-03",
  "national": null,
  "observed_at_ms": 1793720565631,
  "races": [
    {
      "called": false,
      "candidates": [
        {
          "candidate_id": 220200,
          "name": "Jon Ossoff",
          "party": "Democratic",
          "percent": 0,
          "seats": null,
          "votes": 0,
          "winner": false
        },
        {
          "candidate_id": 220201,
          "name": "Mike Collins",
          "party": "Republican",
          "percent": 0,
          "seats": null,
          "votes": 0,
          "winner": false
        }
      ],
      "date": "2026-11-03",
      "district": null,
      "leader": null,
      "leader_party": null,
      "name": "Georgia US Senate",
      "percent_reporting": 0,
      "race_id": 87087,
      "results_url": "https://civicapi.org/results/elections/87087",
      "scope": "General",
      "state": "GA",
      "type": "US Senate",
      "winner": null,
      "winner_party": null
    }
  ],
  "reporting_count": 0,
  "source_url": "https://civicapi.org/api/v2/race/search?startDate=2026-11-03&endDate=2026-11-03&country=US&limit=50000&province=GA&election_type=General",
  "state": "GA",
  "status_note": "Election-night counts are unofficial until each state certifies them; civicAPI updates races as official sources report."
}
```

### Race

- Capability: `elections/race`
- Description: One civicAPI race in full: every candidate with party, votes, percent, incumbency, winner and runoff flags, share reporting, poll open and close times, civicAPI's last ingest time (last_updated) and the time the counts last changed (votes_updated_at, from the race's history snapshots), test-data and disputed flags, and optionally the county or district breakdown. GET /api/v2/race/{id} plus /api/v2/race/{id}/history when the call budget still has room. id, link, and results_url are aliases of race_id and url. A timeout is not retried; a fast HTTP 502 is. The race is returned with votes_updated_at null when history does not fit. Unknown options are rejected by name.
- Instructions: Details of one race found with live_results (race_id), or a pasted civicapi.org/results/elections/{id} URL; include_regions for county-level counts.
- Cost: 5 credits per call
- Capability file: [Race](https://alexandria.firecrawl.dev/agents/providers/civicapi-org/elections/race)

Accepted options:
- `counties` (boolean): Alias of include_regions. Example: `false`
- `id` (number): Alias of race_id. A number, a numeric string, or a civicapi.org results URL. Example: `10`
- `include_counties` (boolean): Alias of include_regions. Example: `false`
- `include_regions` (boolean): Add the county or district breakdown. Default false. regions, counties, and include_counties are aliases. true, false, yes, no, 1, and 0 are accepted. Example: `false`
- `link` (string): Alias of url. Example: `<link>`
- `race_id` (number): civicAPI race id from live_results, e.g. 87088. A number or a string. id is an alias. Example: `10`
- `regions` (boolean): Alias of include_regions. Example: `false`
- `results_url` (string): Alias of url. Example: `<results_url>`
- `url` (string): A https://civicapi.org/results/elections/{id} or /api/v2/race/{id} URL; used when race_id is absent. Example: `<url>`

Response schema example:
```json
{
  "attribution": "Results and forecasts from civicAPI (https://civicapi.org)",
  "called": false,
  "candidates": [
    {
      "advanced": false,
      "candidate_id": 220203,
      "incumbent": false,
      "name": "Keisha Lance Bottoms",
      "party": "Democratic",
      "percent": 59.09,
      "seats": null,
      "votes": 875185,
      "winner": false
    },
    {
      "advanced": false,
      "candidate_id": 220202,
      "incumbent": false,
      "name": "Rick Jackson",
      "party": "Republican",
      "percent": 40.91,
      "seats": null,
      "votes": 606023,
      "winner": false
    }
  ],
  "date": "2026-11-03",
  "district": null,
  "is_disputed": false,
  "last_updated": "2026-11-04T00:52:08.738Z",
  "leader": "Keisha Lance Bottoms",
  "leader_party": "Democratic",
  "municipality": null,
  "name": "Georgia Governor",
  "observed_at_ms": 1793753617664,
  "percent_reporting": 31.7,
  "polls_close": "2026-11-04T00:00:00.000Z",
  "polls_open": "2026-11-03T12:00:00.000Z",
  "race_id": 87088,
  "regions": null,
  "registered_voters": null,
  "results_url": "https://civicapi.org/results/elections/87088",
  "round": 1,
  "scope": "Statewide",
  "seats": null,
  "source_url": "https://civicapi.org/api/v2/race/87088",
  "state": "GA",
  "status_note": "Election-night counts are unofficial until each state certifies them; civicAPI updates races as official sources report.",
  "test_data": false,
  "type": "Governor",
  "votes_updated_at": "2026-11-04T00:50:31.299Z",
  "winner": null,
  "winner_party": null
}
```
