# Federal Register Notices Feed: Rules, NPRMs, Notices, Grants (`moment-data/federal-register-notices-feed`) Actor

New Federal Register rules, proposed rules, notices and presidential documents from the official federalregister.gov API. Filter by agency, type, keyword, significant or open comment period. Optional new grants.gov opportunities. 'New since last run' mode for daily schedules.

- **URL**: https://apify.com/moment-data/federal-register-notices-feed.md
- **Developed by:** [Luke Miller](https://apify.com/moment-data) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 notice records

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 Notices Feed: New Rules, Proposed Rules, Notices & Grants

Track **new Federal Register documents** every day: final rules, proposed rules (NPRMs), agency notices and presidential documents (executive orders, proclamations, memoranda), straight from the **official federalregister.gov API**. Filter by agency, document type, keyword, *significant* (EO 12866) status or **open comment period**, and optionally add **new grants.gov funding opportunities** in the same clean schema. Schedule it in *new since last run* mode and each run delivers only documents you have not seen yet.

### Who it's for

- **Lobbyists and government-affairs teams:** a daily list of new rules and NPRMs from the agencies you cover, with comment deadlines and docket IDs.
- **Compliance and regulatory teams:** catch final rules and their effective dates before they bite; route by agency or CFR part.
- **Government contractors (govcon) and grant writers:** agency notices, RFIs and new grants.gov opportunities with close dates and Assistance Listing (CFDA) numbers.
- **Policy analysts, journalists and researchers:** keyword-driven feeds ("artificial intelligence", PFAS, tariff, Medicare) into Sheets, Slack, a database or an LLM pipeline.

### What you get

- **All four Federal Register document types:** Rule, Proposed Rule, Notice, Presidential Document.
- **Filters:** agencies (slug, full name or short name like `EPA`), types, full-text keyword, significant only, comment period still open.
- **Normalized records:** `source`, `documentNumber`, `type`, `title`, `abstract`, `agencies`, `publicationDate`, `effectiveDate`, `commentsCloseOn`, `docketIds`, `htmlUrl`, `pdfUrl`, plus action, RINs, CFR references, topics, citation and the regulations.gov comment link.
- **Optional grants.gov source:** newly posted and forecasted grant opportunities (no API key) with `closeDate`, agency code and Assistance Listing numbers, in the same schema (`source: "grants.gov"`).
- **New since last run:** per *State key* history, so a daily schedule pays only for new documents.
- **Fast and cheap:** a default run takes a few seconds at 512 MB.

### Quick start

1. Click **Start** with the default input. You get the 30 newest Federal Register documents from the last 3 days (3 days always spans a weekend).
2. Narrow it: e.g. `{"agencies": ["EPA"], "types": ["PRORULE"], "commentsOpenOnly": true}` for EPA proposed rules you can still comment on.
3. Keyword watch: `{"keyword": "artificial intelligence", "lookbackDays": 30, "maxItems": 200}`.
4. Add grants: `{"includeGrants": true, "grantAgencyCodes": ["HHS-NIH11"], "keyword": "cancer"}`.

#### Schedule tip (daily feed)

Create an Apify **Schedule** (for example weekdays at 8:00 am ET, after the Federal Register publishes around 6 am ET) with:

```json
{ "mode": "sinceLastRun", "stateKey": "epa-daily", "agencies": ["environmental-protection-agency"], "maxItems": 500 }
```

Use one `stateKey` per schedule. Connect the run to Slack, email, Google Sheets, Make, Zapier or a webhook via Apify integrations.

### Input

| Field | Meaning |
|---|---|
| `mode` | `window` (default, stateless) or `sinceLastRun` (**set this for schedules**) |
| `lookbackDays` | Calendar days back (US Eastern), default 3. In window mode an empty result is retried once with 10 days |
| `agencies` | Federal Register agency slugs, names or short names (`EPA`, `coast-guard`, `food-and-drug-administration`). Empty = all |
| `types` | `RULE`, `PRORULE`, `NOTICE`, `PRESDOCU`. Empty = all |
| `keyword` | Full-text search term (also applied to grants.gov) |
| `significantOnly` | Only EO 12866 significant documents |
| `commentsOpenOnly` | Only documents whose comment deadline is today or later |
| `includeGrants`, `grantAgencyCodes` | Add new grants.gov opportunities; optional exact agency codes like `HHS-NIH11`, `DOT-FMCSA` |
| `maxItems` | Cap per run (also caps your spend), default 30. With grants on, up to half goes to grants |
| `stateKey` | One key per saved search (sinceLastRun) |

### Output (example, from a real record)

```json
{
  "source": "federalregister.gov",
  "documentNumber": "2026-22123",
  "type": "Proposed Rule",
  "subtype": null,
  "title": "Reducing Bureaucracy and Burden for Block Grants",
  "abstract": "ACF proposes to amend its block grant regulations to modernize requirements, reduce administrative burden on States and Tribal grantees, and improve the clarity and efficiency of program administration. The current regulations include outdated provisions and procedural requirements that no longer re...",
  "action": "Notice of proposed rulemaking.",
  "agencies": [
    {
      "name": "Health and Human Services Department",
      "slug": "health-and-human-services-department"
    },
    {
      "name": "Children and Families Administration",
      "slug": "children-and-families-administration"
    }
  ],
  "publicationDate": "2026-10-29",
  "effectiveDate": null,
  "commentsCloseOn": "2026-11-30",
  "closeDate": null,
  "docketIds": [],
  "regulationIdNumbers": [
    "0970-AD49"
  ],
  "cfrReferences": [
    "45 CFR 96"
  ],
  "topics": [
    "Administrative practice and procedure",
    "Energy conservation",
    "Grant programs-health",
    "Grant programs-social programs",
    "Reporting and recordkeeping requirements"
  ],
  "significant": null,
  "citation": "91 FR 68097",
  "pageLength": 5,
  "htmlUrl": "https://www.federalregister.gov/documents/2026/10/29/2026-22123/reducing-bureaucracy-and-burden-for-block-grants",
  "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-10-29/pdf/2026-22123.pdf",
  "commentUrl": "http://www.regulations.gov/commenton/ACF_FRDOC_0001-0173",
  "assistanceListings": [],
  "firstSeenAt": "2026-10-30T11:00:35.174Z"
}
```

grants.gov records use the same fields with `source: "grants.gov"`, `type: "Grant Opportunity"` or `"Grant Forecast"`, `closeDate` and `assistanceListings`. See `sample-output.json`. Every run also writes a summary (window, filters, counts, why it stopped) to the `OUTPUT` record.

### Pricing

Pay per event (Apify takes care of billing; you only pay for what is delivered):

| Event | Price | Charged |
|---|---|---|
| `apify-actor-start` | $0.005 | once per run |
| `notice-record` | $0.003 | per Federal Register document (or grants.gov opportunity) delivered |

A default test run (30 documents) costs about $0.095. A daily single-agency schedule (~5 new documents/day) costs about $0.02/day. `maxItems` and Apify's *max cost per run* cap your spend; the Actor stops delivering when your budget is reached, so you are never charged for more than you set. No separate platform-usage charges: compute is included in the event prices.

### Data sources and notes

- [Federal Register API v1](https://www.federalregister.gov/developers/documentation/api/v1) (Office of the Federal Register / GPO, no key). Federal Register content is a US government work. This Actor is not affiliated with or endorsed by the Office of the Federal Register; the official legal text is the PDF on govinfo.gov.
- [grants.gov Search2 API](https://www.grants.gov/api/common/search2) (no key). Always confirm eligibility and deadlines on grants.gov.
- Polite: at most about 3 requests per second per host, with retries and backoff.
- The `significant` flag is only populated by the Federal Register for some documents (often `null`); `significantOnly` uses the official filter.
- Public-documents only: no personal data is collected.

### FAQ

**Why are today's documents missing at 5 am?** The Federal Register publishes each federal business day around 6 am ET (documents are on public inspection the day before).
**Can I get public-inspection (pre-publication) documents?** Not yet; ask in Issues.
**Is it the same as a Federal Register RSS feed?** It is more filterable, structured (JSON/CSV/Excel), deduplicated across runs and can mix in grants.gov.

# Actor input Schema

## `mode` (type: `string`):

window (default): all matching documents published in the last N days, no saved state. sinceLastRun: only documents not delivered before for this State key; use this for daily schedules.

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

Calendar days back from today (US Eastern). 3 covers a weekend. Also the first-run window in sinceLastRun mode. In window mode an empty result is retried once with a 10-day window.

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

e.g. environmental-protection-agency, food-and-drug-administration, securities-and-exchange-commission, coast-guard. Agency names are converted to slugs automatically. Empty = all agencies.

## `types` (type: `array`):

RULE, PRORULE (proposed rule), NOTICE, PRESDOCU (presidential document). Empty = all four.

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

Full-text search term, e.g. "artificial intelligence", PFAS, tariff. Also applied to grants.gov when enabled.

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

Only documents flagged significant under Executive Order 12866.

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

Only documents whose comment deadline is today or later.

## `includeGrants` (type: `boolean`):

Adds newly posted and forecasted grant opportunities from the official grants.gov Search API (same schema, source = grants.gov).

## `grantAgencyCodes` (type: `array`):

Exact grants.gov agency codes, e.g. HHS-NIH11, DOT-FMCSA, HHS-HRSA. Empty = all agencies.

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

Hard cap on delivered documents (also caps your spend). Default is small so a first run is quick and cheap; raise it for production.

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

Name of the saved search for sinceLastRun mode. Each key keeps its own history, so use one key per schedule.

## Actor input object example

```json
{
  "mode": "window",
  "lookbackDays": 3,
  "significantOnly": false,
  "commentsOpenOnly": false,
  "includeGrants": false,
  "maxItems": 30,
  "stateKey": "default"
}
```

# Actor output Schema

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

One record per Federal Register document or grants.gov opportunity.

## `summary` (type: `string`):

Window covered, filters, counts.

# 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("moment-data/federal-register-notices-feed").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("moment-data/federal-register-notices-feed").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 moment-data/federal-register-notices-feed --silent --output-dataset

```

## MCP server setup

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

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/szD6Hhz0rEMm6rtp2/builds/3uxghDssQgjUqACfq/openapi.json
