openapi: 3.0.1 info: title: GovInfo API description: The GovInfo API provides services for developers and webmasters to access GovInfo content and metadata, including search, packages, granules, collections, related items, and published documents from the U.S. Government Publishing Office. Requires an api.data.gov API key. contact: name: Developer Hub url: https://github.com/usgpo/api license: name: License url: https://github.com/usgpo/api/blob/master/LICENSE.md version: '2.0' servers: - url: https://api.govinfo.gov description: GovInfo API production server tags: - name: Search description: Discover documents on GovInfo using search queries and field operators available in the GovInfo UI - name: Collections description: Discover new and updated documents based on GovInfo lastModified date/time - name: Packages description: Return content and metadata for individual documents - name: Packages description: Return content and metadata for individual packages - name: Published description: Discover documents on GovInfo based on official publication date - name: Related description: Discover relationships between documents available on GovInfo paths: /search: post: tags: - Search description: This service can be used to query the GovInfo search engine and return results that are the equivalent to what is returned by the main user interface. You can use field operators, such as congress, publishdate, branch, and others to construct complex queries that will return only matching documents. For additional information, please see our search service overview. operationId: search requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchRequest' example: query: Federal documents pageSize: 10 offsetMark: '*' sorts: - field: relevancy sortOrder: DESC historical: true resultLevel: default required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SearchResponse' '404': description: No Content found for a given search criteria '400': description: When the input request criteria is not following the spec '500': description: Any system failure while processing the search request /query security: - apiKeyScheme: [] /related/{accessId}: get: tags: - Related summary: Get a list of relationships for a given accessId operationId: relatedPackageDetails parameters: - name: accessId in: path description: The unique accessId (packageId or granuleId) for a given piece of GovInfo content required: true schema: type: string responses: '200': description: OK content: '*/*': schema: type: object security: - apiKeyScheme: [] /related/{accessId}/{collection}: get: tags: - Related summary: Get a list of relationships for a given accessId operationId: relatedVersionsDetails parameters: - name: accessId in: path description: The unique accessId (packageId or granuleId) for a given piece of GovInfo content required: true schema: type: string - name: collection in: path description: CollectionCode associated with a given relationshp - e.g. BILLS would display all related Bill Versions required: true schema: type: string enum: - BILLS - CPD - CPRT - CRPT - FR - HOB - PLAW - STATUTE - USCODE - CMR - name: granuleClass in: query required: false schema: type: string - name: subGranuleClass in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: type: object security: - apiKeyScheme: [] /published/{dateIssuedStartDate}: get: tags: - Published summary: Retrieve list of packages based on dateIssued value operationId: getPackagesByDateIssued parameters: - name: dateIssuedStartDate in: path description: The earliest dateIssued requested - YYYY-MM-DD required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2} type: string - name: offsetMark in: query description: Indicates starting record for a given request. Use in conjunction with pageSize to paginate through the results. For the first request, use * - for subsequent requests, this information will be provided in the nextPage field of the current response. required: false schema: type: string - name: offset in: query description: 'This is the starting record you wish to retrieve-- 0 is the first record. This parameter is being deprecated and will be removed in the future. Please begin transitioning to use offsetMark instead. For more information see the deprecation warning announcement and discussion on this GitHub issue (usgpo/api #187) ' required: false deprecated: true schema: type: integer - name: pageSize in: query description: The number of records to return for a given request. Max value is 1000 required: true schema: maximum: 1000 type: integer - name: collection in: query description: comma-separated list of collections that you are requesting, e.g. https://api.govinfo.gov/published/2019-01-01/2019-12-31?offset=0&pageSize=100&collection=BILLS,BILLSTATUS&api_key=DEMO_KEY - see /collections for a list of collections by code and human-readable name. required: true schema: type: string - name: congress in: query description: congress number (e.g. 116) required: false schema: type: string - name: docClass in: query description: 'Filter the results by overarching collection-specific categories. The values vary from collection to collection. For example, docClass in BILLS corresponds with Bill Type --e.g. s, hr, hres, sconres. CREC (the Congressional Record) has docClass by CREC section: HOUSE, SENATE, DIGEST, and EXTENSIONS' required: false schema: type: string - name: billVersion in: query description: Filter the results by overarching collection-specific categories. required: false schema: type: string enum: - as - ash - ath - ats - cdh - cds - cph - cps - eah - eas - eh - enr - eph - es - fah - fph - fps - hdh - hds - ih - iph - ips - is - lth - lts - nat - oph - ops - pap - pav - pch - pcs - pp - pwah - rah - ras - rch - rcs - rdh - rds - re - reah - renr - res - rfh - rfs - rft - rh - rhuc - rih - ris - rs - rth - rts - s_p - sas - sc - mostrecent - name: modifiedSince in: query description: equivalent to the lastModifiedStartDate parameter in the collections service which is based on lastModified- allows you to request only packages that have been modified since a given date/time - useful for tracking updates. Requires ISO 8601 format -- e.g. 2020-02-28T00:00:00Z required: false schema: type: string - name: courtCode in: query required: false schema: pattern: (?:AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY)[n|e|w|s]?[d|b|a]|(cofc|jpml) type: string - name: courtType in: query required: false schema: pattern: District|Bankruptcy|Appellate|National type: string - name: state in: query required: false schema: pattern: AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY type: string - name: topic in: query required: false schema: type: string - name: isGLP in: query required: false schema: type: boolean - name: natureSuitCode in: query required: false schema: type: string - name: natureSuit in: query required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CollectionContainer' security: - apiKeyScheme: [] /published/{dateIssuedStartDate}/{dateIssuedEndDate}: get: tags: - Published summary: Retrieve list of packages based on dateIssued value range operationId: getPackagesByDateIssued_1 parameters: - name: dateIssuedStartDate in: path description: The earliest dateIssued requested - YYYY-MM-DD required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2} type: string - name: dateIssuedEndDate in: path description: The last dateIssued requested - YYYY-MM-DD required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2} type: string - name: offsetMark in: query description: Indicates starting record for a given request. Use in conjunction with pageSize to paginate through the results. For the first request, use * - for subsequent requests, this information will be provided in the nextPage field of the current response. required: false schema: type: string - name: offset in: query description: 'This is the starting record you wish to retrieve-- 0 is the first record. This parameter is being deprecated and will be removed in the future. Please begin transitioning to use offsetMark instead. For more information see the deprecation warning announcement and discussion on this GitHub issue (usgpo/api #187) ' required: false deprecated: true schema: type: integer - name: pageSize in: query description: The number of records to return for a given request. Max value is 1000 required: true schema: maximum: 1000 type: integer - name: collection in: query description: comma-separated list of collections that you are requesting, e.g. https://api.govinfo.gov/published/2019-01-01/2019-12-31?offset=0&pageSize=100&collection=BILLS,BILLSTATUS&api_key=DEMO_KEY - see /collections for a list of collections by code and human-readable name. required: true schema: type: string - name: congress in: query description: congress number (e.g. 116) required: false schema: type: string - name: docClass in: query description: 'Filter the results by overarching collection-specific categories. The values vary from collection to collection. For example, docClass in BILLS corresponds with Bill Type --e.g. s, hr, hres, sconres. CREC (the Congressional Record) has docClass by CREC section: HOUSE, SENATE, DIGEST, and EXTENSIONS' required: false schema: type: string - name: billVersion in: query description: Filter the results by overarching collection-specific categories. required: false schema: type: string enum: - as - ash - ath - ats - cdh - cds - cph - cps - eah - eas - eh - enr - eph - es - fah - fph - fps - hdh - hds - ih - iph - ips - is - lth - lts - nat - oph - ops - pap - pav - pch - pcs - pp - pwah - rah - ras - rch - rcs - rdh - rds - re - reah - renr - res - rfh - rfs - rft - rh - rhuc - rih - ris - rs - rth - rts - s_p - sas - sc - mostrecent - name: modifiedSince in: query description: equivalent to the lastModifiedStartDate parameter in the collections service which is based on lastModified- allows you to request only packages that have been modified since a given date/time - useful for tracking updates. Requires ISO 8601 format -- e.g. 2020-02-28T00:00:00Z required: false schema: type: string - name: courtCode in: query required: false schema: pattern: (?:AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY)[n|e|w|s]?[d|b|a]|(cofc|jpml) type: string - name: courtType in: query required: false schema: pattern: District|Bankruptcy|Appellate|National type: string - name: state in: query required: false schema: pattern: AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY type: string - name: topic in: query required: false schema: type: string - name: natureSuitCode in: query required: false schema: type: string - name: natureSuit in: query required: false schema: type: string - name: isGLP in: query required: false schema: type: boolean responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CollectionContainer' security: - apiKeyScheme: [] /packages/{packageId}/summary: get: tags: - Packages summary: Return json summary for specified package operationId: packageDetails parameters: - name: packageId in: path description: 'The Package Id. Ex: CREC-2018-01-04' required: true schema: type: string responses: '200': description: OK content: '*/*': schema: type: object security: - apiKeyScheme: [] /packages/{packageId}/granules: get: tags: - Packages summary: Get a list of granules associated with a package operationId: getGranulesForPackage parameters: - name: packageId in: path description: 'The Package Id. Ex: CREC-2018-01-04' required: true schema: type: string - name: offsetMark in: query description: Indicates starting record for a given request. Use in conjunction with pageSize to paginate through the results. For the first request, use * - for subsequent requests, this information will be provided in the nextPage field of the current response. required: false schema: type: string - name: offset in: query description: 'This is the starting record you wish to retrieve-- 0 is the first record. This parameter is being deprecated and will be removed in the future. Please begin transitioning to use offsetMark instead. For more information see the deprecation warning announcement and discussion on this GitHub issue (usgpo/api #187) ' required: false deprecated: true schema: type: integer - name: pageSize in: query description: The number of records to return for a given request. Max value is 1000 required: true schema: maximum: 1000 type: integer - name: md5 in: query description: md5 hash value of the html content file - can be used to identify changes in individual granules for the HOB and CRI collections. required: false schema: type: string - name: granuleClass in: query description: Filter the results by overarching collection-specific categories. The values vary from collection to collection. For example, For example, granuleClass in CREC corresponds with Congressional Record Section ---e.g. . DAILYDIGEST, EXTENSIONS, SENATE, HOUSE required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GranuleContainer' security: - apiKeyScheme: [] /packages/{packageId}/granules/{granuleId}/summary: get: tags: - Packages summary: Return json summary for specified granule operationId: getGranuleContentDetail parameters: - name: packageId in: path description: 'The Package Id. Ex: CREC-2018-01-04' required: true schema: type: string - name: granuleId in: path description: The granule ID, e.g. CREC-2018-01-04-pt1-PgD7-2 required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: string security: - apiKeyScheme: [] /collections: get: tags: - Collections summary: Request list of collections. Response includes collectionCode,collectionName, package and granule counts operationId: getCollectionSummary responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CollectionSummary' security: - apiKeyScheme: [] /collections/{collection}/{lastModifiedStartDate}: get: tags: - Collections summary: Retrieve new or updated packages for a collection given a start date and time operationId: getModifiedCollections parameters: - name: collection in: path description: The collectionCode that you want to retrieve (e.g. BILLS, CREC, FR, PLAW, USCOURTS) required: true schema: type: string enum: - BILLS - BILLSTATUS - BUDGET - CCAL - CDIR - CDOC - CFR - CHRG - CMR - COMPS - CPD - CPRT - CREC - CRECB - CRI - CRPT - CZIC - ECFR - ECONI - ERIC - ERP - FR - GAOREPORTS - GOVMAN - GOVPUB - GPO - HJOURNAL - HMAN - HOB - LSA - PAI - PLAW - PPP - SERIALSET - SJOURNAL - SMAN - STATUTE - USCODE - USCOURTS - USREPORTS - name: lastModifiedStartDate in: path description: 'This is the start date and time in ISO8601 format (yyyy-MM-dd''T''HH:mm:ss''Z'') Example: 2018-01-28T20:18:10Z' required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{1,2}:\d{1,2}Z type: string - name: offsetMark in: query description: Indicates starting record for a given request. Use in conjunction with pageSize to paginate through the results. For the first request, use * - for subsequent requests, this information will be provided in the nextPage field of the current response. required: false schema: type: string - name: offset in: query description: 'This is the starting record you wish to retrieve-- 0 is the first record. This parameter is being deprecated and will be removed in the future. Please begin transitioning to use offsetMark instead. For more information see the deprecation warning announcement and discussion on this GitHub issue (usgpo/api #187) ' required: false deprecated: true schema: type: integer - name: pageSize in: query description: The number of records to return for a given request. Max value is 1000 required: true schema: maximum: 1000 type: integer - name: congress in: query description: Filters results by Congress, where applicable. For example 113 or 114. required: false schema: type: integer - name: docClass in: query description: Filter the results by overarching collection-specific categories. The values vary from collection to collection. For example, docClass in BILLS corresponds with Bill Type --e.g. s, hr, hres, sconres. required: false schema: type: string - name: billVersion in: query description: Filter the results by overarching collection-specific categories. required: false schema: type: string enum: - as - ash - ath - ats - cdh - cds - cph - cps - eah - eas - eh - enr - eph - es - fah - fph - fps - hdh - hds - ih - iph - ips - is - lth - lts - nat - oph - ops - pap - pav - pch - pcs - pp - pwah - rah - ras - rch - rcs - rdh - rds - re - reah - renr - res - rfh - rfs - rft - rh - rhuc - rih - ris - rs - rth - rts - s_p - sas - sc - mostrecent - name: courtCode in: query required: false schema: pattern: (?:(?:al|ak|as|az|ar|ca|co|ct|de|dc|fl|ga|gu|hi|id|il|in|ia|ks|ky|la|me|md|ma|mi|mn|ms|mo|mt|ne|nv|nh|nj|nm|ny|nc|nd|mp|oh|ok|or|pa|pr|ri|sc|sd|tn|tx|ut|vt|va|vi|wa|wv|wi|wy)[n|e|w|s]?[d|b|a])|(cit|ca\d{1,2})|(cofc|jpml) type: string - name: courtType in: query required: false schema: pattern: District|Bankruptcy|Appellate|National type: string - name: state in: query required: false schema: pattern: AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY type: string - name: topic in: query required: false schema: type: string - name: isGLP in: query required: false schema: type: boolean - name: natureSuitCode in: query required: false schema: type: string - name: natureSuit in: query required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CollectionContainer' security: - apiKeyScheme: [] /collections/{collection}/{lastModifiedStartDate}/{lastModifiedEndDate}: get: tags: - Collections summary: Retrieve new or updated packages for a collection within a date range operationId: getModifiedCollections_1 parameters: - name: collection in: path description: The collectionCode that you want to retrieve (e.g. BILLS, CREC, FR, PLAW, USCOURTS) required: true schema: type: string enum: - BILLS - BILLSTATUS - BUDGET - CCAL - CDIR - CDOC - CFR - CHRG - CMR - COMPS - CPD - CPRT - CREC - CRECB - CRI - CRPT - CZIC - ECFR - ECONI - ERIC - ERP - FR - GAOREPORTS - GOVMAN - GOVPUB - GPO - HJOURNAL - HMAN - HOB - LSA - PAI - PLAW - PPP - SERIALSET - SJOURNAL - SMAN - STATUTE - USCODE - USCOURTS - USREPORTS - name: lastModifiedStartDate in: path description: 'This is the start date and time in ISO8601 format (yyyy-MM-dd''T''HH:mm:ss''Z'') Example: 2018-01-28T20:18:10Z' required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{1,2}:\d{1,2}Z type: string - name: lastModifiedEndDate in: path description: 'This is the end date and time in ISO8601 format (yyyy-MM-dd''T''HH:mm:ss''Z'') Example: 2018-01-28T20:18:10Z' required: true schema: pattern: \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{1,2}:\d{1,2}Z type: string - name: offsetMark in: query description: Indicates starting record for a given request. Use in conjunction with pageSize to paginate through the results. For the first request, use * - for subsequent requests, this information will be provided in the nextPage field of the current response. required: false schema: type: string - name: offset in: query description: 'This is the starting record you wish to retrieve-- 0 is the first record. This parameter is being deprecated and will be removed in the future. Please begin transitioning to use offsetMark instead. For more information see the deprecation warning announcement and discussion on this GitHub issue (usgpo/api #187) ' required: false deprecated: true schema: type: integer - name: pageSize in: query description: The number of records to return for a given request. Max value is 1000 required: true schema: maximum: 1000 type: integer - name: docClass in: query description: Filter the results by overarching collection-specific categories. The values vary from collection to collection. For example, docClass in BILLS corresponds with Bill Type --e.g. s, hr, hres, sconres. required: false schema: type: string - name: congress in: query description: Filters results by Congress, where applicable. For example 113 or 114. required: false schema: type: integer - name: billVersion in: query description: Filter the results by overarching collection-specific categories. required: false schema: type: string enum: - as - ash - ath - ats - cdh - cds - cph - cps - eah - eas - eh - enr - eph - es - fah - fph - fps - hdh - hds - ih - iph - ips - is - lth - lts - nat - oph - ops - pap - pav - pch - pcs - pp - pwah - rah - ras - rch - rcs - rdh - rds - re - reah - renr - res - rfh - rfs - rft - rh - rhuc - rih - ris - rs - rth - rts - s_p - sas - sc - mostrecent - name: courtCode in: query required: false schema: pattern: (?:(?:al|ak|as|az|ar|ca|co|ct|de|dc|fl|ga|gu|hi|id|il|in|ia|ks|ky|la|me|md|ma|mi|mn|ms|mo|mt|ne|nv|nh|nj|nm|ny|nc|nd|mp|oh|ok|or|pa|pr|ri|sc|sd|tn|tx|ut|vt|va|vi|wa|wv|wi|wy)[n|e|w|s]?[d|b|a])|(cit|ca\d{1,2})|(cofc|jpml) type: string - name: courtType in: query required: false schema: pattern: District|Bankruptcy|Appellate|National type: string - name: state in: query required: false schema: pattern: AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY type: string - name: topic in: query required: false schema: type: string - name: isGLP in: query required: false schema: type: boolean - name: natureSuitCode in: query required: false schema: type: string - name: natureSuit in: query required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CollectionContainer' security: - apiKeyScheme: [] components: schemas: SearchRequest: type: object properties: query: type: string pageSize: type: integer format: int32 offsetMark: type: string sorts: type: array items: $ref: '#/components/schemas/Sort' historical: type: boolean resultLevel: type: string Sort: type: object properties: field: type: string sortOrder: type: string enum: - ASC - DESC SearchResponse: type: object properties: results: type: array items: $ref: '#/components/schemas/SearchResult' offsetMark: type: string count: type: integer format: int32 SearchResult: type: object properties: title: type: string packageId: type: string granuleId: type: string lastModified: type: string governmentAuthor: type: array items: type: string dateIssued: type: string collectionCode: type: string resultLink: type: string dateIngested: type: string download: type: object additionalProperties: type: string relatedLink: type: string CollectionContainer: type: object properties: count: type: integer format: int64 message: type: string nextPage: type: string previousPage: type: string packages: type: array items: $ref: '#/components/schemas/PackageInfo' PackageInfo: type: object properties: packageId: type: string lastModified: type: string packageLink: type: string docClass: type: string title: type: string congress: type: string dateIssued: type: string GranuleContainer: type: object properties: count: type: integer format: int32 offset: type: integer format: int32 pageSize: type: integer format: int32 nextPage: type: string previousPage: type: string granules: type: array items: $ref: '#/components/schemas/GranuleMetadata' message: type: string GranuleMetadata: type: object properties: title: type: string granuleId: type: string granuleLink: type: string dateIssued: type: string granuleClass: type: string md5: type: string CollectionSummary: type: object properties: collections: type: array items: $ref: '#/components/schemas/SummaryItem' SummaryItem: type: object properties: collectionCode: type: string collectionName: type: string packageCount: type: integer format: int64 granuleCount: type: integer format: int64 securitySchemes: apiKeyScheme: type: apiKey name: api_key in: query