Library of Congress Congress.gov API

The Congress.gov API provides programmatic access to legislative information, including bills, laws, members, committees, and Congressional Record content from the U.S. Congress.

OpenAPI Specification

library-of-congress-congress-gov-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Library of Congress Congress.gov API
  description: >-
    The Congress.gov API provides programmatic access to legislative
    information from the U.S. Congress, including bills, laws, members,
    committees, amendments, and Congressional Record content. An API key
    is required for access.
  version: 1.0.0
  contact:
    name: Library of Congress
    url: https://api.congress.gov/
servers:
  - url: https://api.congress.gov/v3
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /bill:
    get:
      operationId: listBills
      summary: List Bills
      description: Returns a list of bills sorted by date of latest action.
      tags:
        - Bills
      parameters:
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
        - name: fromDateTime
          in: query
          schema:
            type: string
            format: date-time
        - name: toDateTime
          in: query
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: List of bills
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillList'
  /bill/{congress}/{billType}:
    get:
      operationId: listBillsByType
      summary: List Bills by Congress and Type
      tags:
        - Bills
      parameters:
        - name: congress
          in: path
          required: true
          schema:
            type: integer
        - name: billType
          in: path
          required: true
          schema:
            type: string
            enum:
              - hr
              - s
              - hjres
              - sjres
              - hconres
              - sconres
              - hres
              - sres
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of bills
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillList'
  /bill/{congress}/{billType}/{billNumber}:
    get:
      operationId: getBill
      summary: Get Bill
      tags:
        - Bills
      parameters:
        - name: congress
          in: path
          required: true
          schema:
            type: integer
        - name: billType
          in: path
          required: true
          schema:
            type: string
        - name: billNumber
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Format'
      responses:
        '200':
          description: Bill detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bill'
  /member:
    get:
      operationId: listMembers
      summary: List Members
      description: List members of Congress.
      tags:
        - Members
      parameters:
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Members list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberList'
  /member/{bioguideId}:
    get:
      operationId: getMember
      summary: Get Member
      tags:
        - Members
      parameters:
        - name: bioguideId
          in: path
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Format'
      responses:
        '200':
          description: Member detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
  /committee:
    get:
      operationId: listCommittees
      summary: List Committees
      tags:
        - Committees
      parameters:
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Committees list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommitteeList'
  /law/{congress}:
    get:
      operationId: listLaws
      summary: List Laws
      tags:
        - Laws
      parameters:
        - name: congress
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Laws list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LawList'
  /congressional-record:
    get:
      operationId: listCongressionalRecord
      summary: List Congressional Record
      tags:
        - Congressional Record
      parameters:
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Congressional Record entries
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
  parameters:
    Format:
      name: format
      in: query
      schema:
        type: string
        enum:
          - json
          - xml
        default: json
    Offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
    Limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 20
        maximum: 250
  schemas:
    BillList:
      type: object
      properties:
        bills:
          type: array
          items:
            $ref: '#/components/schemas/Bill'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Bill:
      type: object
      properties:
        congress:
          type: integer
        number:
          type: string
        type:
          type: string
        title:
          type: string
        originChamber:
          type: string
        introducedDate:
          type: string
        latestAction:
          type: object
          properties:
            actionDate:
              type: string
            text:
              type: string
        url:
          type: string
          format: uri
    MemberList:
      type: object
      properties:
        members:
          type: array
          items:
            $ref: '#/components/schemas/Member'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Member:
      type: object
      properties:
        bioguideId:
          type: string
        name:
          type: string
        state:
          type: string
        party:
          type: string
        chamber:
          type: string
        url:
          type: string
          format: uri
    CommitteeList:
      type: object
      properties:
        committees:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              chamber:
                type: string
              systemCode:
                type: string
              url:
                type: string
                format: uri
        pagination:
          $ref: '#/components/schemas/Pagination'
    LawList:
      type: object
      properties:
        bills:
          type: array
          items:
            $ref: '#/components/schemas/Bill'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Pagination:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
        prev:
          type: string