Federal Register

Federal Register rules, proposed rules, and notices by agency

This Actor queries the official Federal Register API for feeds (agencies, document types, terms) and emits source-linked digest rows with watch-term matches. feeds is required.

Not a crawl of arbitrary .gov HTML (use Regulatory Alerts Scraper for that). Not legal advice. Not eCFR section diffs.

from $8.00 / 1,000 Federal Register digest ($0.008 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.

Open Federal Register Scraper on Apify

Federal Register Scraper, not a neighboring Actor

Use this page for this Actor’s job. Use Regulatory Alerts Scraper for Gov page text diffs; Use Campaign Finance Scraper for FEC/LDA filings; Use Docs & Changelog Drift Scraper for Docs/changelog diffs.

This ActorRegulatory Alerts ScraperCampaign Finance ScraperDocs & Changelog Drift Scraper
Intent Federal Register ScraperGov page text diffsFEC/LDA filingsDocs/changelog diffs
Primary input see schematargets[]feeds / watchTermsdoc URLs
What it reads Public sources listed on the Store pagepublic gov HTMLOpenFEC / LDA.govpublic docs HTML
Primary output Dataset rows billed per live PPEregulatory change rowscampaign digest rowsdrift rows
Not this job Not a crawl of arbitrary .gov HTML (use Regulatory Alerts Scraper for that). Not legal advice. Not eCFR section diffs.Not Federal Register API docsNot OFAC sanctions or Federal RegisterNot Federal Register rules

Store ID: taroyamada/federal-register-digest. Respect source terms, robots.txt, and rate limits.

Use cases

How is Federal Register Scraper different from Regulatory Alerts Scraper and Campaign Finance Scraper?

Federal Register Scraper (taroyamada/federal-register-digest): This Actor queries the official Federal Register API for feeds (agencies, document types, terms) and emits source-linked digest rows with watch-term matches. feeds is required. Not a crawl of arbitrary .gov HTML (use Regulatory Alerts Scraper for that). Not legal advice. Not eCFR section diffs. Regulatory Alerts Scraper is for Gov page text diffs (input targets[]; public gov HTML; regulatory change rows). Not Federal Register API docs. Campaign Finance Scraper is for FEC/LDA filings (input feeds / watchTerms; OpenFEC / LDA.gov; campaign digest rows). Not OFAC sanctions or Federal Register. Docs & Changelog Drift Scraper is for Docs/changelog diffs (input doc URLs; public docs HTML; drift rows). Not Federal Register rules.

What input is required?

Live required fields: feeds. Published exampleRunInput is shown below. Quickstart: set feeds with at least one entry (agencySlug + documentTypes), optionally add watchTerms to flag relevant topics, and set delivery=dataset

Field Type Default Notes
feeds object[] required empty required Feeds to monitor (required). One entry per agency/topic watch target. Each feed produces one summary digest row. Set agencySlug and documentTypes to narrow the stream; add keywords for keyword filtering. Each item supports id, name, agencySlug, agencySlugs, documentTypes, keywords, lookbackDays.
watchTerms string empty Watch terms (comma-separated). Keywords, company names, or regulatory topics to flag in document titles and abstracts. Matching documents receive a watch_term_hit signal tag.
lookbackDays integer 7 Global lookback window (days). Fetch documents published within this many days. Use 7–14 for recurring scheduled runs; widen to 30+ for initial discovery. min=1 max=365
maxDocsPerFeed integer 50 Max documents per feed. Upper bound on documents fetched per feed per run. Increase for broad discovery; keep low (50) for fast recurring digest runs. min=1 max=1000
maxPagesPerFeed integer 5 Max API pages per feed. Hard page cap per feed to prevent runaway pagination. Each page fetches up to 100 documents. min=1 max=20
delivery string enum dataset Delivery mode. dataset stores results in the Apify dataset. webhook posts the digest JSON to webhookUrl. enum: dataset, webhook
webhookUrl string empty Webhook URL (required when delivery=webhook). POST target for the digest payload. Leave empty for dataset delivery.
datasetMode string enum all Dataset output mode. all emits every feed digest row. action_needed emits only feeds with watch-term hits. new_only emits only feeds with documents not seen in the previous run. enum: all, action_needed, new_only
snapshotKey string federal-register-digest-state Snapshot key for recurring state. Stable key used to persist seen document numbers across recurring runs so new_only and action_needed modes stay comparable. Use the same key across scheduled runs.
federalRegisterApiUrl string https://www.federalregister.gov/api/v1/documents.json Federal Register API URL. Federal Register documents endpoint. No authentication required.
requestTimeoutSeconds integer 30 HTTP request timeout (seconds). Timeout for each API request. min=5 max=120
notifyOnNoNew boolean true Emit digest even when no new documents found. When true, every feed always produces a digest row even if no new documents were found. When false, feeds with no new documents are omitted from the output.
dryRun boolean false Dry run (skip snapshot writes and webhook delivery). Validate and fetch without persisting state or posting webhooks. Safe for testing input shapes.
nowIso string empty Override current time (ISO string, for testing). Set to a fixed ISO timestamp to make runs deterministic against fixture data.
fixturePath string empty Fixture file path (testing). Local JSON fixture for offline tests. When set, all feeds use this file instead of the live API.

Published Store example run input (omitted fields take schema defaults):

{
  "feeds": [
    {
      "id": "epa-rules-proposed",
      "name": "EPA Rules & Proposed Rules",
      "agencySlug": "environmental-protection-agency",
      "documentTypes": "RULE,PRORULE",
      "keywords": ""
    }
  ],
  "watchTerms": "climate,emissions,clean air,greenhouse,PFAS",
  "lookbackDays": 7,
  "maxDocsPerFeed": 50,
  "maxPagesPerFeed": 5,
  "delivery": "dataset",
  "datasetMode": "all",
  "snapshotKey": "federal-register-digest-quickstart",
  "notifyOnNoNew": true,
  "dryRun": false
}

Run Federal Register Scraper on Apify

How do dataset, webhook, and dry-run delivery work?

delivery defaults to dataset on the live schema. Dataset output is the billable surface when rows are written. webhookUrl is used when delivery is webhook (and typically not during dryRun). dryRun true validates or samples without the usual dataset/webhook side effects described on the Store schema. datasetMode can limit emits to changes_only / changed_only / action_needed versus all. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.

What does a result contain?

Published README Output Example / Sample Output JSON. Treat README samples as illustrations, not a live coverage guarantee. There is no published output JSON schema on the Store page.

How is Federal Register Scraper priced?

Billing is pay per event. The live Store card is from $8.00 / 1,000 Federal Register digest ($0.008 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE. Current PPE:

Event Price Emitted when
apify-default-dataset-item (Federal Register digest) $0.008 Charged only for one delivered Federal Register agency or topic digest row.

The published README Cost block is stale versus the live Store pricing tab. README Cost still quotes actor-start $0.01. README Cost quotes dataset-item $0.003; live primary is $0.008 (Federal Register digest). Live: Federal Register digest $0.008. This page quotes live PPE only.

from $8.00 / 1,000 Federal Register digest ($0.008 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.

See Federal Register Scraper pricing on Apify

Limits to keep in mind

Open Federal Register Scraper on Apify

Related pages