Harmoney OpenFDA Drug Recall Monitor avatar

Harmoney OpenFDA Drug Recall Monitor

Pricing

from $0.10 / 1,000 drug recall results

Go to Apify Store
Harmoney OpenFDA Drug Recall Monitor

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

Jesper Tolvers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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.

FieldDefaultLimitsPurpose
daysBack301–730Rolling UTC window when startDate is empty
startDatecalculatedvalid dateInclusive FDA report-date lower bound
endDatetoday (UTC)valid dateInclusive FDA report-date upper bound
statusAnyfixed optionsAny, Ongoing, Completed, or Terminated
classificationAnyfixed optionsAny, Class I, Class II, or Class III
searchTextempty100 charsLiteral phrase in product, recalling firm, or recall reason
includeLocationfalsebooleanInclude public city/state/country fields
maxItems501–200Hard 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. recallNumber is 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 ci
npm test
npm run build
apify validate-schema
apify run --purge --input-file examples/INPUT.json

Source and freshness

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.