openapi: 3.1.0 info: title: FiscalNote People API description: >- The FiscalNote People API allows developers to access FiscalNote's data on government officials in the United States and globally. The API provides structured information about legislators, elected officials, and other government personnel, enabling applications to look up representatives, track official profiles, and integrate government personnel data into political intelligence and advocacy workflows. version: '2.0' contact: name: FiscalNote Support url: https://fiscalnote.com/contact termsOfService: https://fiscalnote.com/terms externalDocs: description: FiscalNote People API Documentation url: https://apidocs.fiscalnote.com/apis servers: - url: https://api.fiscalnote.com description: Production Server tags: - name: Legislators description: >- Access legislator-specific data including voting records, sponsored legislation, and committee memberships. - name: Officials description: >- Access government official profiles including legislators, executives, and appointees. security: - apiKey: [] paths: /people/v2/officials: get: operationId: listOfficials summary: FiscalNote List government officials description: >- Returns a paginated list of government officials including legislators, executives, and appointees from the United States and international jurisdictions. tags: - Officials parameters: - $ref: '#/components/parameters/jurisdictionParam' - $ref: '#/components/parameters/chamberParam' - $ref: '#/components/parameters/partyParam' - $ref: '#/components/parameters/stateParam' - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/updatedSinceParam' responses: '200': description: A paginated list of government official records. content: application/json: schema: $ref: '#/components/schemas/OfficialListResponse' '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/officials/{officialId}: get: operationId: getOfficial summary: FiscalNote Get government official by ID description: >- Returns detailed information about a specific government official including biography, contact details, committee assignments, and political affiliation. tags: - Officials parameters: - name: officialId in: path required: true description: >- The unique identifier of the government official. schema: type: string responses: '200': description: Detailed government official record. content: application/json: schema: $ref: '#/components/schemas/Official' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Official not found. content: application/json: schema: $ref: '#/components/schemas/Error' /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: securitySchemes: apiKey: type: apiKey in: header name: Authorization description: >- API key provided by FiscalNote. Include in the Authorization header of each request. parameters: jurisdictionParam: name: jurisdiction in: query required: false description: >- Filter by jurisdiction code such as US, US-CA, GB, or EU. schema: type: string chamberParam: name: chamber in: query required: false description: >- Filter by legislative chamber such as senate or house. schema: type: string enum: - senate - house partyParam: name: party in: query required: false description: >- Filter by political party affiliation. schema: type: string stateParam: name: state in: query required: false description: >- Filter by U.S. state abbreviation. schema: type: string minLength: 2 maxLength: 2 queryParam: name: q in: query required: false description: >- Full-text search query to filter results. schema: type: string 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 offsetParam: name: offset in: query required: false description: >- Number of results to skip for pagination. schema: type: integer minimum: 0 default: 0 updatedSinceParam: name: updatedSince in: query required: false description: >- Return only records updated after this ISO 8601 datetime. schema: type: string format: date-time schemas: 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. 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. 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 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. 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. 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. OfficialListResponse: type: object description: >- Paginated response containing a list of officials. properties: data: type: array items: $ref: '#/components/schemas/Official' pagination: $ref: '#/components/schemas/Pagination' 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' 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' 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.