📜 Federal Register Scraper avatar

📜 Federal Register Scraper

Pricing

from $4.00 / 1,000 rulemaking records

Go to Apify Store
📜 Federal Register Scraper

📜 Federal Register Scraper

Stop checking Federal Register and Regulations.gov separately. Get rules, docket IDs, public-comment counts, agency IDs, CFR parts, and days-to-close fields in one row. Add a free Regulations.gov key for comment enrichment. Export, run via API, schedule, or integrate with other tools.

Pricing

from $4.00 / 1,000 rulemaking records

Rating

0.0

(0)

Developer

Skootle

Skootle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Stop checking two government systems for every rule

Never miss a federal comment deadline because Federal Register rules and Regulations.gov dockets live in separate systems. One run searches the rules, normalizes agency and CFR data, and, with a free API key, joins docket and public-comment context.

  • Catch proposed rules before comment windows close.
  • See official rule links, agency IDs, CFR references, docket IDs, and comment activity together.
  • Schedule agency or topic searches and send results to alerts, spreadsheets, databases, or client briefings.

Federal Rulemaking Monitor hero

TL;DR

Search Federal Register rules, proposed rules, notices, and presidential documents by agency, keyword, CFR title or part, document type, and publication date. With a free Regulations.gov API key, matching rows also include docket IDs, public-comment counts, and recent comment excerpts. Every record includes official links, normalized agency and CFR fields, isOpenForComment, and ready-to-filter deadline countdowns when the source publishes those dates.

Verified cloud proof: a July 17 standard run returned 5 proposed-rule records with 0 recorded errors. A separate Regulations.gov-enabled run returned 10 rules, matched 9 dockets, and attached recent public comments to 8 rows with 0 recorded errors. Inspect the public enriched sample dataset.

Try it on a small dataset, then let us know what you think in a review.


What does Federal Rulemaking Monitor do?

The Federal Register publishes every U.S. federal rulemaking action - proposed rules, final rules, notices, and presidential documents - at federalregister.gov under a public API. Regulations.gov publishes the matching docket for each rulemaking, including all public comments filed during the comment period, at api.regulations.gov. The two systems are designed to be cross-referenced, but the cross-reference requires a separate API call per document, and most existing scrapers stop at one source.

This Actor always searches the Federal Register. When enrichWithRegulationsGov is enabled with a valid API key, it also looks up a matching Regulations.gov document by FR document number. If a match exists, the row gains its docket ID, comment count, and up to the requested number of recent comments; otherwise those fields remain null or empty.

The Actor adds three monitor-ready enrichments:

  1. Canonical agency IDs. "Environmental Protection Agency", "Defense Department", and defense-department all map to short canonical IDs like EPA, DOD. Buyers filtering "all EPA rulemakings" don't have to enumerate every name variation.
  2. daysUntilCommentClose and daysUntilEffective countdowns derived from the rule's comment-end and effective dates, computed against the run time. Monitor workflows ("alert me if any EPA rule has a comment period closing in the next 7 days") become one filter expression.
  3. isOpenForComment boolean so binary filters work out of the box.

Why scrape federal rulemaking?

Federal rulemaking affects compliance, product, legal, and policy decisions across industries. Lobbyists, regulatory-affairs teams, trade associations, and researchers monitor it continuously. The official APIs are free, but the buyer workflow often requires three integration steps:

  1. Cross-reference FR ↔ Regulations.gov. Many proposed rules have a public-comment docket on Regulations.gov. Matching by frDocNum requires a second API workflow, and unmatched rows must remain valid without enrichment.
  2. Agency taxonomy. FR returns the agency name as a free-text string and the slug in one of two competing formats (department-of-x and x-department). Without canonicalization, agency-level analytics fragment across both forms.
  3. Date arithmetic. Comment-period close dates and effective dates live in the document, but the days remaining is what monitor pipelines actually need - and they recompute it every time the document is read. Bake it in once at scrape time.

This actor handles all three. The output is a daily-monitor-ready dataset where the only thing your downstream system has to do is filter.

Who needs this?

  • In-house regulatory-affairs teams at Fortune 500s (healthcare, energy, finance, telecom) monitoring proposed rules affecting their industry.
  • Lobbyists and government-affairs agencies preparing comment-letter campaigns. The recent-comments field surfaces what other organizations have already filed.
  • Trade associations running weekly digests of rulemakings affecting their member companies.
  • AI-policy and tech-policy think tanks tracking proposed rules across multiple agencies on a single topic ("AI safety", "biometric data").
  • Public-affairs and ESG analysts at PE / VC firms doing diligence on regulatory exposure of portfolio companies.
  • Law firms building regulatory-compliance update services for clients.
  • AI agents and automation pipelines that need a daily / weekly digest of new rulemakings piped into Slack, an LLM context, or a structured DB.

How to use Federal Rulemaking Monitor

  1. Open the actor in the Apify Console.
  2. Set at least one filter: searchTerm, agencyKeywords, cfrTitle, documentTypes, or a publicationDate range.
  3. (Optional) Set regulationsGovApiKey to enable comment-data enrichment. The actor still works without it but skips comment fields. Free key at https://open.gsa.gov/api/regulationsgov/ (5-minute signup).
  4. (Optional) Tune recentCommentsPerDoc (default 5).
  5. Set maxItems (default 10 for trial; production typically 100-1000).
  6. Click Start.

How much will scraping federal rulemaking cost?

Pricing is per-result (per Federal Register document written to the dataset). Regulations.gov enrichment calls do not incur a separate event charge - they piggyback on the document event.

Plan tierPer-result price
FREE$0.008
BRONZE$0.006
SILVER$0.005
GOLD$0.004
PLATINUM$0.004
DIAMOND$0.004

A 10-row trial costs $0.08 on the FREE tier or $0.04 on GOLD. The final cost depends only on the number of Federal Register records saved; use maxItems to set a predictable ceiling.

Yes. Both are official U.S. government publication systems explicitly released for public reuse. The Federal Register is published under 44 U.S.C. § 1505. Regulations.gov is operated by GSA and the official API is documented at https://open.gsa.gov/api/regulationsgov/. No authentication is needed for Federal Register; Regulations.gov uses an API-key system designed for third-party developers (free tier, 1000 requests/hour). This actor honors rate limits on both sources.

The data describes named individuals only in the case of public comments submitted by named individuals (who self-disclosed). Downstream use is bound by general privacy law in your jurisdiction; consult your own counsel for customer-facing products.

Examples

Daily climate rulemaking monitor.

{
"searchTerm": "climate",
"documentTypes": ["RULE", "PRORULE"],
"publicationDateFrom": "2026-07-01",
"maxItems": 100
}

EPA proposed rules with open comment periods.

{
"agencyKeywords": ["environmental-protection-agency"],
"documentTypes": ["PRORULE"],
"maxItems": 50
}

All rules referencing 17 CFR (Securities and Commodities).

{
"cfrTitle": 17,
"documentTypes": ["RULE", "PRORULE"],
"publicationDateFrom": "2026-07-01",
"maxItems": 200
}

Track CMS healthcare rulemaking.

{
"agencyKeywords": ["centers-for-medicare-medicaid-services"],
"documentTypes": ["RULE", "PRORULE", "NOTICE"],
"maxItems": 50,
"enrichWithRegulationsGov": true,
"regulationsGovApiKey": "PASTE-YOUR-KEY"
}

AI-policy comprehensive sweep across agencies.

{
"searchTerm": "artificial intelligence",
"documentTypes": ["RULE", "PRORULE", "NOTICE"],
"publicationDateFrom": "2026-07-01",
"maxItems": 200
}

Watch for new PFAS rules.

{
"searchTerm": "PFAS",
"documentTypes": ["RULE", "PRORULE"],
"publicationDateFrom": "2026-07-01",
"maxItems": 100
}

Input parameters

FieldTypeDescription
searchTermstringFree-text search across titles, abstracts, full text.
documentTypesstring[]RULE, PRORULE, NOTICE, PRESDOCU.
agencyKeywordsstring[]Federal Register agency slugs.
cfrTitleintegerRestrict to rules referencing a CFR title.
cfrPartintegerUse with cfrTitle for a specific part.
publicationDateFromstringISO date inclusive.
publicationDateTostringISO date inclusive.
enrichWithRegulationsGovbooleanJoin to Regulations.gov dockets (default true).
regulationsGovApiKeystringFree key - required for enrichment.
recentCommentsPerDocinteger0-25 comments per doc (default 5).
maxItemsintegerUpper bound on rows. Default 10 (trial); production 100-1000.

Output format

FieldTypeNotes
recordTypestringAlways "rulemaking".
outputSchemaVersionstring"2026-05-12" until breaking change.
documentNumberstringFR document number.
titlestringRule title as published.
abstractstringPlain-text summary.
documentTypestringProposed Rule / Rule / Notice / Presidential Document.
agencyCanonicalIdsstring[]Short canonical IDs (EPA, CMS, SEC, etc.).
agencyNamesstring[]Full agency names.
cfrReferencesobject[]{title, part, chapter} typed numerics.
topicsstring[]FR taxonomy terms.
publicationDatestringISO date.
effectiveDatestringISO date or null.
commentEndDatestringISO date or null.
daysUntilCommentCloseintegerComputed at scrape time; negative means closed.
daysUntilEffectiveintegerComputed at scrape time.
isOpenForCommentbooleanTrue iff commentEndDate is in the future.
htmlUrl, pdfUrl, publicInspectionPdfUrlstringSource URLs.
regulationsGovDocketIdstringE.g. "EPA-HQ-OAR-2026-1234".
regulationsGovDocketUrlstringPublic docket page.
totalCommentCountintegerTotal comments on the docket.
recentCommentsobject[]Most recent N with {id, postedDate, title, excerpt, submitterName, organization, documentType}.
fieldCompletenessScoreinteger0-100.
agentMarkdownstringDrop-into-LLM card.

The record below came from the verified Regulations.gov-enabled cloud run:

{
"recordType": "rulemaking",
"outputSchemaVersion": "2026-05-12",
"documentNumber": "2026-04388",
"title": "Clean Water Act Hazardous Substance Facility Response Plans: Compliance Date Delay and Changes To Reflect Administration Policy",
"agencyCanonicalIds": ["EPA"],
"publicationDate": "2026-03-05",
"regulationsGovDocketId": "EPA-HQ-OLEM-2021-0585",
"totalCommentCount": 251,
"recentComments": [{
"id": "EPA-HQ-OLEM-2021-0585-0431",
"postedDate": "2026-04-13",
"title": "Comment submitted by Native Village of Dot Lake",
"documentType": "Public Submission"
}],
"htmlUrl": "https://www.federalregister.gov/documents/2026/03/05/2026-04388/clean-water-act-hazardous-substance-facility-response-plans-compliance-date-delay-and-changes-to"
}

During the Actor run

The actor queries the Federal Register /api/v1/documents endpoint, paging 100 rows at a time. For each document, if Regulations.gov enrichment is enabled, it issues two follow-up calls (1) to find the matching docket by frDocNum, (2) to pull recent comments on that docket. Records push to the default dataset as they're normalized.

KV store artifacts:

  • OUTPUT: counts, agencies covered, by-type breakdown, API call counts, errors.
  • AGENT_BRIEFING: markdown digest highlighting comment periods closing in the next 30 days.

FAQ

How is this different from a free Federal Register scraper?

The value here is the verified workflow: Federal Register search, optional Regulations.gov docket and comment enrichment, normalized agency and CFR fields, date arithmetic, direct source links, and agent-ready output in one run.

Can I monitor only new rules since my last run?

Yes - schedule the actor to run daily with the same input parameters and a publicationDateFrom set to "yesterday". The actor will emit only rules published in that window. Dedupe downstream on documentNumber for safety.

Do I need a Regulations.gov API key?

Only if you want comment data attached. The actor works without it but skips the docket join + comment fields. The free key is straightforward - visit https://open.gsa.gov/api/regulationsgov/, click "Get a key", fill the form, key arrives by email within minutes. Free tier is 1000 requests/hour.

Can I use this with Python / Make / Zapier / n8n / Slack?

Yes. The Apify Python client and all four integrations are first-class. The agentMarkdown field is designed for direct posting into a Slack channel.

What about FR documents that don't have a Regulations.gov docket?

Some FR documents (presidential documents, certain notices) have no matching docket. The actor leaves regulationsGovDocketId, totalCommentCount, and recentComments null on those rows. The rule data itself is still complete.

How fresh is the Federal Register data?

Federal Register publishes on weekdays. For monitoring, schedule recurring runs with an overlapping publication-date window and deduplicate on documentNumber.

Can I filter to one agency without listing every variation?

The actor canonicalizes agencies into short IDs like EPA, but filtering at the Federal Register query layer requires their slug format. Use agencyKeywords: ["environmental-protection-agency"]. The output field agencyCanonicalIds is the post-processing convenience.

Why are comments truncated?

Comments are truncated to 400 chars in the excerpt field to keep dataset rows manageable. The full text is available at https://www.regulations.gov/comment/{id}. Most LLM use cases need only the excerpt to classify support/oppose/neutral.

Your feedback

Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).

Why choose Federal Rulemaking Monitor

  • Joined FR + Regulations.gov fields in a single dataset row when a matching public docket is available.
  • Canonical agency IDs that collapse both slug variants and full agency names into a single short ID. Filter EPA once, not three ways.
  • Date countdowns baked in. daysUntilCommentClose and daysUntilEffective are computed at scrape time. No client-side date math.
  • isOpenForComment boolean for one-filter monitor pipelines.
  • Recent-comments excerpts attached to each docket, ready for LLM classification (support / oppose / neutral / data-quality).
  • Versioned schema (outputSchemaVersion: "2026-05-12"). Breaking changes bump the version.
  • fieldCompletenessScore per record for self-filtering of sparse rows.
  • agentMarkdown per record + AGENT_BRIEFING.md per run for direct LLM / Slack consumption.

Other Skootle actors you might want to check

Support and contact

Open an issue at the Issues tab for bugs, schema requests, or new filter ideas. Typical response time 48 hours.