# Federal Register Scraper - Rules, Notices & Comment Deadlines (`publicrecords101/federal-register-scraper`) Actor

Extract US federal rules, proposed rules, notices and executive orders from the Federal Register: comment deadlines, effective dates, dockets, CFR parts and Regulations.gov comment counts. Filter by agency, type and keyword. No API key.

- **URL**: https://apify.com/publicrecords101/federal-register-scraper.md
- **Developed by:** [Public Records Data Tools](https://apify.com/publicrecords101) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 documents

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does the Federal Register Scraper do?

The **Federal Register Scraper** extracts documents from the [Federal Register](https://www.federalregister.gov), the
daily journal of the US government: **final rules**, **proposed rules**, **notices** and **presidential documents**
(executive orders, proclamations, memoranda). For each document you get the **agency**, the **summary**, the
**comment deadline**, the **effective date**, the **docket and RIN numbers**, the **CFR parts affected**, whether the rule
is **significant**, and the number of **public comments on Regulations.gov**, as clean JSON, CSV or Excel.

It reads FederalRegister.gov's official public API, so there is **no login and no API key**. Press **Start** to get
today's documents, or filter by agency, keyword, document type or "open for comment".

### What data can you extract from the Federal Register?

| Field | Example |
|---|---|
| `title`, `type`, `subtype`, `action` | Regulation Crypto Asset Transactions ..., Proposed Rule, Advanced notice of proposed rulemaking. |
| `agencies`, `agencySlugs` | Commodity Futures Trading Commission |
| `abstract` | The agency's summary |
| `publicationDate`, `effectiveDate`, `commentsCloseDate`, `signingDate` | 2026-10-13, 2026-12-14 |
| `dates` | Comments must be received on or before December 14, 2026. |
| `docketIds`, `regulationIdNumbers` | EPA-HQ-OAR-2023-0072, 3038-AF80 |
| `cfrReferences`, `topics` | 17 CFR 1, 17 CFR 38 |
| `significant` | true for rules with major economic or policy impact |
| `commentUrl`, `regulationsGovUrl`, `commentsCount` | Where to comment and how many comments were received |
| `executiveOrderNumber`, `president` | 14435 |
| `citation`, `volume`, `startPage`, `endPage`, `pageLength` | 91 FR 64811 |
| `url`, `pdfUrl`, `fullTextXmlUrl`, `rawTextUrl` | Links to the document, the official PDF and the full text |

Every field is described in the Actor's output schema.

### Who uses Federal Register data?

- **Compliance and regulatory affairs teams** tracking new rules and effective dates for their industry.
- **Government affairs, trade associations and law firms** watching proposed rules and comment deadlines.
- **Consultants and lobbyists** monitoring agencies and dockets for their clients.
- **Policy researchers and journalists** analysing rulemaking activity.
- **Legal-tech products and AI agents** that answer "what changed in the regulations for X this week?"

### How to use the Federal Register Scraper

1. Optionally enter a **keyword**, pick **document types** and **agencies** (by name, e.g. `Environmental Protection
   Agency`).
2. Narrow by **publication date**, **open for comment**, **significant rules only**, a **CFR title and part** or a
   **docket ID**.
3. Set **Maximum results** and press **Start**.
4. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

### How much does it cost to scrape the Federal Register?

This Actor uses **pay-per-result pricing**: you pay only for documents saved to your dataset. There is no monthly
fee and no separate charge for platform usage.

| Apify plan | Price per 1,000 documents |
|---|---|
| Free | $3.00 |
| Bronze | $2.70 |
| Silver | $2.40 |
| Gold | $2.00 |

**Example:** 1,000 documents cost **$3.00** on the free plan and **$2.00** on Gold. A test run with 20 results costs
$0.06. Each run also has Apify's standard start fee of $0.00005.

### Input example

```json
{
    "agencies": ["Environmental Protection Agency"],
    "documentTypes": ["PRORULE"],
    "openForComment": true,
    "maxItems": 100
}
```

### Output example

```json
{
    "documentNumber": "2026-20888",
    "title": "Regulation Crypto Asset Transactions and Regulation Crypto Asset Markets",
    "type": "Proposed Rule",
    "subtype": null,
    "action": "Advanced notice of proposed rulemaking.",
    "abstract": "The Commodity Futures Trading Commission (\"Commission\" or \"CFTC\") is issuing an advanced notice of proposed rulemaking ...",
    "agencies": ["Commodity Futures Trading Commission"],
    "agencySlugs": ["commodity-futures-trading-commission"],
    "publicationDate": "2026-10-13",
    "effectiveDate": null,
    "commentsCloseDate": "2026-12-14",
    "signingDate": null,
    "dates": "Comments must be received on or before December 14, 2026.",
    "citation": "91 FR 64811",
    "volume": 91,
    "startPage": 64811,
    "endPage": 64840,
    "pageLength": 30,
    "docketIds": [],
    "regulationIdNumbers": ["3038-AF80"],
    "cfrReferences": ["17 CFR 1", "17 CFR 38", "17 CFR 39"],
    "topics": [],
    "significant": null,
    "executiveOrderNumber": null,
    "president": "Donald Trump",
    "tocSubject": null,
    "correctionOf": null,
    "commentUrl": null,
    "regulationsGovDocumentId": null,
    "regulationsGovDocketId": null,
    "commentsCount": null,
    "regulationsGovUrl": null,
    "url": "https://www.federalregister.gov/documents/2026/10/13/2026-20888/regulation-crypto-asset-transactions-and-regulation-crypto-asset-markets",
    "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-10-13/pdf/2026-20888.pdf",
    "fullTextXmlUrl": "https://www.federalregister.gov/documents/full_text/xml/2026/10/13/2026-20888.xml",
    "rawTextUrl": "https://www.federalregister.gov/documents/full_text/text/2026/10/13/2026-20888.txt",
    "sourceUrl": "https://www.federalregister.gov/api/v1/documents.json",
    "scrapedAt": "2026-10-13T05:00:00.000Z"
}
```

### Get regulatory alerts every day

Turn on **Only new or updated** and add a **schedule** (for example every weekday at 7:00, after the Federal Register
is published). Each run then returns only documents that are new, or whose comment deadline, effective date or comment
count changed since your last run with the same filters, so you pay only for what you haven't seen. Connect a webhook,
email or Slack integration to get alerts.

### Large runs

The Federal Register API returns at most 10,000 documents per search. The Actor continues past that automatically by
publication date, so you can export a whole year or an agency's full history in one run.

### Integrations and API

Run the Actor from the Apify API, the JavaScript or Python client, or connect it to **Make**, **Zapier**,
**Google Sheets**, **Slack** and webhooks. Results can be exported as JSON, CSV, Excel, XML or RSS.

### Use with AI assistants (MCP)

The Actor works as a tool for AI agents through Apify's MCP server: the input fields have plain names and
descriptions, and a small run with a keyword returns in seconds.

### Other public-records scrapers

| Actor | Data |
|---|---|
| [Grants.gov Scraper](https://apify.com/publicrecords101/grants-gov-scraper) | Federal grant opportunities with deadlines, amounts and eligibility |
| [USAspending Scraper](https://apify.com/publicrecords101/usaspending-contracts-scraper) | Federal contract awards, including contracts ending soon (recompete leads) |
| [SEC EDGAR Filings Scraper](https://apify.com/publicrecords101/sec-edgar-scraper) | 8-K, 10-K, 10-Q and Form 4 filings for any list of tickers |
| [FDA Recalls Scraper](https://apify.com/publicrecords101/fda-recalls-scraper) | FDA food, drug and medical device recalls in one feed |
| [NIH RePORTER Scraper](https://apify.com/publicrecords101/nih-reporter-scraper) | NIH-funded research projects: newly funded labs, PIs and amounts |

### FAQ

**Is it legal to scrape the Federal Register?** Federal Register documents are US government works and not subject to
copyright. This Actor reads only the official public API, which FederalRegister.gov provides for programmatic use, at a
polite rate. It is not affiliated with the Office of the Federal Register or NARA. You are responsible for how you use
the data.

**Does it return the full text?** It returns links to the full text (plain text, XML, PDF) for every document. Ask on
the Issues tab if you need the text itself in the dataset.

**How fresh is the data?** Each run reads the API live. New documents appear every business day.

**Something is wrong or missing?** Open an issue on the Actor's Issues tab and we'll reply within 48 hours. Custom
filters or data joins are welcome too.

# Changelog

This Actor's version history is a separate document: https://apify.com/publicrecords101/federal-register-scraper/changelog.md

# Actor input Schema

## `keyword` (type: `string`):

Words to search for in the full text, e.g. PFAS, crypto, Medicare. Leave empty for all.

## `documentTypes` (type: `array`):

Leave empty for all types.

## `agencies` (type: `array`):

Agency names or Federal Register slugs, e.g. Environmental Protection Agency, food-and-drug-administration. Leave empty for all.

## `publishedWithinDays` (type: `string`):

Only documents published recently.

## `publishedFrom` (type: `string`):

Only documents published on or after this date.

## `publishedTo` (type: `string`):

Only documents published on or before this date.

## `openForComment` (type: `boolean`):

Only documents whose public comment period has not closed yet.

## `significantOnly` (type: `boolean`):

Only rules OMB deems significant (major economic or policy impact).

## `cfrTitle` (type: `integer`):

Only documents affecting this Code of Federal Regulations title, e.g. 21 (Food and Drugs), 40 (Environment).

## `cfrPart` (type: `string`):

Only documents affecting this part of the CFR title above, e.g. 60.

## `docketId` (type: `string`):

Only documents in this agency docket, e.g. EPA-HQ-OAR-2023-0072.

## `onlyNew` (type: `boolean`):

Skip documents your earlier runs with the same filters already returned, unless their dates or comment count changed since. Use with a schedule for daily regulatory alerts.

## `maxItems` (type: `integer`):

Stop after this many documents.

## Actor input object example

```json
{
  "keyword": "PFAS",
  "documentTypes": [
    "RULE",
    "PRORULE"
  ],
  "agencies": [
    "Environmental Protection Agency"
  ],
  "publishedWithinDays": "7",
  "publishedFrom": "2026-01-01",
  "publishedTo": "2026-06-30",
  "openForComment": true,
  "significantOnly": false,
  "cfrTitle": 40,
  "cfrPart": "60",
  "docketId": "EPA-HQ-OAR-2023-0072",
  "onlyNew": true,
  "maxItems": 500
}
```

# Actor output Schema

## `results` (type: `string`):

Documents found by this run, one per row.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("publicrecords101/federal-register-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 20 }

# Run the Actor and wait for it to finish
run = client.actor("publicrecords101/federal-register-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 20
}' |
apify call publicrecords101/federal-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,publicrecords101/federal-register-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WczJ0UfwByeCSWuyg/builds/ofV3LezZ7sLK1K9ac/openapi.json
