ParseForge Scrapers

GovInfo Publications Scraper

parseforge/govinfo-publications-scraper

Developer toolsAIOther

Scrapes U.S. government publication metadata from GovInfo by collection, date range, and optional Congress or document class filters. Returns each publication as a flat row with its title, URL, and modification date.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
69
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

GovInfo Publications Scraper

Scrape official U.S. government publications from GovInfo by collection, date range, and Congress, up to a million per run. Every publication comes with its metadata, document links, and modification date. No API key required. Export to CSV, JSON, Excel, or XML.

The GovInfo API requires navigating complex collection codes and pagination logic to gather bulk publications. This Actor reads the official public sitemaps and feeds directly, filtering by collection, modification date, Congress number, or document class, and returns each matching publication in one consistent schema.

Who uses it What they scrape GovInfo for
Policy analysts Monitoring new bills and laws introduced or passed within a specific Congress.
Legal researchers Gathering public laws, statutes at large, and congressional reports for historical analysis.
Data journalists Tracking the daily output of the Federal Register and Congressional Record for newsworthy changes.
Compliance officers Collecting the latest Code of Federal Regulations updates to ensure organizational adherence.

What it does

This Actor collects U.S. government publication metadata from GovInfo by collection, date range, and optional Congress or document class filters, and returns each publication as a flat row.

  • ๐Ÿ“‹ Collection-based scraping: Target specific publication types like Bills, Federal Register, US Code, GAO Reports, and more from a dropdown of 15 official collections.
  • ๐Ÿ“… Date-range filtering: Set precise ISO 8601 start and end dates to capture only publications modified within a specific window.
  • ๐Ÿ›๏ธ Congress-specific targeting: Optionally filter results to a single Congress number, such as 118, for session-specific research.
  • ๐Ÿ“„ Document class refinement: Narrow results further by document class slug, like 'hr' for House bills or 's' for Senate bills.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with GovInfo data

๐Ÿ“œ Track new legislation.

A policy analyst runs the Actor daily on the BILLS collection for the current Congress to compile a list of all newly introduced or updated legislation.

๐Ÿ“Š Monitor regulatory changes.

A compliance team scrapes the Federal Register collection each morning to identify new rules and notices that impact their industry.

๐Ÿ—‚๏ธ Build a legal research database.

A legal tech startup collects the entire US Code and Public Laws collections to populate a searchable internal database of federal statutes.

๐Ÿ“ฐ Analyze congressional records.

A data journalist scrapes the Congressional Record for a specific date range to quantify speaking time and topic mentions by member.

Why choose this scraper

What you get
No API registration Access GovInfo's public feeds without signing up for an API key or managing OAuth.
Bulk metadata extraction Collect up to a million publication records in a single run for large-scale analysis.
Structured output Receive a clean, flat dataset ready for direct import into databases, spreadsheets, or analysis tools.
Historical and current coverage Pull both newly modified publications and historical records by adjusting the date range.

How it compares

No other Store actor targets GovInfo the same way, so the honest comparison is with the alternatives teams actually weigh.

GovInfo Publications Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When GovInfo changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from a selected GovInfo collection, a start date, and optional end date, Congress number, or document class, and filters run as each publication is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "startDate": "2025-01-01T00:00:00Z"
}

A larger pull:

{
 "maxItems": 200,
 "startDate": "2025-01-01T00:00:00Z"
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the GovInfo Publications Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to GovInfo through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/govinfo-publications-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your start date is not in the future and that the selected collection has records modified within your date range. Some collections, like the US Code, are updated less frequently.

Why is the run slow?

Large date ranges or high maxItems values will take longer. Try narrowing your date range or reducing the maximum publications to speed up the run.

I got fewer results than my maxItems setting.

This means there were fewer matching publications in the selected collection and date range than your requested maximum. The Actor returns all available matches.

The document class filter is not working.

Ensure you are using the correct slug format, such as 'hr' or 's', and that the selected collection supports document classes. Not all collections use this field.

Can I scrape multiple collections at once?

This Actor processes one collection per run. To scrape multiple collections, run the Actor multiple times with different collection settings, or use a separate orchestrator.

FAQ

Question Answer
What is GovInfo? GovInfo is the official website of the U.S. Government Publishing Office, providing free public access to official publications from all three branches of the Federal Government.
Do I need an API key to use this Actor? No. This Actor reads publicly available sitemaps and feeds, so no API key, registration, or authentication is required.
What collections can I scrape? You can scrape 15 collections including Bills, Congressional Record, Federal Register, US Code, Public Laws, GAO Reports, and the Code of Federal Regulations.
Can I filter by a specific Congress? Yes. Use the optional Congress number input to limit results to a specific session, such as 118 for the current Congress.
How do I filter by a specific type of bill? Use the optional document class input with a slug like 'hr' for House bills, 's' for Senate bills, or 'hres' for House resolutions.
What date format should I use? Use the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ. For example, 2025-01-01T00:00:00Z for midnight UTC on January 1, 2025.
How many publications can I get in one run? You can set the maximum up to 1,000,000 publications per run. The Actor will stop once it reaches your limit or exhausts the matching records.
What data does each publication record contain? Each row includes the publication's title, GovInfo URL, last modified date, collection code, and other available metadata from the sitemap.
Can I get the full text of a publication? This Actor extracts metadata and links. You can use the provided URL in each row to download the full PDF or HTML text from GovInfo.
Is this Actor suitable for historical research? Yes. By setting a past start date and no end date, you can collect metadata for publications going back many years, depending on the collection.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Government Publishing Office. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Maximum number of publications to collect per run. 10
collection string (15 options) GovInfo collection code (e.g. BILLS, CREC, FR, CRPT, USCODE, PLAW). BILLS
startDate string Earliest lastModified date to fetch. Format YYYY-MM-DDTHH:MM:SSZ. 2025-01-01T00:00:00Z
endDate string Latest lastModified date to fetch. Leave empty for now. not set
congress integer Optional filter by Congress (e.g. 118). not set
docClass string Optional document class slug (e.g. hr, s, hres, sres). not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~govinfo-publications-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run GovInfo Publications Scraper on Apify All scrapers