# Federal Register Scraper & Regulation Monitor (`kempt_horizon_yzk/federal-register-documents`) Actor

Search and monitor the US Federal Register: final rules, proposed rules, notices, executive orders. Filter by keyword, agency, type, CFR part, docket, RIN, significance, open comment periods. Comment deadlines, effective dates, links. Monitor mode returns only new or changed items. $0.0015/doc.

- **URL**: https://apify.com/kempt_horizon_yzk/federal-register-documents.md
- **Developed by:** [Kempt Horizon Data](https://apify.com/kempt_horizon_yzk) (community)
- **Categories:** AI, Automation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Federal Register Scraper & Regulation Monitor: Rules, Proposed Rules, Notices

Get **US Federal Register documents** as clean JSON, CSV or Excel: **final rules, proposed rules, notices, executive orders and other presidential documents**. Filter by keyword, agency, document type, **CFR title and part, docket ID, RIN, significant rules, and open comment periods**. Each document includes the agencies, action, abstract, publication date, **effective date and comment deadline**, docket IDs, RINs, CFR references, citation, and links to the HTML, PDF, full text and Regulations.gov comment page. Turn on **monitor mode** to get only new or changed documents.

Data comes from the **official FederalRegister.gov API** published by the Office of the Federal Register. No API key, no login.

### For AI agents (MCP / API) quick reference

- **Use when:** you need new or historical US federal regulations, proposed rules open for comment, agency notices, or executive orders, filtered by topic, agency, CFR part or docket.
- **Don't use for:** state regulations, court rulings, or the full current text of the CFR.
- **Minimal input:** `{"keywords": ["artificial intelligence"], "documentTypes": ["RULE", "PRORULE"], "publishedLastDays": 30, "maxItems": 20}`. All fields are optional.
- **Output:** one dataset item per document: `documentNumber`, `title`, `type`, `action`, `abstract`, `agencies`, `publicationDate`, `effectiveDate`, `commentsCloseDate`, `docketIds`, `regulationIdNumbers`, `cfrReferences`, `citation`, `significant`, `url`, `pdfUrl`, `fullTextUrl`, `commentUrl`.
- **Price:** $0.001 per run + **$0.0015 per document**. 20 documents cost about $0.03. Pay per event only, limited permissions, so agentic payments (x402, Skyfire, Apify AGI token) work.
- **MCP:** add `https://mcp.apify.com?tools=kempt_horizon_yzk/federal-register-documents` to your MCP client.

### What can this Federal Register scraper do?

- ✅ **Every document type**: final rules, proposed rules, notices, presidential documents, from 1994 to today
- ✅ **Filters**: keywords (any match), agencies, types, publication dates, CFR title/part, docket ID, RIN, significant (EO 12866) only, open for comment only
- ✅ **Deadlines**: effective dates and comment close dates as clean fields, plus the official dates text
- ✅ **Monitor mode**: remembers documents in a key-value store and returns only new ones or ones whose title, dates, comment deadline or action changed
- ✅ **Pay only for results**: unchanged documents are never charged
- ✅ Retries with exponential backoff

### Who uses it?

Regulatory affairs and compliance teams, law firms and lobbyists, trade associations, ESG, healthcare, fintech and energy companies tracking rulemakings, policy newsletters, and AI agents that need to know what changed in federal rules.

### How much does it cost?

| Event | Price |
|---|---|
| Actor start | $0.001 |
| Federal Register document | **$0.0015** |

A daily monitor that finds 20 new documents for your agencies costs about $0.03 a day. 1,000 documents cost $1.50.

### How to use it

1. Click **Try for free**. The example input (AI-related rules and proposed rules from the last 30 days) returns results right away.
2. Add agencies, a CFR part, or tick **Only open for comment**.
3. Click **Start** and download results as JSON, CSV, Excel or HTML, or read them with the API.
4. For alerts, tick **Only new or changed since last run**, give the monitor a name, and add a daily **Schedule**.

### Input example

```json
{
  "agencies": ["food-and-drug-administration"],
  "documentTypes": ["RULE", "PRORULE"],
  "cfrTitle": 21,
  "openForCommentOnly": true,
  "maxItems": 50,
  "onlyNew": true,
  "stateKey": "fda-rules"
}
```

### 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 regarding section 2(c)(2)(D) of the Commodity Exchange Act (\"CEA\" or \"Act\") to pr...",
  "agencies": [
    "Commodity Futures Trading Commission"
  ],
  "agencySlugs": [
    "commodity-futures-trading-commission"
  ],
  "publicationDate": "2026-10-13",
  "effectiveDate": null,
  "commentsCloseDate": "2026-12-14",
  "datesText": "Comments must be received on or before December 14, 2026.",
  "docketIds": [],
  "regulationIdNumbers": [
    "3038-AF80"
  ],
  "cfrReferences": [
    {
      "title": 17,
      "part": "1",
      "chapter": null
    },
    {
      "title": 17,
      "part": "38",
      "chapter": null
    },
    {
      "title": 17,
      "part": "39",
      "chapter": null
    }
  ],
  "topics": [],
  "citation": "91 FR 64811",
  "significant": null,
  "executiveOrderNumber": null,
  "president": "Donald Trump",
  "pageLength": 30,
  "correctionOf": null,
  "matchExcerpt": "DCMs contained in section 5(d) (“DCM Core Principles”). 250 245 CEA 3(a)-(b), 7 U.S.C. 5(a)-(b). 246 Indeed, Chairman Selig recently acknowledged this dynamic when he noted that “[a]ccess to computing...",
  "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",
  "fullTextUrl": "https://www.federalregister.gov/documents/full_text/text/2026/10/13/2026-20888.txt",
  "regulationsGovUrl": "http://www.regulations.gov/commenton/CFTC-2026-2179-0001",
  "commentUrl": "http://www.regulations.gov/commenton/CFTC-2026-2179-0001",
  "scrapedAt": "2026-10-15T13:15:06.516Z"
}
```

### FAQ

**Do I need an API key?** No. The FederalRegister.gov API is free and public.

**How fresh is the data?** Live. New documents appear each business morning when the Federal Register is published.

**Is this legal?** The Federal Register is official US government public information. The Actor uses only the public API, which robots.txt allows.

**Related Actors:** [SEC EDGAR Filings](https://apify.com/kempt_horizon_yzk/sec-edgar-filings), [USAspending.gov Federal Awards](https://apify.com/kempt_horizon_yzk/usaspending-awards), [Grants.gov Scraper](https://apify.com/kempt_horizon_yzk/grants-gov-opportunities).

Built and maintained by **Kempt Horizon Data**. Found a bug or need a field? Open an issue on the Actor's Issues tab and we usually reply within a day.

# Actor input Schema

## `keywords` (type: `array`):

Optional. Full-text search; any keyword matches (OR). Phrases are quoted automatically.

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

Optional. Empty = all types.

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

Optional agency names or Federal Register slugs, e.g. environmental-protection-agency, food-and-drug-administration, securities-and-exchange-commission.

## `publishedLastDays` (type: `integer`):

Optional.

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

Optional. Ignored when 'Published in last N days' is set. Data goes back to 1994.

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

Optional.

## `openForCommentOnly` (type: `boolean`):

Only documents whose comment period closes today or later.

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

Only documents flagged as significant regulatory actions.

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

Optional, e.g. 21 (Food and Drugs), 40 (Environment), 47 (Telecom).

## `cfrPart` (type: `integer`):

Optional, used with CFR title, e.g. 21 CFR part 820.

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

Optional, e.g. EPA-HQ-OAR-2021-0317.

## `rin` (type: `string`):

Optional, e.g. 2060-AV16.

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

Result order.

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

Maximum documents to save (and pay for).

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

Remembers documents already returned for the same filters (or monitor name) in a key-value store and returns only new ones or ones whose title, dates, comment deadline or action changed.

## `stateKey` (type: `string`):

Optional name for the monitor state, so several schedules keep separate memories.

## Actor input object example

```json
{
  "keywords": [
    "artificial intelligence"
  ],
  "documentTypes": [
    "RULE",
    "PRORULE"
  ],
  "publishedLastDays": 30,
  "openForCommentOnly": false,
  "significantOnly": false,
  "order": "newest",
  "maxItems": 20,
  "onlyNew": false
}
```

# Actor output Schema

## `documents` (type: `string`):

No description

## `all` (type: `string`):

No description

## `summary` (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 = {
    "keywords": [
        "artificial intelligence"
    ],
    "documentTypes": [
        "RULE",
        "PRORULE"
    ],
    "publishedLastDays": 30,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("kempt_horizon_yzk/federal-register-documents").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 = {
    "keywords": ["artificial intelligence"],
    "documentTypes": [
        "RULE",
        "PRORULE",
    ],
    "publishedLastDays": 30,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("kempt_horizon_yzk/federal-register-documents").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 '{
  "keywords": [
    "artificial intelligence"
  ],
  "documentTypes": [
    "RULE",
    "PRORULE"
  ],
  "publishedLastDays": 30,
  "maxItems": 20
}' |
apify call kempt_horizon_yzk/federal-register-documents --silent --output-dataset

```

## MCP server setup

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

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/GEyQ3DHPa2LUyAH6W/builds/vxk2NucL6jCgiCFRH/openapi.json
