eCFR CFR Section Change Watch Scraper avatar

eCFR CFR Section Change Watch Scraper

Pricing

from $60.00 / 1,000 ecfr change alerts

Go to Apify Store
eCFR CFR Section Change Watch Scraper

eCFR CFR Section Change Watch Scraper

Try Input: 1 CFR part watch + 1 change row ≈ USD 0.01–0.03/watch. From USD 0.01. Paste a CFR watch and Start.

Pricing

from $60.00 / 1,000 ecfr change alerts

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Paid first-run JSON ≈ Try Input: 1 CFR part watch + 1 change row ≈ USD 0.01–0.03/watch. From USD 0.01. Paste a CFR watch and Start. Keep the first run bounded; this does not change the Actor's Store pricing. Open Try for free → Input and run this JSON.

{
"feeds": [
{
"id": "21-cfr-11",
"name": "21 CFR Part 11",
"cfrTitle": 21,
"part": "11",
"keywords": "electronic records"
}
],
"dryRun": false
}

Store Quickstart

Run the bounded paid first-run JSON above first; keep report/export options off unless needed.

{
"feeds": [
{
"id": "21-cfr-11",
"name": "21 CFR Part 11",
"cfrTitle": 21,
"part": "11",
"keywords": "electronic records"
}
],
"dryRun": false
}
{
"feeds": [
{
"id": "21-cfr-11",
"name": "21 CFR Part 11",
"cfrTitle": 21,
"part": "11",
"keywords": "electronic records,electronic signatures"
}
],
"watchTerms": "validation,audit trail,signature",
"datasetMode": "new_only",
"notifyOnNoNew": false
}

Use with Apify MCP

Exact actor: taroyamada/ecfr-cfr-section-change-watch-scraper

Sample input JSON:

{
"feeds": [
{
"id": "21-cfr-11",
"name": "21 CFR Part 11",
"cfrTitle": 21,
"part": "11",
"keywords": "electronic records,electronic signatures"
}
]
}

Regulatory ops, legal ops, and compliance teams use this actor to watch selected CFR titles, parts, and sections from the official eCFR API. Provide CFR citations such as 21 CFR Part 11, 40 CFR Part 60, or 29 CFR 1910.1200. The actor returns source-linked digest rows with current-as-of evidence, watch-term hits, and no-change suppression for recurring runs.

Run the next report

Input Examples

{
"feeds": [
{ "id": "medical-device-quality", "name": "21 CFR 820", "cfrTitle": 21, "part": "820", "keywords": "quality system" }
],
"watchTerms": "corrective action,design controls"
}
{
"feeds": [
{ "id": "air-emissions", "name": "40 CFR Part 60", "cfrTitle": 40, "part": "60", "keywords": "emissions,performance standards" },
{ "id": "hazcom", "name": "29 CFR 1910.1200", "cfrTitle": 29, "part": "1910", "section": "1200", "keywords": "hazard communication" }
],
"datasetMode": "action_needed",
"notifyOnNoNew": false
}
{
"feeds": [
{ "id": "bank-compliance", "name": "12 CFR Part 1005", "cfrTitle": 12, "part": "1005", "keywords": "electronic fund transfer" }
],
"delivery": "webhook",
"webhookUrl": "https://example.com/regulatory-webhook",
"snapshotKey": "bank-cfr-watch-prod"
}

Sample Output

{
"actorName": "ecfr-cfr-section-change-watch-scraper",
"rowType": "ecfr_digest",
"feedId": "21-cfr-11",
"feedName": "21 CFR Part 11",
"checkedAt": "2026-05-07T00:00:00.000Z",
"status": "action_needed",
"newDocCount": 1,
"totalDocCount": 1,
"changedSinceLastRun": true,
"actionNeeded": true,
"reviewNote": "Review source-linked CFR records matching watch terms: audit trail. This row is not an official legal-status determination.",
"signalTags": ["ecfr_version_seen", "new_document", "watch_term_hit"],
"watchTermHits": [
{
"term": "audit trail",
"docNumber": "21 CFR Part 11:8f3a1c2d4e5f6789",
"title": "21 CFR Part 11 change watch",
"docType": "CFR_SECTION",
"primaryAgency": "Office of the Federal Register / eCFR",
"publicationDate": "2026-05-01",
"htmlUrl": "https://www.ecfr.gov/current/title-21/part-11"
}
],
"documents": [
{
"docNumber": "21 CFR Part 11:8f3a1c2d4e5f6789",
"docType": "CFR_SECTION",
"sourceUrl": "https://www.ecfr.gov/api/renderer/v1/content/enhanced/current/title-21?part=11",
"currentAsOf": "2026-05-01",
"officialLegalEdition": false,
"limitations": ["Verify legal effect against the official CFR edition and Federal Register source documents."]
}
]
}

Output Fields

  • actorName, rowType: stable canary and downstream routing fields; rowType is ecfr_digest.
  • feedId, feedName, checkedAt: watch target identity and run timestamp.
  • status: stable, watch, action_needed, or error.
  • changedSinceLastRun, newDocCount: snapshot comparison against the previous run.
  • watchTermHits: matched terms and source-linked CFR evidence.
  • documents[].sourceUrl, documents[].htmlUrl, documents[].currentAsOf: primary source traceability.
  • documents[].officialLegalEdition: always false; eCFR is an editorial/current compilation and users should verify legal effect.

Pricing And No-Change Billing

This actor uses PAY_PER_EVENT billing. Quick test runs can emit a small digest row, while operational watch runs should focus on alert and report events.

  • apify-actor-start: $0.00005
  • ecfr-change-alert: $0.06
  • ecfr-digest: $0.35
  • ecfr-report: $3.00 (reserved for future bundled report mode)

Runtime-charged event names are ecfr-change-alert for action-needed/watch-term rows and ecfr-digest for non-alert digest rows. Delivery must receive Apify chargedCount >= 1 before a billable row is considered delivered.

Recurring no-change polls should use datasetMode="new_only" and notifyOnNoNew=false, so unchanged feeds do not emit default dataset rows. Dataset and webhook delivery both push billable rows through Apify Actor.pushData(row, eventName) before delivery; webhook users do not bypass PPE billing.

Compliance Guardrails

  • eCFR is informational/current and updated daily; it is not the official legal edition of the CFR.
  • Do not present output as professional legal guidance, proof of compliance, or an official agency determination.
  • Do not use agency marks or imply agency approval.
  • Keep sourceUrl, htmlUrl, and currentAsOf in downstream systems so users can verify the source.

See Also