Federal Register Data Scraper (Rules & Notices JSON)
Pricing
from $1.60 / 1,000 document delivereds
Federal Register Data Scraper (Rules & Notices JSON)
Pull US Federal Register documents from the official public API. Filters: date, type, agency or keyword. Deduplicated. For regulatory and compliance monitoring.
Pricing
from $1.60 / 1,000 document delivereds
Rating
0.0
(0)
Developer
Steadfetch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Features
Share
This Actor returns US Federal Register documents from the official Federal Register API: one validated JSON item per document with document number, title, type, publication date, publishing agencies, abstract, citation, effective and comment deadlines, docket and regulation identifiers, and official HTML/PDF links - for regulatory monitoring, compliance tracking and public-policy research.
Tested daily. Last verified: 2026-10-30
What it does
- Calls
https://www.federalregister.gov/api/v1/documents.json, the official developer API: keyless, public, plain HTTP - no login, no CAPTCHA, no browser. The Federal Register limits programmatic access to its developer APIs, so this Actor never scrapes the HTML site. - Filters by publication-date window (
since/until, defaulting to the last 7 days), document type (RULE,PRORULE,NOTICE,PRESDOCU), agency (official slug or human name, resolved against the official/agenciesendpoint) and full-text keyword. - Monitor mode (default) keeps a per-filter deduplication state in the Actor's key-value store and emits only documents whose
document_numberwas never delivered by an earlier run with the sametype/agency/keywordfilters; re-running the same monitor never bills the same document twice. Search mode emits every matching document in the window, deduplicated within the run, for one-off research or backfills. - Validates every item against
.actor/dataset_schema.jsonbefore it reaches the dataset; withstrictSchema: true(the default) an invalid item fails the run instead of pushing malformed data. - Returns documents and agencies only: no personal names, email addresses or phone numbers exist in the output schema. The data is public US government information.
- Limits: the monitor state keeps the 20,000 most recent document numbers, and
maxResultscaps each run at 5,000 documents; paging stops as soon as that many new documents are collected.
How to use
- Run it from the terminal with the Apify CLI, using the same input as the Store example:
$apify call steadfetch/federal-register-monitor --input='{"mode":"search","since":"2026-10-01","maxResults":10}'
- Or open the Run tab in the Apify console: keep
mode: monitorfor a standing watch, or switch tosearchfor a backfill of the selected window. - Narrow the feed with
type,agency(slug or name) andkeyword; set thesince/untilwindow or rely on the default last 7 days. - Schedule the run and read new documents from the default dataset; the monitor state ensures only unseen documents are pushed and billed.
Input
Input fields
| Field | Type | Required | Default/Prefill | Description | Example |
|---|---|---|---|---|---|
mode | string (select) | No | Default monitor | monitor: emit only documents not delivered by previous runs with the same type/agency/keyword filters. search: emit every matching document in the window, deduplicated within the run. | search |
since | string | No | Default: 7 days before the run date (UTC) | Earliest publication date (YYYY-MM-DD, inclusive). | 2026-10-01 |
until | string | No | Default: the run date (UTC) | Latest publication date (YYYY-MM-DD, inclusive). | 2026-10-20 |
type | string (select) | No | None | Document type: RULE (final rule), PRORULE (proposed rule), NOTICE or PRESDOCU (presidential document). | PRORULE |
agency | string | No | None | Agency slug or name; names are resolved against the official /agencies endpoint. | securities-and-exchange-commission |
keyword | string | No | None | Optional full-text search term. | emissions |
maxResults | integer | No | Default 100; minimum 1; maximum 5,000 | Maximum number of documents to save to the dataset. | 10 |
strictSchema | boolean | No | Default true | Fail the run when an item does not match the output schema. Keep enabled: Steadfetch never publishes Actors without output-schema validation. | true |
No input field is required; an empty run monitors the last 7 days across all agencies.
Example input
{"mode": "search","since": "2026-10-01","maxResults": 10}
Focused monitor on SEC proposed rules:
{"mode": "monitor","since": "2026-10-01","type": "PRORULE","agency": "Securities and Exchange Commission","keyword": "fund","maxResults": 500}
Output
Example output
One record per document, built from the published dataset schema examples:
{"url": "https://www.federalregister.gov/documents/2026/10/20/C1-2026-20360/interval-fund-modernization-expansion-of-multiple-share-class-to-registered-closed-end-management","title": "Interval Fund Modernization","scrapedAt": "2026-10-20T08:30:00.000Z","document_number": "C1-2026-20360","type": "Proposed Rule","publication_date": "2026-10-20","agencies": ["Securities and Exchange Commission"],"abstract": "","citation": "91 FR 56776","effective_on": "2026-09-03","comments_close_on": "2026-12-04","docket_ids": ["NRC-2026-0001"],"regulation_id_numbers": ["2060-AB20"],"html_url": "https://www.federalregister.gov/documents/2026/10/20/C1-2026-20360/interval-fund-modernization-expansion-of-multiple-share-class-to-registered-closed-end-management","pdf_url": "https://www.govinfo.gov/content/pkg/FR-2026-10-20/pdf/C1-2026-20360.pdf","source_url": "https://www.federalregister.gov/api/v1/documents/C1-2026-20360.json"}
Optional dates (effective_on, comments_close_on) and pdf_url are omitted when the source has no value; abstract and citation are empty strings in that case and identifier arrays are empty.
Output fields
| Field | Type | Description |
|---|---|---|
url | string (URI) | Public Federal Register page for the document (same as html_url). |
title | string | Document title. |
scrapedAt | string (date-time) | ISO 8601 UTC timestamp of the run. |
document_number | string | Official document number; the deduplication key. |
type | string (enum) | Document type: Rule, Proposed Rule, Notice or Presidential Document. |
publication_date | string (date) | Publication date. |
agencies | array of strings | Publishing agencies and sub-agencies, by display name. |
abstract | string | Official abstract; empty string when the source has none. |
citation | string | Federal Register citation (volume and page); empty string when absent. |
effective_on | string (date) | Effective date, when the document declares one. |
comments_close_on | string (date) | Comment deadline, when the document has one. |
docket_ids | array of strings | Docket identifiers. |
regulation_id_numbers | array of strings | Regulation identifier numbers. |
html_url | string (URI) | Official HTML page of the document. |
pdf_url | string (URI) | Official PDF, when the API provides one. |
source_url | string (URI) | Official per-document API endpoint used to retrieve this document. |
Pricing
Pay-per-event pricing from .actor/pay_per_event.json, using only the two synthetic platform events:
| Event | Charged when | Price |
|---|---|---|
apify-actor-start | a run starts | 0.00005 USD per run; includes the first 5 seconds of compute |
apify-default-dataset-item | a new, validated document is saved to the dataset | 0.002 USD per document = 2.00 USD per 1,000 documents |
monitor-check | a watched item is checked in a monitor run | 0.0007 USD per check = 0.7 USD per 1,000 checks |
Cost per 1,000 documents: one JSON request (per_page 1000) and a few seconds of a 256 MB container; measured locally with apify run, 1,000 documents fetched, mapped, validated and written in 7.5 seconds end to end, roughly 0.0001 USD of compute plus the run-start event, well below 0.01 USD per 1,000 - gross margin above 99% at the 2.00 USD price.
Results are never double billed: monitor-check bills the check itself in monitor mode, and apify-default-dataset-item charges each pushed document once. Items that fail schema validation are not pushed and are not billed as dataset items, and runs that return nothing cost only the automatic run-start event; API errors, retries and documents skipped by monitor deduplication are never charged.
Works on the Apify free plan - about 2,499 documents for the $5 monthly credit ((5.00 USD - 0.0002 USD run-start at the default 4 GB memory) / 0.002 USD per document).
Other Steadfetch Actors
- SEC EDGAR Monitor - SEC filings to pair with the rulemakings that drive them.
- FDA Recall Monitor - FDA enforcement recalls, the operational side of FDA rulemaking.
- openFDA Drug Labels Extractor - the drug labels affected by FDA labelling rules you track here.
- CPSC Recall Monitor - consumer-product recall alerts tied to CPSC safety regulation.
FAQ
Do I need a Federal Register API key? No. The documents API is keyless and public, and it returns structured JSON, so plain HTTP is enough - no browser, no proxy.
How does monitor deduplication work?
The Actor stores the document_number of every delivered document in a key-value store that persists between runs, under a key derived from the type/agency/keyword filters. The date window is deliberately excluded from that signature, so widening it does not re-deliver documents the same monitor already saw. The state keeps the 20,000 most recent document numbers.
What is the difference between monitor and search mode?
monitor emits only documents never delivered by an earlier run with the same filters; search emits every matching document in the window, deduplicated within the run. Both use the same official API and filters.
Does it return personal data? No. Only documents and agencies are returned; the output schema has no personal names, email addresses or phone numbers.
When am I charged?
Once per run start (apify-actor-start) and once per new validated document (apify-default-dataset-item). Empty results, failed requests, retries and already-delivered documents are not charged.
Support
Report bugs through the Issues tab of this Actor's Apify Store page or through the steadfetch actors repository issues. Include the run ID (visible in the Apify console on the run) and the exact input JSON you used, so the problem can be reproduced against the same filters.
Maintenance
Registered for the Steadfetch daily catalog QA (enablement pending); tests run in CI on every push. Target: tested daily - the Actor is registered for the Steadfetch catalog QA schedule (enablement pending as of 2026-10-22). The default test suite runs against committed API fixtures covering the response shape, pagination, agency-name resolution, monitor deduplication and schema validation; any break is reported as an issue in the Steadfetch Actors repository.