canonical: https://jentic.com/apis/api.govinfo.gov/govinfo

# Govinfo Gov GovInfo API

The GovInfo API provides programmatic access to U.S. Government Publishing Office (GPO) content, including congressional bills, the Federal Register, the Code of Federal Regulations, public laws, and committee reports. Agents can list available collections, retrieve package and granule summaries, list packages by dateIssued from a given start date, and query the GovInfo search service. Responses link to authenticated PDF, XML, and HTML renditions of each document so downstream applications can cite official sources directly. GPO publishes its own OpenAPI document for this API at `https://api.govinfo.gov/api-docs` (openapi 3.0.1, info.version 2.0, 11 operations) and that file is canonical. The specification bound to this page is a Jentic-built, agent-optimized 7-operation subset written from GPO's HTML docs page rather than from GPO's own document; adoption of the official file is pending, so treat GPO's document as the authority on methods, routes and required parameters.

## For AI agents

Search and retrieve official U.S. government publications such as bills, regulations, and the Federal Register, with structured metadata and links to authenticated documents.

## Scope

Does not handle bill voting, member contact details, or non-U.S. government documents - use for retrieving published GPO content such as bills, the Federal Register, and the CFR only.

## Capabilities

- List GPO content collections such as BILLS, FR, and CFR with their available date ranges
- Retrieve package summaries containing metadata, citations, and document download links
- Fetch granules within a package - for example individual sections of a Federal Register issue
- Query the GovInfo search service with full-text queries and field operators such as congress and publishdate
- List packages whose dateIssued falls on or after a given start date, for daily monitoring workflows
- Resolve a package or granule ID into citation-ready bibliographic metadata

## Use cases

### Legislative Tracking

Monitor congressional activity by polling the GovInfo BILLS collection for newly published bills and resolutions. GPO's collections service returns paginated package metadata for packages new or updated since a start date and time, and its official route requires that date segment (/collections/{collection}/{lastModifiedStartDate}), so an agent can detect new filings, fetch the package summary, and pull citation data without scraping Congress.gov pages.

Example prompt: List packages in the BILLS collection added since 2026-06-01 and return the package IDs, titles, and download URLs for any bill mentioning 'artificial intelligence'.

### Federal Register Monitoring

Pull Federal Register issues published from a given date onward to surface new agency rules, proposed rules, and notices. Agents call /published/{dateStr} with the required collection filter set to FR, then fetch granule summaries to extract docket numbers, agency names, and effective dates. This avoids manual review of the daily issue, which can run hundreds of pages.

Example prompt: Get the Federal Register granules published on or after 2026-06-09 from the FR collection and return any granule whose agency field matches 'EPA'.

### Citation and Reference Lookup

Resolve a package ID such as a CFR title or public law citation into full bibliographic metadata, including official document URLs in XML, PDF, and HTML formats. Useful for legal research tools, academic citation generators, and AI assistants that need to ground answers in primary government sources rather than secondary commentary.

Example prompt: Call /packages/{packageId}/summary for packageId 'PLAW-117publ328' and return the title, congress, and PDF download URL.

### AI Agent Government Document Retrieval

An agent answering questions about U.S. law or regulations can call GovInfo via Jentic to ground responses in authenticated documents. Jentic exposes the search and package endpoints as tools, so the agent issues a search query, loads matching package IDs, and retrieves summaries - all while the GovInfo api_key stays in your Jentic One instance.

Example prompt: Search GovInfo for 'climate disclosure rules' across the FR collection in 2026, then fetch the package summary for the top-ranked result.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /collections | List available GPO content collections |
| GET | /packages/{packageId}/summary | Get bibliographic metadata for a package |
| GET | /packages/{packageId}/granules | List granules contained in a package |
| GET | /packages/{packageId}/granules/{granuleId}/summary | Returns metadata summary for a specific granule |
| GET | /published/{dateStr} | List packages with a dateIssued on or after the given start date |

## Key resources

- **Collections** — List GPO content collections (BILLS, FR, CFR, PLAW, CRPT, etc.) and their date ranges
- **Packages** — Document-level units containing metadata, citations, and rendered file URLs
- **Granules** — Sub-document sections within a package, such as individual notices in a Federal Register issue
- **Search** — Search service over GovInfo content, queried with a JSON request body carrying a query and field operators
- **Published** — Packages listed by dateIssued, from a given start date onward

## Why Jentic

- **Setup:** Wiring the GovInfo API by hand means setting up its API key auth and coding your own reads across the collections, packages, and search endpoints. Through Jentic you install once, import the GovInfo API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** GovInfo puts the collection and package id in the URL path (/collections/{collection}/{lastModifiedStartDate}, /packages/{packageId}/summary), and every operation here is read-only, so a rule can pin your agent to one collection or package. You choose the operations it may call, so any beyond those you name are not included.
- **Credential handling:** Your GovInfo API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find bills published on a date' or 'get a package summary', and Jentic returns the matching GovInfo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Congress.gov API** — Congress.gov focuses on bill status and member data; GovInfo focuses on the published documents themselves
- **Data.gov API** — Data.gov is the catalogue index for federal datasets; GovInfo is the document store for federal publications
- **Crossref API** — Crossref indexes academic publications with DOIs; GovInfo indexes U.S. government publications with package IDs

## FAQ

### What authentication does the GovInfo API use?

The GovInfo API uses an API key passed as the api_key query parameter on every request. Free keys are issued through api.data.gov. When called via Jentic, the key is stored encrypted in your Jentic One instance and injected at execution time so the agent never handles the raw credential.

### Can I search across all GovInfo collections at once with this API?

Yes, but the search service takes a POST, not a GET. GPO's official document declares only a POST operation on /search, and a GET to that path returns HTTP 400 with the message '/search does not support GET requests. Please use a POST method, supplying a JSON request body with your query.' The JSON body accepts query, pageSize, offsetMark, sorts, historical and resultLevel; there is no collection parameter, so you scope a query by using field operators such as congress and publishdate inside the query string. Results carry packageId values that can then be fetched via /packages/{packageId}/summary for full metadata.

### What are the rate limits for the GovInfo API?

GovInfo is fronted by the api.data.gov gateway, whose developer manual states that rate limits may vary by service but the default is an hourly limit of 1,000 requests per hour per API key. Exceeding it returns HTTP 429 with code OVER_RATE_LIMIT, and GovInfo's own message on that response points you to govinfo@gpo.gov. Plan batch jobs accordingly and cache package summaries since the underlying documents rarely change after publication.

### How do I retrieve documents published on or after a given date through Jentic?

Install Jentic One, import the GovInfo API from the Jentic API Directory, then have your agent search for 'retrieve government documents published on a date'. Jentic returns the GET /published/{dateStr} operation. Load its schema and supply dateStr in YYYY-MM-DD form. GPO's official document marks both the collection filter and pageSize as required on this operation, so pass a collection code such as FR and a pageSize as well; a call with no collection returns HTTP 500. The response lists packages with a dateIssued on or after that date, so filter or bound the result yourself if you need a single day.

### Is the GovInfo API free to use?

Yes, the GovInfo API is free. GPO's official document states that the API requires an API.data.gov key and links to its signup page at `https://www.govinfo.gov/api-signup`, and the api.data.gov developer manual puts the default at 1,000 requests per hour per key. GovInfo is operated by the U.S. Government Publishing Office as a public service.

### What document formats can I get back from a package?

Each package summary returned by /packages/{packageId}/summary includes download URLs for the formats GPO publishes for that document type - typically PDF, XML, HTML, and a metadata MODS file. Not every collection offers every format, so check the download object on the response before requesting a specific file.

### Is there a GovInfo API MCP server?

You do not need an MCP server to give your agent the GovInfo API. Jentic connects it directly from the Jentic API Directory: import the API, store your api.data.gov key once in your self-hosted Jentic One instance, and your agent gets the full 7-endpoint surface across collections, packages, granules, published dates, and search. Operations are discovered on demand, so no extra server's tool definitions sit in the agent's context, and your rules decide which of them the agent may call.

### Can I limit what my agent is allowed to do with the GovInfo API?

Yes. Because you run Jentic One yourself, your own rules decide which GovInfo operations the agent may call, so you can grant only the read operations you want, such as /search and /packages/{packageId}/summary while withholding the others. Since GovInfo puts the collection and package id in the URL path, a rule can pin the agent to a single collection like FR or CFR or to one package id. Every operation here is read-only, so the agent can retrieve and cite documents but cannot alter anything, and any operation you do not name is not available to it.
