# Federal Register API Feed: Rules, Proposed Rules & Notices (`fecklesspleb/federal-register-documents-feed`) Actor

Daily Federal Register API feed: new rules, proposed rules, notices, executive orders and other presidential documents, plus the public inspection desk. Filter by agency, type, keyword, CFR part or open comment period; dedupe across runs. Unofficial.

- **URL**: https://apify.com/fecklesspleb/federal-register-documents-feed.md
- **Developed by:** [Scott Williams](https://apify.com/fecklesspleb) (community)
- **Categories:** News, Business, Developer tools
- **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 API Feed: Rules, Proposed Rules & Notices

Get new US **Federal Register** documents as clean JSON every day: final rules, proposed rules (NPRMs), notices, and presidential documents such as **executive orders** and proclamations. The Actor reads the public, keyless [FederalRegister.gov REST API](https://www.federalregister.gov/reader-aids/developer-resources/rest-api) and can also read the **public inspection desk**, where documents are filed before they are published.

Filter by agency, document type, keyword, CFR title and part, EO 12866 significance, or open comment period. Scheduled runs return only documents you have not received yet, so each run is a feed of what is new.

**At a glance:** $0.001 per document ($1.00 per 1,000) plus Apify's $0.00005 Actor start event. Documents skipped as already seen are free. No API key, no browser, no proxy. Set a maximum cost per run, export to JSON, CSV or Excel, or call it from the Apify API, n8n, Make or Zapier.

> **Unofficial.** Not affiliated with or endorsed by the Office of the Federal Register, NARA or GPO. FederalRegister.gov is not the official legal edition of the Federal Register; every published document links to its official PDF on govinfo.gov (`links.pdfUrl`), so check that before you rely on a document legally.

### Who it's for

- **Compliance and regulatory teams** watching for new rules and proposed rules from the agencies that regulate them (EPA, FDA, OSHA, the SEC and so on).
- **Government affairs, lobbying and policy teams** tracking rulemaking, comment deadlines, executive orders and proclamations.
- **Law firms and consultants** sending clients alerts on documents that affect a CFR part or mention a keyword.
- **Researchers, journalists and data teams** building a dataset of Federal Register documents back to 1994.
- **Automation builders** sending new documents to Slack, email, Google Sheets or a database through n8n, Make, Zapier or Apify webhooks.

### What you can track

- **Document types:** final rules (`RULE`), proposed rules (`PRORULE`), notices (`NOTICE`) and presidential documents (`PRESDOCU`: executive orders, proclamations, memoranda and other documents).
- **Agencies:** one or more FederalRegister.gov agency slugs, such as `environmental-protection-agency`, `food-and-drug-administration` or `coast-guard`.
- **Keywords:** full-text search, the same as the FederalRegister.gov search box, for example `artificial intelligence` or `"per- and polyfluoroalkyl"`.
- **CFR title and part:** for example title 40, part 52.
- **Significant documents:** only documents marked significant under Executive Order 12866.
- **Open comment periods:** only documents whose comment period closes today or later, with the `commentsCloseOn` date and the regulations.gov comment link.
- **Public inspection:** documents filed for public inspection before they are published (turn on **Also include today's public inspection desk**).

### How to use it

1. Open the Actor in Apify Console and click **Try for free**.
2. Pick **Document types** and add **Agencies** (slugs), a **Keyword search** or a **CFR title**. Leave them empty to get everything.
3. Keep **Mode** on **Daily feed** for ongoing monitoring, or choose **Date range** to backfill.
4. Click **Start** and open the dataset, or export it to CSV or Excel.
5. For alerts, create an Apify schedule (for example every weekday) with the same input. Each run returns only documents that are new since the last run.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `daily_feed` | `daily_feed` reads recent issues and skips documents already delivered. `date_range` reads every issue from `startDate` to `endDate`. |
| `lookbackDays` | integer, 0 to 60 | 3 | Daily feed only. Reads issues published from this many calendar days before today (US Eastern) through today. Issues come out on weekdays only, so 3 reads 4 issues on a Thursday or Friday, 3 on a Wednesday or Saturday, and 2 on a Sunday, Monday or Tuesday. |
| `startDate` | date (YYYY-MM-DD) | none | Date range only, required there. 1994-01-01 or later. |
| `endDate` | date (YYYY-MM-DD) | today | Date range only. Up to 10 years after `startDate` per run. |
| `documentTypes` | array | all types | `RULE`, `PRORULE`, `NOTICE`, `PRESDOCU`. The Console prefill is `RULE` and `PRORULE`. |
| `agencies` | array of strings | all agencies | FederalRegister.gov agency slugs: the last part of the agency page URL. |
| `searchTerm` | string | none | Full-text search, as on FederalRegister.gov. For public inspection filings every word must appear in the title or table-of-contents subject. |
| `significantOnly` | boolean | false | Only documents marked significant under EO 12866. |
| `openForCommentOnly` | boolean | false | Only documents whose comment period closes today or later. |
| `cfrTitle` | integer, 1 to 50 | none | Only documents that affect this CFR title. |
| `cfrPart` | string | none | A part within `cfrTitle`, for example `52`. Needs `cfrTitle`. |
| `includePublicInspection` | boolean | false | Also read the current public inspection desk first. Filtered by document type, agency and title keyword. |
| `onlyNewSinceLastRun` | string | `auto` | `auto` (yes for daily feed, no for date range), `yes` or `no`. |
| `stateKey` | string | `default` | Separate "already seen" memory per feed. Use one key per schedule when schedules have different filters. |
| `maxItems` | integer, 1 to 200,000 | 9 | Stop after this many documents. Empty also means 9. A full issue had 63 to 146 documents (October 13 to 30, 2026), so raise it to get whole issues. |

#### Example input: EPA proposed rules open for comment

```json
{
  "mode": "daily_feed",
  "lookbackDays": 3,
  "agencies": ["environmental-protection-agency"],
  "documentTypes": ["PRORULE"],
  "openForCommentOnly": true,
  "stateKey": "epa-proposed",
  "maxItems": 500
}
```

#### Example input: executive orders and other presidential documents in 2026

```json
{
  "mode": "date_range",
  "startDate": "2026-01-01",
  "endDate": "2026-10-30",
  "documentTypes": ["PRESDOCU"],
  "maxItems": 2000
}
```

Executive orders have `executiveOrderNumber` set; proclamations have `proclamationNumber`.

### Output

One dataset row per document. This is a real row from a local test run on October 30, 2026 (prefilled filters: rules and proposed rules, `lookbackDays` 3, so issues published October 27 to 30; `maxItems` 5):

```json
{
  "recordType": "document",
  "documentNumber": "2026-22269",
  "title": "Safety Zone; M/T KALAHARI, Gulf of America, Pascagoula, MS",
  "type": "Rule",
  "typeCode": "RULE",
  "subtype": null,
  "action": "Temporary final rule.",
  "abstract": "The Coast Guard is establishing a temporary safety zone for navigable waters of the Gulf of America. The safety zone is needed to protect personnel, vessels, and the marine environment from potential hazards associated with the M/T KALAHARI that will be conducting repairs at anchorage due to both auxiliary boilers being out of service rendering the inert gas system inoperable. Entry of vessels or persons into this zone is prohibited unless specifically authorized by the Captain of the Port, Sector Mobile, or their designated representative.",
  "publicationDate": "2026-10-30",
  "agencies": [
    {
      "name": "Homeland Security Department",
      "slug": "homeland-security-department",
      "id": 227,
      "parentId": null
    },
    {
      "name": "Coast Guard",
      "slug": "coast-guard",
      "id": 53,
      "parentId": 227
    }
  ],
  "agencyNames": [
    "Homeland Security Department",
    "Coast Guard"
  ],
  "citation": "91 FR 68478",
  "volume": 91,
  "startPage": 68478,
  "endPage": 68480,
  "pageLength": 3,
  "significant": false,
  "effectiveOn": "2026-10-30",
  "commentsCloseOn": null,
  "isOpenForComment": false,
  "commentUrl": null,
  "regulationsGovUrl": null,
  "docketIds": [
    "Docket Number USCG-2026-0467"
  ],
  "regulationIdNumbers": [
    "1625-AA00"
  ],
  "cfrReferences": [
    {
      "title": 33,
      "part": "165",
      "chapter": null
    }
  ],
  "topics": [
    "Harbors",
    "Marine safety",
    "Navigation (water)",
    "Reporting and recordkeeping requirements",
    "Security measures",
    "Waterways"
  ],
  "dates": "This rule is effective without actual notice from October 30, 2026 through December 27, 2026. For the purposes of enforcement, actual notice will be used from October 28, 2026, through October 30, 2026.",
  "signingDate": null,
  "executiveOrderNumber": null,
  "presidentialDocumentNumber": null,
  "proclamationNumber": null,
  "correctionOf": null,
  "tocSubject": "Safety Zone",
  "filedAt": null,
  "filingType": null,
  "links": {
    "htmlUrl": "https://www.federalregister.gov/documents/2026/10/30/2026-22269/safety-zone-mt-kalahari-gulf-of-america-pascagoula-ms",
    "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-10-30/pdf/2026-22269.pdf",
    "publicInspectionPdfUrl": "https://public-inspection.federalregister.gov/2026-22269.pdf?1793277922",
    "rawTextUrl": "https://www.federalregister.gov/documents/full_text/text/2026/10/30/2026-22269.txt",
    "fullTextXmlUrl": "https://www.federalregister.gov/documents/full_text/xml/2026/10/30/2026-22269.xml",
    "jsonUrl": "https://www.federalregister.gov/api/v1/documents/2026-22269?publication_date=2026-10-30"
  },
  "generatedInternalId": "FR:document:2026-22269",
  "source": {
    "name": "FederalRegister.gov REST API v1",
    "apiUrl": "https://www.federalregister.gov/api/v1/documents.json",
    "legalNote": "Unofficial: FederalRegister.gov is not the official legal edition; verify against the official PDF on govinfo.gov (pdfUrl). Not affiliated with or endorsed by the Office of the Federal Register, NARA or GPO."
  },
  "scrapedAt": "2026-10-30T15:27:43+00:00"
}
```

| Field | Description |
|---|---|
| `recordType` | `document` (published) or `public_inspection` (filed, not yet published) |
| `documentNumber`, `citation`, `volume`, `startPage`, `endPage`, `pageLength` | Federal Register document number and citation, such as `91 FR 68478` |
| `title`, `action`, `abstract`, `dates`, `tocSubject` | Title, action line, summary and dates text as published |
| `type`, `typeCode`, `subtype` | For example `Proposed Rule` and `PRORULE` |
| `publicationDate`, `effectiveOn`, `signingDate` | Dates (YYYY-MM-DD) |
| `agencies`, `agencyNames` | Agencies with name, slug, id and parent id |
| `commentsCloseOn`, `isOpenForComment`, `commentUrl`, `regulationsGovUrl` | Comment deadline, whether it is today or later, and where to comment |
| `docketIds`, `regulationIdNumbers` | Docket numbers and RINs |
| `cfrReferences`, `topics` | Affected CFR title and part, and subject topics |
| `significant` | `true` when significant under EO 12866 |
| `executiveOrderNumber`, `presidentialDocumentNumber`, `proclamationNumber`, `correctionOf` | Presidential document numbers and corrections |
| `filedAt`, `filingType` | Public inspection filings only |
| `links` | FederalRegister.gov page, govinfo PDF, public inspection PDF, plain text, XML and API JSON |
| `generatedInternalId`, `source`, `scrapedAt` | Dedupe id, source and legal note, and when the run read it (UTC) |

Public inspection rows have no abstract, citation or comment fields yet, and their `pdfUrl` is the public inspection PDF (their `source.legalNote` says so). A run that saves no documents or stops early adds one free status row (`recordType: "status"`, `status` `empty` or `warning`, and a `message`). The Actor outputs metadata and links only, not full text. Use `links.rawTextUrl` or `links.fullTextXmlUrl` when you need the text.

The `RUN_SUMMARY` record in the key-value store shows the date window, filters, documents pushed, documents skipped as already seen (`skippedSeenOtherStage` counts those already delivered at the other stage) or closed for comment, why the run stopped, requests made, and any day with more than 2,000 matches (`daysTruncated`).

### Pricing

This Actor uses pay-per-event pricing. You pay for documents saved, not for compute time.

| Event | Price |
|---|---|
| Federal Register document (one dataset row, including public inspection filings) | $0.001 |
| Actor start (charged by Apify, once per GB of run memory; 1 event at the default 1 GB) | $0.00005 |

Examples:

- Empty input `{}` or the prefilled Console input: at most 9 documents, so at most about **$0.00905** with the start event.
- The whole Federal Register for one day: the 14 issues from October 13 to 30, 2026 had 63 to 146 documents each, so about **$0.06 to $0.15** per issue.
- A narrow daily feed (one agency, rules and proposed rules) with nothing new: **$0.00005**, the start event only.

Documents skipped because you already received them (including as a public inspection filing under the same state key), or because their comment period is closed when **Only documents open for comment** is on, are not charged.

**Set a maximum cost per run.** In Apify Console set **Maximum cost per run**, or pass `maxTotalChargeUsd` through the API. The Actor stops cleanly when the limit is reached and the status message says so.

### Integrations and API

The Actor ID is `fecklesspleb/federal-register-documents-feed` (in API URLs: `fecklesspleb~federal-register-documents-feed`).

- **n8n:** use the Apify node, choose **Run an Actor** with this Actor ID, then read the dataset items and post new rules to Slack, email or a ticket.
- **Make:** use the Apify module **Run an Actor**, then **Get Dataset Items**.
- **Zapier:** use the Apify app with **Run Actor**, then a dataset items step.
- **Schedules and webhooks:** create an Apify schedule for each feed and a webhook to get notified when a run finishes.
- **AI agents:** call it through the Apify API, the Apify clients, or Apify's MCP server.

#### Run it with curl

```bash
curl -X POST "https://api.apify.com/v2/acts/fecklesspleb~federal-register-documents-feed/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"documentTypes": ["RULE", "PRORULE"], "agencies": ["food-and-drug-administration"], "maxItems": 200}'
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fecklesspleb/federal-register-documents-feed").call(
    run_input={"documentTypes": ["PRORULE"], "openForCommentOnly": True, "maxItems": 200},
    max_total_charge_usd=1,
)
for doc in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(doc["publicationDate"], doc["title"], doc["commentsCloseOn"], doc["links"]["htmlUrl"])
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('fecklesspleb/federal-register-documents-feed').call({
    documentTypes: ['RULE', 'PRORULE'],
    agencies: ['environmental-protection-agency'],
    maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((d) => `${d.citation ?? d.documentNumber}: ${d.title}`));
```

### How it works

- It calls only `https://www.federalregister.gov/api/v1/`, which robots.txt allows, and checks robots.txt before the first call. It never loads FederalRegister.gov web pages, which are protected against automated access. If the API returns anything other than JSON, the run stops and `RUN_SUMMARY` says why.
- At most 1 request per second, with a descriptive User-Agent.
- One query per weekday issue (the Federal Register is not published on weekends), up to 1,000 documents per page. The API pages through only the first 2,000 results of a query; a day with more matches is listed in `daysTruncated`.
- "Already seen" memory is kept per `stateKey` in a named key-value store, for up to 200,000 document ids.

### Limits

- Metadata and links only: no full text, no excerpts, no public comments.
- Federal holidays have no issue, so they return nothing.
- The public inspection desk is read as it is at run time. The significance, CFR and open-for-comment filters do not apply to public inspection filings; with **Only documents open for comment** on, they are all skipped.
- A filing on the public inspection desk and the published document share a document number. With **Only new since last run** on (the daily feed default), each document number gets one row and one charge per state key: a published document whose filing you already got is skipped and free, and the reverse. With it off, a document number is charged at most once per run. Different state keys are independent.
- Presidential documents cannot be narrowed to executive orders in the input; filter the dataset on `executiveOrderNumber`.

### Common searches this Actor answers

- Federal Register API to JSON or CSV
- daily feed of new federal rules and proposed rules
- track executive orders and proclamations
- Federal Register alerts for one agency
- proposed rules with open comment periods and comment deadlines
- Federal Register public inspection desk feed
- rulemaking monitoring for a CFR part
- regulatory change monitoring for compliance teams

### FAQ

**Is this the official Federal Register?**
No. It reads FederalRegister.gov, which says it is not the official legal edition. Each published document links to the official govinfo.gov PDF. The Actor is not affiliated with or endorsed by the Office of the Federal Register, NARA or GPO.

**Do I need a Federal Register API key?**
No. The FederalRegister.gov API needs no key. You only need an Apify account to run the Actor.

**How do I get only new documents every day?**
Use **Daily feed** mode and an Apify schedule. Documents already delivered under the same **State key** are skipped and not charged. Use a different state key for each schedule with different filters.

**How do I find an agency slug?**
Open the agency page on FederalRegister.gov and take the last part of the URL, for example `environmental-protection-agency`.

**Can I track only proposed rules that are open for comment?**
Yes. Set **Document types** to `PRORULE` and turn on **Only documents open for comment**. Each row has `commentsCloseOn` and, when the agency provides one, `regulationsGovUrl`.

**Can I get executive orders?**
Yes. Choose **Presidential documents** (`PRESDOCU`). Executive orders have `executiveOrderNumber`; proclamations have `proclamationNumber`.

**What is the public inspection desk?**
Documents are filed for public inspection before they appear in the Federal Register. Turn on **Also include today's public inspection desk** to get them first, as `recordType: "public_inspection"` rows with `filedAt` and the scheduled `publicationDate`.

**Can I backfill older documents?**
Yes. Use **Date range** with dates from 1994 onward, up to 10 years per run, and raise **Max documents** (up to 200,000).

**Does it download the full text?**
No. Rows have links to the plain text, XML and PDF. To turn the PDF into text, pass `links.pdfUrl` to [PDF Text Extractor](https://apify.com/fecklesspleb/pdf-text-extractor).

**Is it legal to use this data?**
Federal Register documents are US government works, and the Actor uses the public API the site provides for programs. Names of officials appear as published in government documents. No logos or seals of the Office of the Federal Register or NARA are used.

### Related Actors

- [RSS Feed Reader](https://apify.com/fecklesspleb/rss-feed-reader): turn RSS or Atom feeds, such as agency news feeds, into JSON, with an only-new-items mode for schedules.
- [PDF Text Extractor](https://apify.com/fecklesspleb/pdf-text-extractor): get the text of public PDFs, such as the govinfo.gov PDFs linked in each row.

### Changelog

See [CHANGELOG.md](CHANGELOG.md).

# Changelog

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

# Actor input Schema

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

Daily feed reads the last few issues and skips documents you already got. Date range reads every issue between two publication dates.

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

Daily feed only: reads every issue published from this many calendar days before today through today, both included (US Eastern dates). Issues come out on weekdays only, so 3 reads 4 issues when run on a Thursday or Friday, 3 on a Wednesday or Saturday, and 2 on a Sunday, Monday or Tuesday (fewer after a federal holiday). 0 = today's issue only.

## `startDate` (type: `string`):

Date range only: first publication date (YYYY-MM-DD, 1994 or later).

## `endDate` (type: `string`):

Date range only: last publication date. Empty = today. Up to 10 years per run.

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

Leave empty for all types.

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

FederalRegister.gov agency slugs, e.g. environmental-protection-agency, food-and-drug-administration, coast-guard (the last part of the agency page URL). Empty = all agencies.

## `searchTerm` (type: `string`):

Full-text search as on FederalRegister.gov, e.g. artificial intelligence or "per- and polyfluoroalkyl". For public inspection documents only titles are matched.

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

Keep documents marked significant under Executive Order 12866 (mostly rules and proposed rules).

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

Keep documents whose comment period closes today or later.

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

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

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

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

## `includePublicInspection` (type: `boolean`):

Adds documents filed for public inspection (available before they are published), with the same type, agency and title-keyword filters. They are charged like any document. With only-new on, a document whose public inspection filing you already got under the same state key is skipped and not charged again when it is published (matched by document number).

## `onlyNewSinceLastRun` (type: `string`):

Skip documents this Actor already delivered under the same state key, including published documents already delivered as public inspection filings (same document number). Skipped documents are not charged.

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

Separate dedupe memory per feed, e.g. one key per schedule with different filters.

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

Stop after this many documents (each is one charged event, $0.001). Empty = 9. A full issue had 63 to 146 documents (measured October 13-30, 2026), so raise this to get whole issues.

## Actor input object example

```json
{
  "mode": "daily_feed",
  "lookbackDays": 3,
  "documentTypes": [
    "RULE",
    "PRORULE"
  ],
  "agencies": [],
  "significantOnly": false,
  "openForCommentOnly": false,
  "includePublicInspection": false,
  "onlyNewSinceLastRun": "auto",
  "stateKey": "default",
  "maxItems": 9
}
```

# Actor output Schema

## `documents` (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 = {
    "lookbackDays": 3,
    "documentTypes": [
        "RULE",
        "PRORULE"
    ],
    "agencies": [],
    "maxItems": 9
};

// Run the Actor and wait for it to finish
const run = await client.actor("fecklesspleb/federal-register-documents-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 = {
    "lookbackDays": 3,
    "documentTypes": [
        "RULE",
        "PRORULE",
    ],
    "agencies": [],
    "maxItems": 9,
}

# Run the Actor and wait for it to finish
run = client.actor("fecklesspleb/federal-register-documents-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 '{
  "lookbackDays": 3,
  "documentTypes": [
    "RULE",
    "PRORULE"
  ],
  "agencies": [],
  "maxItems": 9
}' |
apify call fecklesspleb/federal-register-documents-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fecklesspleb/federal-register-documents-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/NG5tpfuLikSKg0CT6/builds/fWnWPZbpQPzTTsWF0/openapi.json
