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

Scrape the US Federal Register — rules, proposed rules, notices and presidential documents with title, agencies, dates, abstract and full text. Filter by type and date. Free, no key.

- **URL**: https://apify.com/ponderable\_hydrometer/federal-register-scraper.md
- **Developed by:** [Ponderable Hydrometer](https://apify.com/ponderable_hydrometer) (community)
- **Categories:** Developer tools, Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

**Search the entire US Federal Register — final rules, proposed rules, notices and presidential documents — and get one clean row per document, with optional full text.** Built on the official keyless Federal Register API, paging through whole result sets. Filter by type, agency and date.

Perfect for regulatory monitoring, compliance and legal research, policy datasets, and rulemaking alerts.

### What you get

One result per document:

- **Identity** — `documentNumber`, `title`, `type` (Rule / Proposed Rule / Notice / Presidential Document), `action`
- **Publishing** — `publicationDate`, `citation`
- **Agencies** — array of `{ name, slug, id }`
- **Content** — `abstract`, and `fullText` (plain-text body) when `includeFullText` is on
- **Links** — `htmlUrl`, `pdfUrl`

### Modes

- **Search** — combine `query` (free-text across title and full text), `type`, `agencies` and a publication-date range; sort by `newest`, `oldest` or `relevance`. Pages through the whole result set via `next_page_url`.
- **Lookup** — pass `documentNumbers` to fetch specific documents directly.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `query` | string | — | Free-text across title and full text |
| `type` | array | — | `RULE`, `PRORULE`, `NOTICE`, `PRESDOCU` |
| `agencies` | array | — | Agency slugs, e.g. `environmental-protection-agency` |
| `publicationDateGte` / `publicationDateLte` | string | — | Date range (`YYYY-MM-DD`) |
| `order` | string | `newest` | `newest`, `oldest` or `relevance` |
| `includeFullText` | boolean | `false` | Also fetch the full plain-text body (extra request per doc) |
| `documentNumbers` | array | — | Look up specific documents by number |
| `maxResults` | integer | `100` | Cap on documents returned |

Provide a search (`query`/`type`/`agencies`/`publicationDate*`) or `documentNumbers`.

### Example input

```json
{
  "query": "artificial intelligence",
  "type": ["RULE", "PRORULE"],
  "publicationDateGte": "2025-01-01",
  "maxResults": 200
}
````

One agency's notices:

```json
{ "agencies": ["securities-and-exchange-commission"], "type": ["NOTICE"], "maxResults": 100 }
```

### Example output (one document)

```json
{
  "documentNumber": "2025-23783",
  "title": "Safe and Secure Innovation in Artificial Intelligence",
  "type": "Rule",
  "action": "Final rule.",
  "publicationDate": "2025-11-04",
  "citation": "90 FR 43217",
  "agencies": [
    { "name": "Commerce Department", "slug": "commerce-department", "id": 54 },
    { "name": "National Institute of Standards and Technology", "slug": "national-institute-of-standards-and-technology", "id": 297 }
  ],
  "abstract": "This final rule establishes reporting requirements for developers of dual-use foundation models...",
  "htmlUrl": "https://www.federalregister.gov/documents/2025/11/04/2025-23783/...",
  "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2025-11-04/pdf/2025-23783.pdf",
  "fullText": null
}
```

### Why this actor

- **Every document type** — rules, proposed rules, notices and presidential documents in one query.
- **Deep paging** — pulls the whole result set, not just the first page.
- **Optional full text** — one flag adds the plain-text body per document for RAG or NLP.
- **Keyless, official, reliable** — free government API with retry/backoff and a descriptive User-Agent.

### Notes

- Data is the official Federal Register REST API — free, no key.
- `includeFullText` adds one request per document, so large runs are slower.
- Public data; you are responsible for compliant use. Not a government service.

### Pricing

Pay per result — **$3 per 1,000 results** (one result = one document). No subscription or platform fees.

### Related actors

- **eCFR Scraper** — the codified Code of Federal Regulations.
- **SEC EDGAR Filings Scraper** — US public-company filings.
- **FDA Recalls Scraper** — drug, device and food recalls.

# Actor input Schema

## `query` (type: `string`):

Free-text search across document title and full text, e.g. "artificial intelligence".

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

Filter by document type. RULE = final rule, PRORULE = proposed rule, NOTICE, PRESDOCU = presidential document.

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

Filter by agency slug, e.g. \["environmental-protection-agency", "securities-and-exchange-commission"].

## `publicationDateGte` (type: `string`):

Earliest publication date, YYYY-MM-DD.

## `publicationDateLte` (type: `string`):

Latest publication date, YYYY-MM-DD.

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

Sort results by. "newest", "oldest" or "relevance".

## `includeFullText` (type: `boolean`):

Also fetch each document's full plain-text body (extra request per document, slower).

## `documentNumbers` (type: `array`):

Look up specific documents by number, e.g. \["2025-23783"].

## `maxResults` (type: `integer`):

Cap on number of documents returned.

## Actor input object example

```json
{
  "query": "artificial intelligence",
  "order": "newest",
  "includeFullText": false,
  "maxResults": 100
}
```

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

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

# Run the Actor and wait for it to finish
run = client.actor("ponderable_hydrometer/federal-register-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "artificial intelligence"
}' |
apify call ponderable_hydrometer/federal-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ponderable_hydrometer/federal-register-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Federal Register Scraper — US Rules & Notices",
        "description": "Scrape the US Federal Register — rules, proposed rules, notices and presidential documents with title, agencies, dates, abstract and full text. Filter by type and date. Free, no key.",
        "version": "0.1",
        "x-build-id": "fsF5aCagdcaeIyQLI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ponderable_hydrometer~federal-register-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ponderable_hydrometer-federal-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ponderable_hydrometer~federal-register-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ponderable_hydrometer-federal-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ponderable_hydrometer~federal-register-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ponderable_hydrometer-federal-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Search term",
                        "type": "string",
                        "description": "Free-text search across document title and full text, e.g. \"artificial intelligence\"."
                    },
                    "type": {
                        "title": "Document type",
                        "type": "array",
                        "description": "Filter by document type. RULE = final rule, PRORULE = proposed rule, NOTICE, PRESDOCU = presidential document.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "RULE",
                                "PRORULE",
                                "NOTICE",
                                "PRESDOCU"
                            ],
                            "enumTitles": [
                                "Final Rule",
                                "Proposed Rule",
                                "Notice",
                                "Presidential Document"
                            ]
                        }
                    },
                    "agencies": {
                        "title": "Agencies (slugs)",
                        "type": "array",
                        "description": "Filter by agency slug, e.g. [\"environmental-protection-agency\", \"securities-and-exchange-commission\"].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "publicationDateGte": {
                        "title": "Published on or after",
                        "type": "string",
                        "description": "Earliest publication date, YYYY-MM-DD."
                    },
                    "publicationDateLte": {
                        "title": "Published on or before",
                        "type": "string",
                        "description": "Latest publication date, YYYY-MM-DD."
                    },
                    "order": {
                        "title": "Sort order",
                        "enum": [
                            "newest",
                            "oldest",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "Sort results by. \"newest\", \"oldest\" or \"relevance\".",
                        "default": "newest"
                    },
                    "includeFullText": {
                        "title": "Include full text",
                        "type": "boolean",
                        "description": "Also fetch each document's full plain-text body (extra request per document, slower).",
                        "default": false
                    },
                    "documentNumbers": {
                        "title": "Specific document numbers",
                        "type": "array",
                        "description": "Look up specific documents by number, e.g. [\"2025-23783\"].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap on number of documents returned.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
