U.S. GPO GovInfo API
U.S. GPO GovInfo API
The U.S. Government Publishing Office provides JSON discovery and retrieval services for official federal publications and their metadata. Packages expose identifiers, titles, collection codes, issue and modification dates, document classes and links to available PDF, text, XML, MODS, PREMIS or ZIP content; a free API key is required.
Coverage
GovInfo spans official publications from the legislative, executive and judicial branches, organized into collections and self-describing packages. Discovery can filter by issue date or track additions and revisions by last-modified time; paged calls return at most 1,000 records.
Verdict
This API gives a document and policy-event signal across congressional, regulatory, presidential and court publications. Use issue date for the publication's stated date and last-modified time for GovInfo ingestion or later updates. Collection schemas and available file formats differ, and some generated ZIP requests can return HTTP 503 with a retry interval. Government works are generally public domain in the United States, but GovInfo warns that publications can contain separately copyrighted material.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load updated GovInfo Federal Register packages into Parquet. Checked against the provider's documentation on Nov 2, 2026.
Access
- Create a free API.data.gov key through the GovInfo signup page.
- Set GOVINFO_API_KEY in the environment; do not put the key in source code.
Request
curl --get --data-urlencode 'offsetMark=*' --data-urlencode 'pageSize=100' --data-urlencode "api_key=$GOVINFO_API_KEY" 'https://api.govinfo.gov/collections/FR/2026-10-01T00:00:00Z'Format
JSON package listings with packageId, title, docClass, dateIssued, lastModified, packageLink, count and cursor-style nextPage metadata.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""Recently updated GovInfo Federal Register packages -> pandas -> Parquet."""
import os
import requests
import pandas as pd
URL = "https://api.govinfo.gov/collections/FR/2026-10-01T00:00:00Z"
params = {
"offsetMark": "*",
"pageSize": 100,
"api_key": os.environ["GOVINFO_API_KEY"],
}
response = requests.get(URL, params=params, timeout=60)
response.raise_for_status()
payload = response.json()
df = pd.json_normalize(payload["packages"])
for column in ["dateIssued", "lastModified"]:
df[column] = pd.to_datetime(df[column], utc=True, errors="coerce")
df.to_parquet("govinfo_federal_register_updates.parquet", index=False)
print(len(df), "packages", df["lastModified"].min().isoformat(), "to",
df["lastModified"].max().isoformat())Not run: it needs a free API key.
Limits
- Rate limit: 36,000 requests per hour, 1,200 requests per minute and 40 requests per second.
- pageSize has a maximum of 1,000 records.
- Start offsetMark with * and follow the nextPage cursor returned by the API.
Quirks
- dateIssued is the publication's issue date; lastModified tracks when GovInfo added or updated the package.
- Package and granule schemas vary by collection, and not every package exposes every download format.
- Some ZIP files are generated on request and can return HTTP 503 with a Retry-After header.
Terms and attribution
- U.S. government works are generally public domain within the United States, but publications can include protected third-party material.
- The API project's CC0 licence applies to the project itself and is not treated here as a blanket licence for every publication exposed through GovInfo.
Sources
- https://www.govinfo.gov/developers: “Our API is intended to provide data users with a simple means to programmatically access GovInfo content and metadata, which is stored in self-describing packages.”
- https://raw.githubusercontent.com/usgpo/api/main/README.md: “36,000 requests per hour (Primary Rate limit)”
- https://raw.githubusercontent.com/usgpo/api/main/README.md: “`pageSize` is limited to **1000** results.”
- https://www.govinfo.gov/about/policies: “Government publications may contain copyrighted material which was used with permission of the copyright owner.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer