# Federal Register Search & New Rules Monitor (Official API) (`survivalstudent/federal-register-monitor`) Actor

Search and monitor the Federal Register: new rules, proposed rules, notices and presidential documents (executive orders) by keyword, agency, type, CFR part or docket. Clean JSON with abstract, PDF/HTML links, comment deadlines, RINs and significance flag. Daily-alert mode.

- **URL**: https://apify.com/survivalstudent/federal-register-monitor.md
- **Developed by:** [Shaun Hill](https://apify.com/survivalstudent) (community)
- **Categories:** News, AI, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 register documents

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 Search & New Rules Monitor

Search and monitor the **Federal Register**, the official daily journal of the US government. It covers new **final rules, proposed rules, notices and presidential documents** (executive orders, proclamations, memoranda and determinations). The Actor calls the official Federal Register API and returns clean JSON.

You can filter by **keyword, agency, document type, publication date, CFR title/part, docket ID, EO 12866 significance** and **open comment periods**. Schedule it daily with *Only new since last run* to get alerts on new filings only.

It is built for regulatory affairs and compliance teams, government-relations and lobbying firms, law firms, trade associations, ESG/energy analysts, grant and contract hunters, journalists, and AI agents that need to know what changed in federal regulation.

### Why this Actor

- **Official source**: the federalregister.gov API v1, published by the Office of the Federal Register (NARA) and GPO. No login, no proxies, no HTML scraping.
- **Monitor-ready**: incremental mode remembers what you've already received, so a daily schedule returns only new documents.
- **Useful filters**: agencies by short name (`EPA`, `FDA`, `SEC`), slug or full name; several keywords merged and deduplicated; `"exact phrase"`, `a | b` and `-exclude` syntax; significant-only; open-for-comment-only; CFR title/part; docket.
- **Normalized output**: abstract, plain-text excerpt (highlight HTML stripped), PDF/HTML/full-text links, comment deadline, effective date, RINs, dockets, CFR references, EO number and signing date.
- **Cheap and predictable**: you pay per document returned, and the Actor stops at your spending limit. Runs are tiny (128 MB, a few seconds).

### Input example

```json
{
  "searchTerms": ["artificial intelligence", "\"critical minerals\""],
  "agencies": ["EPA", "commerce-department"],
  "documentTypes": ["rule", "proposed_rule"],
  "lookbackDays": 7,
  "onlyOpenForComment": false,
  "onlyNewSinceLastRun": true,
  "maxItems": 200
}
```

With an empty input you get the 100 newest documents of all types from the last 7 days.

### Output example (truncated)

```json
{
  "documentNumber": "2026-20374",
  "title": "Section 3 Benchmarks for Creating Economic Opportunities for Low- and Very Low-Income Persons and Eligible Businesses",
  "type": "Rule",
  "action": "Notification of benchmark updates and request for comments.",
  "agencies": ["Housing and Urban Development Department"],
  "publicationDate": "2026-10-05",
  "abstract": "HUD's regulations require that HUD set Section 3 benchmarks ...",
  "significant": null,
  "citation": "91 FR 63146",
  "docketIds": ["Docket No. FR-6622-N-01"],
  "cfrReferences": [{"title": 24, "part": "75", "chapter": null}],
  "effectiveOn": "2026-11-04",
  "commentsCloseOn": "2026-12-04",
  "htmlUrl": "https://www.federalregister.gov/documents/2026/10/05/2026-20374/...",
  "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-10-05/pdf/2026-20374.pdf",
  "regulationsDotGovUrl": "http://www.regulations.gov/commenton/HUD-2026-1651-0001"
}
```

### Pricing

Pay per event: one **register-document** event per document returned, plus the standard Actor start event. See the Pricing tab. Set a maximum cost per run, and the Actor stops cleanly when it reaches it.

### Notes

- The Federal Register publishes on federal business days, usually 100–150 documents a day.
- `significant` is `true`/`false` only when OIRA has made an EO 12866 determination. For most notices it is `null`.
- Each keyword runs as a separate search, and the results are merged newest-first and deduplicated. `matchedSearchTerm` shows which keyword found each document.
- For documents not yet published, use the Federal Register Public Inspection desk. This Actor covers published documents.

### Legal and compliance

This Actor uses the public Federal Register API (federalregister.gov). Federal Register content is a work of the US government and is generally not subject to copyright. The Actor is not affiliated with or endorsed by the Office of the Federal Register, the National Archives (NARA) or the Government Publishing Office. The Federal Register API output is not an official legal edition: for legal research, rely on the official PDF on govinfo.gov (linked in `pdfUrl`). You are responsible for how you use the data, including compliance with applicable laws. If you use names or contact details found in documents for outreach, comply with CAN-SPAM, TCPA, GDPR and similar laws, and do not use the data for unsolicited spam, robocalls or texts.

# Actor input Schema

## `searchTerms` (type: `array`):

Full-text keywords. Each term is searched separately and results are merged (deduplicated). Supports Federal Register syntax: "exact phrase", a | b (OR), -exclude. Empty = all documents.

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

Agency slugs, short names or names, e.g. EPA, FDA, securities-and-exchange-commission, 'Federal Aviation Administration'. Empty = all agencies.

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

Empty = all types.

## `lookbackDays` (type: `integer`):

Used when Date from is empty: publication date >= today minus N days.

## `dateFrom` (type: `string`):

Publication date range start. Overrides Lookback days.

## `dateTo` (type: `string`):

Publication date range end (default: no end).

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

Only documents OIRA deemed significant under Executive Order 12866.

## `onlyOpenForComment` (type: `boolean`):

Only documents whose comment period closes today or later.

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

Only documents affecting this Code of Federal Regulations title, e.g. 40 (environment).

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

Optional CFR part within the title, e.g. 52. Requires CFR title.

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

Only documents in this docket, e.g. EPA-HQ-OAR-2021-0317.

## `onlyNewSinceLastRun` (type: `boolean`):

Remember documents already returned (named key-value store) and skip them. Ideal for daily schedules / alerts.

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

Stop after this many documents (you are charged per document).

## `contactEmail` (type: `string`):

Identifies automated requests to the Federal Register. Leave empty to use the Actor default.

## Actor input object example

```json
{
  "documentTypes": [],
  "lookbackDays": 7,
  "significantOnly": false,
  "onlyOpenForComment": false,
  "onlyNewSinceLastRun": false,
  "maxItems": 100
}
```

# Actor output Schema

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

One item per document: number, title, type, agencies, publication date, abstract, links, significance, comment/effective dates.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("survivalstudent/federal-register-monitor").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 = {}

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

```

## MCP server setup

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

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/GrEKthpoIp7S625NQ/builds/0T5Ymycaxx13Bg7vQ/openapi.json
