FDA warning letters
FDA warning-letter and import-alert digests from public agency feeds
This Actor monitors public FDA warning-letter and import-alert metadata from official sources and emits source-linked digest rows. Leave feeds empty for the default warning-letters feed, or add issuing offices and watch terms.
Informational only. Not legal, regulatory, or medical advice. Not a prospecting list or outreach tool. Not ClinicalTrials.gov and not HHS OCR breach notices.
from $8.00 / 1,000 FDA warning letter digest row ($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 FDA Warning Letters Scraper on Apify
FDA Warning Letters Scraper, not a neighboring Actor
Use this page for this Actor’s job. Use ClinicalTrials.gov Sponsor Pipeline Scraper for Clinical trial records; Use HHS Healthcare Data Breach Change Scraper for HHS OCR breaches; Use EPA ECHO Enforcement Scraper for EPA ECHO records.
| This Actor | ClinicalTrials.gov Sponsor Pipeline Scraper | HHS Healthcare Data Breach Change Scraper | EPA ECHO Enforcement Scraper | |
|---|---|---|---|---|
| Intent | FDA Warning Letters Scraper | Clinical trial records | HHS OCR breaches | EPA ECHO records |
| Primary input | see schema | sponsor/condition watches | portal watch | targets[] |
| What it reads | Public sources listed on the Store page | ClinicalTrials.gov | HHS OCR | EPA ECHO public pages |
| Primary output | Dataset rows billed per live PPE | trial change rows | breach change rows | ECHO digest rows |
| Not this job | Informational only. Not legal, regulatory, or medical advice. Not a prospecting list or outreach tool. Not ClinicalTrials.gov and not HHS OCR breach notices. | Not FDA warning letters | Not FDA warning letters | Not FDA warning letters |
Store ID: taroyamada/fda-warning-letter-digest. Respect source terms, robots.txt, and rate limits.
Use cases
- Watch CDER/CDRH warning letters for named companies or cGMP terms
- Recurring snapshotKey runs for new/changed letters
- Webhook when watchTerms match
How is FDA Warning Letters Scraper different from ClinicalTrials.gov Sponsor Pipeline Scraper and HHS Healthcare Data Breach Change Scraper?
FDA Warning Letters Scraper (taroyamada/fda-warning-letter-digest): This Actor monitors public FDA warning-letter and import-alert metadata from official sources and emits source-linked digest rows. Leave feeds empty for the default warning-letters feed, or add issuing offices and watch terms. Informational only. Not legal, regulatory, or medical advice. Not a prospecting list or outreach tool. Not ClinicalTrials.gov and not HHS OCR breach notices. ClinicalTrials.gov Sponsor Pipeline Scraper is for Clinical trial records (input sponsor/condition watches; ClinicalTrials.gov; trial change rows). Not FDA warning letters. HHS Healthcare Data Breach Change Scraper is for HHS OCR breaches (input portal watch; HHS OCR; breach change rows). Not FDA warning letters. EPA ECHO Enforcement Scraper is for EPA ECHO records (input targets[]; EPA ECHO public pages; ECHO digest rows). Not FDA warning letters.
What input is required?
Live required fields: none listed (see live fields). Published exampleRunInput is shown below. Quickstart: leave feeds empty to monitor the default public FDA warning letters feed, set lookbackDays=30, keep delivery=dataset, and reuse the same snapshotKey for scheduled runs
| Field | Type | Default | Notes |
|---|---|---|---|
feeds |
object[] | empty |
Feeds to monitor. One entry per monitored feed or watchlist. Leave empty to use the default public warning_letters_latest feed. import_alerts and govdelivery are optional advanced feeds and are not enabled by default in v1. Each item supports id, name, source, searchQuery, watchTerms, lookbackDays, maxItems, maxPages, issuingOffices, alertNumbers, bulletinUrls, includeDetailPages, detailFetchLimit. item required: source |
watchTerms |
string | empty |
Global watch terms (comma-separated). Applied to every feed in addition to any feed-level watchTerms. Matching new/changed items trigger action_needed. |
lookbackDays |
integer | 30 |
Global lookback window (days). How far back to look for warning-letter posting dates, import-alert publish dates, or bulletin send dates. min=1 max=365 |
maxItemsPerFeed |
integer | 50 |
Max items per feed. Upper bound on normalized items per feed. Lower values keep recurring runs maintenance-light. min=1 max=200 |
maxPagesPerFeed |
integer | 5 |
Max warning-letter datatables pages. Only used for warning_letters feeds. Stop after this many public datatables requests even if the lookback window is broader. min=1 max=50 |
maxDetailFetchesPerFeed |
integer | 25 |
Max import alert detail pages per feed. Cap on detail-page enrichment for import_alerts feeds. min=0 max=100 |
delivery |
string enum | dataset |
Delivery mode. dataset writes digest rows to the Apify dataset; webhook POSTs the digest payload to webhookUrl. enum: dataset, webhook |
webhookUrl |
string | empty |
Webhook URL (required when delivery=webhook). POST target for the digest payload. |
datasetMode |
string enum | all |
Dataset output mode. all emits every digest row. action_needed emits only feeds with changed items matching watch terms (plus errors). changed_only emits only feeds with new or updated items (plus errors). enum: all, action_needed, changed_only |
snapshotKey |
string | fda-warning-letter-digest-state |
Snapshot key for recurring state. Stable key used to persist prior signatures per record so new and updated warning letters/import alerts can be detected across scheduled runs. |
notifyOnNoNew |
boolean | true |
Emit stable digest rows in delivery outputs. When false, delivery outputs omit feeds with no new or updated items unless the feed errored. Local output/results.json still contains the full payload. |
requestTimeoutSeconds |
integer | 30 |
HTTP request timeout (seconds). Timeout for each public source request. min=5 max=120 |
batchDelayMs |
integer | 0 |
Delay between feeds (ms). Milliseconds to wait between feed fetches. min=0 max=10000 |
warningLettersApiUrl |
string | https://www.fda.gov/datatables/views/ajax |
Warning letters datatables API URL. Advanced override for the public FDA warning letters datatables endpoint. |
importAlertsIndexUrl |
string | https://www.accessdata.fda.gov/cms_ia/iapublishdate.html |
Import alerts index URL. Advanced override for the public import alerts by publish date page. |
dryRun |
boolean | false |
Dry run (skip snapshot writes and delivery). Fetch and assemble the digest without persisting state or posting webhooks. |
nowIso |
string | empty |
Override current time (ISO string, for testing). Set to a fixed ISO timestamp to make runs deterministic against fixture data. |
Published Store example run input (omitted fields take schema defaults):
{
"feeds": [
{
"id": "cder-warning-letters",
"name": "CDER Warning Letters",
"source": "warning_letters",
"issuingOffices": "Center for Drug Evaluation and Research",
"maxItems": 25
}
],
"watchTerms": "Acme, sterile, cGMP",
"lookbackDays": 30,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "fda-warning-letters-prod",
"dryRun": false
}
Run FDA Warning Letters 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 FDA Warning Letters Scraper priced?
Billing is pay per event. The live Store card is from $8.00 / 1,000 FDA warning letter digest row ($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 (FDA warning letter digest row) |
$0.008 | Charged only when an FDA warning letter digest row is delivered. |
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 (FDA warning letter digest row). Live: FDA warning letter digest row $0.008. This page quotes live PPE only.
from $8.00 / 1,000 FDA warning letter digest row ($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 FDA Warning Letters Scraper pricing on Apify
Limits to keep in mind
- Public FDA sources only
- import_alerts and govdelivery are optional advanced feeds
- maxPagesPerFeed caps datatables requests
- Not professional advice
- Respect source terms, robots.txt, and rate limits.
Open FDA Warning Letters Scraper on Apify
Related pages
- ClinicalTrials.gov Sponsor Pipeline Scraper — Trial records, not warning letters.
- HHS Healthcare Data Breach Change Scraper — HHS OCR breaches, not FDA letters.
- EPA ECHO Enforcement Scraper — EPA ECHO facilities, not FDA letters.
- Product Safety Recall Scraper — FDA/CPSC recalls, not warning-letter dockets.
- eCFR CFR Section Change Watch — title, part, and section diffs.
- CPSC Product Recall Marketplace Watch — official recall alerts.
- NHTSA Recall & Complaint Watch — make, model, campaign watches.
- EPA ECHO Facility Watch — enforcement and compliance alerts.
- Clinical Trial & FDA Signal Alerts — trials + openFDA, not warning letters.
- FDA 510(k) Device Clearance Landscape Report — 510(k) clearances.
- DailyMed Label Change Watch Report — SPL metadata/versions.
- Tools