# Federal Register Scraper — US Rules, Notices & Deadlines (`datadeltas/federal-register-scraper`) Actor

Search every Federal Register document since 1994 by keyword, agency, docket, RIN or date: proposed rules, final rules, notices and presidential documents — with comment deadlines and days remaining already worked out.

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

## Pricing

from $2.80 / 1,000 document scrapeds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Federal Register Scraper — US Rules, Notices & Deadlines

Every document the US government publishes in the Federal Register since
1994, searchable by keyword, agency, docket, RIN or date — proposed rules,
final rules, notices and presidential documents — with **the comment
deadline and days remaining already worked out**.

**No API key. No account.** Federal Register documents are US Government
works in the public domain, read through the Office of the Federal
Register's own published API.

### Why this one

Most Federal Register tools hand you a title and a link. The value is in the
fields you need to *act*: which docket a rule belongs to, which RIN it
carries across its lifecycle, which CFR parts it touches, and **how many days
you have left to comment**. This actor resolves all of them per document.

### Example output record

```json
{
  "documentNumber": "2026-16912",
  "title": "Regulation Crypto Assets",
  "type": "Proposed Rule",
  "action": "Notice of proposed rulemaking.",
  "publicationDate": "2026-08-21",
  "commentsCloseOn": "2026-10-20",
  "commentDaysRemaining": 47,
  "commentWindowOpen": true,
  "significant": true,
  "agencyNames": ["Securities and Exchange Commission"],
  "agencySlugs": ["securities-and-exchange-commission"],
  "docketIds": ["Release Nos. 33-11434"],
  "regulationIdNumbers": ["3235-AN38"],
  "cfrReferences": ["17 CFR 200", "17 CFR 201"],
  "topics": ["Securities"],
  "startPage": 54120,
  "endPage": 54188,
  "url": "https://www.federalregister.gov/documents/2026/08/21/2026-16912/regulation-crypto-assets",
  "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-08-21/pdf/2026-16912.pdf"
}
```

### Input options

| Option | Default | What it does |
|---|---|---|
| `term` | — | Full-text search across titles, abstracts and document text |
| `agencies` | — | Agency names, slugs or federalregister.gov agency URLs — all three forms work |
| `documentTypes` | all | `RULE`, `PRORULE`, `NOTICE`, `PRESDOCU` |
| `publishedFrom` / `publishedTo` | — | Publication date range, `YYYY-MM-DD` |
| `commentsOpenOnly` | `false` | Keep only documents you can still comment on |
| `significantOnly` | `false` | Only significant regulatory actions under EO 12866 |
| `docketId` | — | Follow one rulemaking docket, e.g. `EPA-HQ-OW-2026-0123` |
| `order` | `newest` | `newest`, `oldest` or `relevance` |
| `maxItems` | `500` | Hard cap per run |

### Use cases

- **Comment-deadline watch.** Set `commentsOpenOnly` with your keywords and
  schedule it daily: every rule you can still influence, sorted by days left.
  Search terms: *federal register api*, *proposed rule alerts*.
- **Docket tracking.** Give it a `docketId` or RIN and follow one rulemaking
  from proposal to final rule. Search terms: *regulations docket tracker*.
- **Agency monitoring for compliance teams.** Filter by `agencies` and
  `significantOnly` to see what your regulator is actually doing this quarter.
  Search terms: *SEC rules scraper*, *EPA regulations feed*.

### Honest limits

- **The API caps any single query at 10,000 documents**, no matter how you
  page. Narrow the date range to go deeper; the log tells you when a query
  is capped rather than quietly truncating.
- `significant` is `null` on documents where the agency did not set the flag.
  Absent is not the same as false.
- Full document *text* is not copied into the dataset — every row carries
  `url`, `pdfUrl` and `fullTextXmlUrl` so you can fetch the text you need.
- Search is the API's own full-text index; it is not a regex over documents.

### Pricing

Pay per event: **$0.004 per document returned**. A 500-document sweep is
$2. Runs that match nothing cost nothing beyond the platform's start fee.

### Changelog

- **0.1** — first release: keyword, agency, type, docket, significance and
  date filters; comment-deadline derivation; agencies, RINs, CFR references
  and dockets resolved per document.

# Actor input Schema

## `term` (type: `string`):

Full-text search across titles, abstracts and document text. Leave empty to take everything matching the other filters.

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

Agency names, slugs or federalregister.gov agency URLs - e.g. 'Environmental Protection Agency' or 'securities-and-exchange-commission'. Any match is included.

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

Restrict to particular types. Empty means all four.

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

Earliest publication date, YYYY-MM-DD.

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

Latest publication date, YYYY-MM-DD.

## `commentsOpenOnly` (type: `boolean`):

Keep only documents whose comment deadline has not passed - the ones you can still act on.

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

Restrict to documents flagged significant under Executive Order 12866.

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

Track one rulemaking docket, e.g. EPA-HQ-OW-2026-0123.

## `order` (type: `string`):

Sort order for results.

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

Hard cap on documents returned in one run.

## Actor input object example

```json
{
  "term": "artificial intelligence",
  "agencies": [
    "environmental-protection-agency",
    "Securities and Exchange Commission"
  ],
  "commentsOpenOnly": false,
  "significantOnly": false,
  "order": "newest",
  "maxItems": 500
}
```

# Actor output Schema

## `records` (type: `string`):

No description

# 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 = {
    "term": "artificial intelligence"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datadeltas/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 = { "term": "artificial intelligence" }

# Run the Actor and wait for it to finish
run = client.actor("datadeltas/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 '{
  "term": "artificial intelligence"
}' |
apify call datadeltas/federal-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datadeltas/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/xPLlpIRx8Me2yFLVx/builds/2t54gSYb4C3a1n6yI/openapi.json
