openapi: 3.0.3 info: title: Congress.gov Bills API description: The Congress.gov API provides programmatic access to congressional data from the Library of Congress. It is a REST API offering machine-readable data covering bills, amendments, congressional records, committees, members, nominations, treaties, and other collections. An API key is required for access. Version 3 is the current stable release. version: v3 contact: url: https://www.loc.gov/apis/additional-apis/congress-dot-gov-api/ license: name: US Government Work url: https://www.usa.gov/government-works servers: - url: https://api.congress.gov/v3 description: Congress.gov API v3 Production Server security: - ApiKeyQuery: [] tags: - name: Bills description: Legislative bills and resolutions paths: /bill: get: operationId: listBills summary: List Bills description: Returns a paginated list of congressional bills across all congresses. tags: - Bills parameters: - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - name: fromDateTime in: query description: Start date/time filter for bill updates (ISO 8601) required: false schema: type: string format: date-time - name: toDateTime in: query description: End date/time filter for bill updates (ISO 8601) required: false schema: type: string format: date-time - name: sort in: query description: Sort order for results required: false schema: type: string enum: - updateDate+asc - updateDate+desc default: updateDate+desc responses: '200': description: A paginated list of bills content: application/json: schema: $ref: '#/components/schemas/BillListResponse' '400': description: Bad request '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimitExceeded' /bill/{congress}: get: operationId: listBillsByCongress summary: List Bills by Congress description: Returns bills introduced in a specific Congress. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - name: billType in: query description: Filter by bill type required: false schema: type: string enum: - hr - s - hjres - sjres - hconres - sconres - hres - sres responses: '200': description: A paginated list of bills for the specified Congress content: application/json: schema: $ref: '#/components/schemas/BillListResponse' '404': description: Congress not found /bill/{congress}/{type}: get: operationId: listBillsByType summary: List Bills by Congress and Type description: Returns bills of a specific type introduced in a specific Congress. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path description: Bill type (e.g., hr, s, hjres) required: true schema: type: string enum: - hr - s - hjres - sjres - hconres - sconres - hres - sres - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: A list of bills of the specified type content: application/json: schema: $ref: '#/components/schemas/BillListResponse' /bill/{congress}/{type}/{number}: get: operationId: getBill summary: Get Bill Details description: Returns detailed information for a specific bill. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path description: Bill type (e.g., hr, s) required: true schema: type: string - name: number in: path description: Bill number required: true schema: type: integer - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' responses: '200': description: Detailed bill information content: application/json: schema: $ref: '#/components/schemas/BillDetailResponse' '404': description: Bill not found /bill/{congress}/{type}/{number}/actions: get: operationId: getBillActions summary: Get Bill Actions description: Returns the legislative actions taken on a specific bill. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path description: Bill type required: true schema: type: string - name: number in: path description: Bill number required: true schema: type: integer - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: List of actions on the bill content: application/json: schema: $ref: '#/components/schemas/BillActionsResponse' /bill/{congress}/{type}/{number}/cosponsors: get: operationId: getBillCosponsors summary: Get Bill Cosponsors description: Returns the cosponsors of a specific bill. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path required: true schema: type: string - name: number in: path required: true schema: type: integer - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: List of cosponsors content: application/json: schema: type: object /bill/{congress}/{type}/{number}/summaries: get: operationId: getBillSummaries summary: Get Bill Summaries description: Returns summaries for a specific bill. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path required: true schema: type: string - name: number in: path required: true schema: type: integer - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' responses: '200': description: List of summaries for the bill content: application/json: schema: type: object /bill/{congress}/{type}/{number}/text: get: operationId: getBillText summary: Get Bill Text Versions description: Returns the available text versions for a specific bill. tags: - Bills parameters: - $ref: '#/components/parameters/congressParam' - name: type in: path required: true schema: type: string - name: number in: path required: true schema: type: integer - $ref: '#/components/parameters/apiKeyParam' - $ref: '#/components/parameters/formatParam' responses: '200': description: Available text versions of the bill content: application/json: schema: type: object components: schemas: BillDetailResponse: type: object properties: bill: type: object properties: congress: type: integer type: type: string number: type: string title: type: string introducedDate: type: string format: date sponsors: type: array items: type: object cosponsors: type: object committees: type: object actions: type: object subjects: type: object summaries: type: object textVersions: type: object request: $ref: '#/components/schemas/RequestInfo' RequestInfo: type: object properties: billNumber: type: string billType: type: string congress: type: string contentType: type: string format: type: string BillSummary: type: object properties: congress: type: integer description: Congress number the bill was introduced in type: type: string description: Bill type code (hr, s, hjres, etc.) number: type: string description: Bill number title: type: string description: Official title of the bill originChamber: type: string description: Chamber where the bill originated (House or Senate) originChamberCode: type: string description: Chamber code (H or S) introducedDate: type: string format: date description: Date the bill was introduced latestAction: type: object properties: actionDate: type: string format: date text: type: string updateDate: type: string format: date-time url: type: string description: API URL for the bill details BillListResponse: type: object properties: bills: type: array items: $ref: '#/components/schemas/BillSummary' pagination: $ref: '#/components/schemas/Pagination' request: $ref: '#/components/schemas/RequestInfo' BillActionsResponse: type: object properties: actions: type: array items: type: object properties: actionDate: type: string format: date text: type: string type: type: string actionCode: type: string committees: type: array items: type: object pagination: $ref: '#/components/schemas/Pagination' Pagination: type: object properties: count: type: integer description: Total number of records matching the query next: type: string description: URL for the next page of results prev: type: string description: URL for the previous page of results parameters: congressParam: name: congress in: path description: The Congress number (e.g., 118 for the 118th Congress) required: true schema: type: integer minimum: 1 limitParam: name: limit in: query description: Number of results to return per request (max 250) required: false schema: type: integer minimum: 1 maximum: 250 default: 20 formatParam: name: format in: query description: Response format required: false schema: type: string enum: - json - xml default: json offsetParam: name: offset in: query description: Starting record number for pagination required: false schema: type: integer minimum: 0 default: 0 apiKeyParam: name: api_key in: query description: API key for authentication required: false schema: type: string responses: Unauthorized: description: API key missing or invalid RateLimitExceeded: description: Rate limit exceeded (5000 requests per hour) securitySchemes: ApiKeyQuery: type: apiKey in: query name: api_key description: API key required for all requests. Register at https://api.congress.gov/sign-up to obtain a key.