Election.org Public Data API People API

The People API from Election.org Public Data API — 1 operation(s) for people.

Operations 1

GET /people Search permanent federal and state political-person records #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/election-org:election-org-people-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

election-org-people-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Election.org Public Data People API
  version: '2026-09-12'
  description: Source-first public election data. Public beta coverage is explicit; null and omitted values are never silently converted to zeroes or inferred facts.
  contact:
    email: data@election.org
servers:
- url: https://election.org/api/v1
tags:
- name: People
paths:
  /people:
    get:
      summary: Search permanent federal and state political-person records
      description: Federal terms join only on the source person ID, state roles only on the Open States person UUID, and campaign records only on exact FEC IDs. Names alone never merge people. Federal history begins with terms starting in 1923; the state layer is a current-role snapshot.
      parameters:
      - name: id
        in: query
        description: Election.org person ID, descriptive route slug, or unique source person ID.
        schema:
          type: string
      - name: fec_id
        in: query
        description: Exact FEC candidate ID; ambiguous IDs fail closed.
        schema:
          type: string
      - name: q
        in: query
        description: Name, role, person ID, FEC ID, Bioguide ID, state, or district.
        schema:
          type: string
          maxLength: 120
      - name: level
        in: query
        schema:
          type: string
          enum:
          - federal
          - state
      - name: state
        in: query
        required: false
        description: Two-letter postal abbreviation.
        schema:
          type: string
          minLength: 2
          maxLength: 2
      - name: status
        in: query
        schema:
          type: string
          enum:
          - current
          - historical
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 250
      - name: offset
        in: query
        schema:
          type: integer
          minimum: 0
      responses:
        '200':
          description: Permanent person IDs, current roles, exact external identifiers, optional full career terms, sources, and coverage limits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDataResponse'
        '404':
          description: No unique person matched the supplied identifier
      tags:
      - People
      operationId: getPeople
      x-operation-id-source: derived
components:
  schemas:
    Citation:
      type: object
      description: Suggested attribution, not a forced backlink or new license. Collection sources are not necessarily evidence for every returned record. Dates are not request generation times.
      required:
      - suggested_credit
      - record_url
      - record_urls
      - credit_url
      - original_sources
      - updated_at
      - verified_at
      - guidance_url
      - rights_note
      properties:
        suggested_credit:
          type: string
        record_url:
          type:
          - string
          - 'null'
          format: uri
        record_urls:
          type: array
          items:
            type: string
            format: uri
        credit_url:
          type: string
          format: uri
        original_sources:
          type: array
          description: 'Returned-data source references. References explicitly marked applies_to_returned_records: false remain in response sources but are excluded here.'
          items:
            type: object
            properties:
              name:
                type: string
              url:
                type: string
                format: uri
              updated_at:
                type:
                - string
                - 'null'
              verified_at:
                type:
                - string
                - 'null'
              record_date:
                type:
                - string
                - 'null'
                description: Date on the cited record, not a source check or dataset update
        updated_at:
          type:
          - string
          - 'null'
          description: Explicit dataset update date, or null when unspecified
        verified_at:
          type:
          - string
          - 'null'
          description: Latest stated source check; does not establish freshness of every record
        dates_note:
          type: string
        source_scope:
          type: string
        source_summary_truncated:
          type: boolean
        guidance_url:
          type: string
          format: uri
        rights_note:
          type: string
    PublicDataResponse:
      type: object
      required:
      - data
      - citation
      properties:
        data: {}
        citation:
          $ref: '#/components/schemas/Citation'
      additionalProperties: true
externalDocs:
  description: Citation and reuse guidance
  url: https://election.org/data/api#attribution