FiscalNote Legislators API

Access legislator-specific data including voting records, sponsored legislation, and committee memberships.

OpenAPI Specification

fiscalnote-legislators-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: FiscalNote AppData Bills Legislators API
  description: The FiscalNote AppData API provides access to FiscalNote's data on legislation and regulations, both past and present, in the United States and globally. It also exposes organizational data from the FiscalNote platform including issues and labels. Developers can use the API to integrate legislative tracking, regulatory monitoring, and policy analysis capabilities into their own applications and workflows.
  version: '1.0'
  contact:
    name: FiscalNote Support
    url: https://fiscalnote.com/contact
  termsOfService: https://fiscalnote.com/terms
servers:
- url: https://api.fiscalnote.com
  description: Production Server
security:
- apiKey: []
tags:
- name: Legislators
  description: Access legislator-specific data including voting records, sponsored legislation, and committee memberships.
paths:
  /people/v2/legislators:
    get:
      operationId: listLegislators
      summary: FiscalNote List legislators
      description: Returns a paginated list of current and former legislators from federal, state, and international legislatures.
      tags:
      - Legislators
      parameters:
      - $ref: '#/components/parameters/jurisdictionParam'
      - $ref: '#/components/parameters/chamberParam'
      - $ref: '#/components/parameters/partyParam'
      - $ref: '#/components/parameters/stateParam'
      - name: district
        in: query
        required: false
        description: Filter by district number or identifier.
        schema:
          type: string
      - name: active
        in: query
        required: false
        description: Filter by active status. Set to true for currently serving legislators.
        schema:
          type: boolean
      - $ref: '#/components/parameters/queryParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      responses:
        '200':
          description: A paginated list of legislator records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegislatorListResponse'
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /people/v2/legislators/{legislatorId}:
    get:
      operationId: getLegislator
      summary: FiscalNote Get legislator by ID
      description: Returns detailed information about a specific legislator including biography, voting record, sponsored legislation, and committee memberships.
      tags:
      - Legislators
      parameters:
      - name: legislatorId
        in: path
        required: true
        description: The unique identifier of the legislator.
        schema:
          type: string
      responses:
        '200':
          description: Detailed legislator record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Legislator'
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Legislator not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /people/v2/legislators/{legislatorId}/votes:
    get:
      operationId: listLegislatorVotes
      summary: FiscalNote List legislator votes
      description: Returns a paginated list of votes cast by a specific legislator.
      tags:
      - Legislators
      parameters:
      - name: legislatorId
        in: path
        required: true
        description: The unique identifier of the legislator.
        schema:
          type: string
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      responses:
        '200':
          description: A paginated list of vote records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoteListResponse'
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Legislator not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    limitParam:
      name: limit
      in: query
      required: false
      description: Maximum number of results to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    jurisdictionParam:
      name: jurisdiction
      in: query
      required: false
      description: Filter by jurisdiction code such as US, US-CA, GB, or EU.
      schema:
        type: string
    partyParam:
      name: party
      in: query
      required: false
      description: Filter by political party affiliation.
      schema:
        type: string
    offsetParam:
      name: offset
      in: query
      required: false
      description: Number of results to skip for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
    queryParam:
      name: q
      in: query
      required: false
      description: Full-text search query to filter results.
      schema:
        type: string
    stateParam:
      name: state
      in: query
      required: false
      description: Filter by U.S. state abbreviation.
      schema:
        type: string
        minLength: 2
        maxLength: 2
    chamberParam:
      name: chamber
      in: query
      required: false
      description: Filter by legislative chamber such as senate or house.
      schema:
        type: string
        enum:
        - senate
        - house
  schemas:
    LegislatorListResponse:
      type: object
      description: Paginated response containing a list of legislators.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Legislator'
        pagination:
          $ref: '#/components/schemas/Pagination'
    SocialMedia:
      type: object
      description: Social media profiles for a government official.
      properties:
        twitter:
          type: string
          description: Twitter/X handle.
        facebook:
          type: string
          description: Facebook profile URL or handle.
        youtube:
          type: string
          description: YouTube channel URL.
    Vote:
      type: object
      description: A vote record for a legislator.
      properties:
        id:
          type: string
          description: Unique identifier of the vote.
        billId:
          type: string
          description: Identifier of the bill being voted on.
        billTitle:
          type: string
          description: Title of the bill being voted on.
        voteDate:
          type: string
          format: date
          description: Date of the vote.
        position:
          type: string
          description: The legislator's vote position.
          enum:
          - yea
          - nay
          - abstain
          - not_voting
        chamber:
          type: string
          description: Chamber where the vote took place.
    Official:
      type: object
      description: A government official including legislators, executives, and appointees.
      properties:
        id:
          type: string
          description: Unique identifier for the official.
        firstName:
          type: string
          description: First name of the official.
        lastName:
          type: string
          description: Last name of the official.
        fullName:
          type: string
          description: Full name of the official.
        title:
          type: string
          description: Official title or position.
        party:
          type: string
          description: Political party affiliation.
        jurisdiction:
          type: string
          description: Jurisdiction the official serves in.
        state:
          type: string
          description: U.S. state if applicable.
        chamber:
          type: string
          description: Legislative chamber if applicable.
        district:
          type: string
          description: District the official represents.
        active:
          type: boolean
          description: Whether the official is currently serving.
        biography:
          type: string
          description: Biographical summary.
        photoUrl:
          type: string
          format: uri
          description: URL to the official's photo.
        contactInfo:
          $ref: '#/components/schemas/ContactInfo'
        socialMedia:
          $ref: '#/components/schemas/SocialMedia'
        url:
          type: string
          format: uri
          description: URL to the official's profile on FiscalNote.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the record was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the record was last updated.
    CommitteeMembership:
      type: object
      description: A legislator's membership in a committee.
      properties:
        committeeId:
          type: string
          description: Unique identifier of the committee.
        committeeName:
          type: string
          description: Name of the committee.
        role:
          type: string
          description: Role on the committee such as chair, ranking_member, or member.
          enum:
          - chair
          - vice_chair
          - ranking_member
          - member
    VoteListResponse:
      type: object
      description: Paginated response containing a list of vote records.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Vote'
        pagination:
          $ref: '#/components/schemas/Pagination'
    ContactInfo:
      type: object
      description: Contact information for a government official.
      properties:
        email:
          type: string
          format: email
          description: Email address.
        phone:
          type: string
          description: Phone number.
        address:
          type: string
          description: Mailing address.
        website:
          type: string
          format: uri
          description: Official website.
    Pagination:
      type: object
      description: Pagination metadata for list responses.
      properties:
        total:
          type: integer
          description: Total number of records matching the query.
        limit:
          type: integer
          description: Maximum number of records returned per page.
        offset:
          type: integer
          description: Number of records skipped.
        hasMore:
          type: boolean
          description: Indicates whether more records are available.
    Error:
      type: object
      description: Error response returned when a request fails.
      properties:
        code:
          type: integer
          description: HTTP status code.
        message:
          type: string
          description: Human-readable error message.
    Legislator:
      type: object
      description: A legislator with detailed information including voting record and committee memberships.
      allOf:
      - $ref: '#/components/schemas/Official'
      - type: object
        properties:
          committees:
            type: array
            description: Committees the legislator serves on.
            items:
              $ref: '#/components/schemas/CommitteeMembership'
          sponsoredBillCount:
            type: integer
            description: Number of bills sponsored by the legislator.
          cosponsoredBillCount:
            type: integer
            description: Number of bills co-sponsored by the legislator.
          termStart:
            type: string
            format: date
            description: Start date of the current term.
          termEnd:
            type: string
            format: date
            description: End date of the current term.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key provided by FiscalNote. Include in the Authorization header of each request.
externalDocs:
  description: FiscalNote AppData API Documentation
  url: https://apidocs.fiscalnote.com/apis