Harmoney OpenFDA Drug Recall Monitor
Pricing
from $0.10 / 1,000 drug recall results
Harmoney OpenFDA Drug Recall Monitor
Collect FDA drug recall enforcement records from the public openFDA API and output normalized recall items.
Pricing
from $0.10 / 1,000 drug recall results
Rating
0.0
(0)
Developer
Jesper Tolvers
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
OpenFDA Drug Recall Monitor
Export normalized public FDA drug recall enforcement records from the official openFDA API. The Actor is designed for bounded research, compliance monitoring, journalism, supply-chain checks, and automations that need structured JSON rather than a web page.
Not medical advice. This Actor reports public enforcement data without interpreting clinical risk. Confirm decisions against the linked official FDA source and your qualified professional workflow.
Why use it?
- Official public source:
api.fda.gov/drug/enforcement.json - Date, FDA status, classification, product/firm/reason phrase filters
- Newest report dates first
- Normalized JSON dataset plus a machine-readable
OUTPUT_SUMMARY - Hard maximum of 200 records per run
- No browser, proxy, account, API token, or paid source required
- Location fields are excluded by default for data minimization
Input
{"daysBack": 90,"status": "Any","classification": "Class II","searchText": "metformin","includeLocation": false,"maxItems": 25}
You can replace the rolling daysBack window with inclusive startDate and endDate values in YYYY-MM-DD format.
| Field | Default | Limits | Purpose |
|---|---|---|---|
daysBack | 30 | 1–730 | Rolling UTC window when startDate is empty |
startDate | calculated | valid date | Inclusive FDA report-date lower bound |
endDate | today (UTC) | valid date | Inclusive FDA report-date upper bound |
status | Any | fixed options | Any, Ongoing, Completed, or Terminated |
classification | Any | fixed options | Any, Class I, Class II, or Class III |
searchText | empty | 100 chars | Literal phrase in product, recalling firm, or recall reason |
includeLocation | false | boolean | Include public city/state/country fields |
maxItems | 50 | 1–200 | Hard dataset output cap |
Do not put credentials, secrets, or unnecessary personal data in searchText. Secret-like input is rejected and the literal search text is never written to Actor logs or the summary.
Output
Each dataset item is one FDA drug enforcement record:
{"recallNumber": "D-0643-2026","reportDate": "2026-07-08","classification": "Class II","status": "Ongoing","productType": "Drugs","productDescription": "...","reasonForRecall": "...","recallingFirm": "...","source": "openFDA Drug Enforcement API","sourceUrl": "https://open.fda.gov/apis/drug/enforcement/","fetchedAt": "2026-07-16T07:06:40.523Z","disclaimer": "Public FDA enforcement data only; not medical advice and not a substitute for the official record."}
The default key-value store also receives OUTPUT_SUMMARY, containing the item/request counts, effective date range, non-sensitive filter metadata, completion time, source, and disclaimer.
Safety and reliability
- Requests can only go to the fixed HTTPS host
api.fda.gov; users cannot supply URLs. This removes the usual SSRF route. - Network calls time out after 20 seconds and retry transient HTTP 429/5xx failures at most twice.
- A response larger than 5 MB is rejected before data is saved.
- Input and output are bounded; there are no unbounded crawls or recursive schedules.
- Only selected public enforcement fields are emitted. Nested openFDA data is not copied wholesale.
- Location is opt-in. The Actor does not request patient records, adverse-event narratives, credentials, or private health data.
- Invalid input and upstream failures stop the run with an honest error. The Actor never fabricates records.
Limitations
- Data availability, wording, and correction timing are controlled by FDA/openFDA.
- A recall may have several enforcement records.
recallNumberis retained so downstream systems can deduplicate deliberately. - No-match openFDA responses use HTTP 404; this Actor treats that specific response as a successful empty dataset.
- Search uses openFDA's documented query service. Phrase matching is not fuzzy semantic search.
- The Actor does not send alerts by itself. Use Apify schedules/webhooks or export the dataset into your monitoring system.
- Public data can still contain business names and addresses. Enable location output only when your purpose needs it.
Run locally
npm cinpm testnpm run buildapify validate-schemaapify run --purge --input-file examples/INPUT.json
Source and freshness
- openFDA Drug Enforcement API documentation: https://open.fda.gov/apis/drug/enforcement/
- FDA recalls and safety alerts: https://www.fda.gov/safety/recalls-market-withdrawals-safety-alerts
Source availability and integration were last verified 2026-07-16 UTC.
Cost profile
The Actor uses direct JSON requests and no browser. A five-item local integration run on 2026-07-16 used one upstream request, completed in 4.27 seconds including Actor startup, and peaked at about 184 MiB RSS. Cloud usage varies by platform startup and load; the deployed smoke run is the authoritative per-run measurement.