FDA Recall Intelligence Scraper avatar

FDA Recall Intelligence Scraper

Pricing

from $3.99 / 1,000 fda recall results

Go to Apify Store
FDA Recall Intelligence Scraper

FDA Recall Intelligence Scraper

Search, normalize, prioritize, and export FDA food, drug, and medical-device recalls with filters, watchlists, and structured intelligence.

Pricing

from $3.99 / 1,000 fda recall results

Rating

0.0

(0)

Developer

Johnn Mottin

Johnn Mottin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 minutes ago

Last modified

Share

Search, normalize, prioritize, and export FDA food, drug, and medical-device recalls from one Actor. Unofficial community Actor. Not affiliated with or endorsed by the U.S. Food and Drug Administration (FDA).

What this Actor does

The Actor queries the official openFDA enforcement endpoints, converts their partly different records into one stable contract, removes duplicates, computes transparent operational signals, and writes exactly one dataset item for each valid recall. A separate STATS record contains run and quality metrics.

Who it is for

Compliance teams, manufacturers, distributors, retailers, pharmacies, hospitals, insurers, regulatory consultancies, procurement teams, and data teams that need structured public recall metadata.

Supported recall types

  • Food: https://api.fda.gov/food/enforcement.json
  • Drugs: https://api.fda.gov/drug/enforcement.json
  • Medical devices: https://api.fda.gov/device/enforcement.json

Input example

{
"productTypes": ["food", "drug", "device"],
"query": "undeclared allergen",
"classifications": ["Class I", "Class II"],
"states": ["NY", "NJ"],
"dateFrom": "2025-01-01",
"watchlistTerms": ["Example Brand", "peanut"],
"onlyWatchlistMatches": false,
"activeOnly": true,
"sortBy": "reportDateDesc",
"maxResults": 100,
"includeRawOpenFda": false
}

OPENFDA_API_KEY is supported as an optional environment variable. Never put an API key in public input. The Actor never logs the key or a URL containing it.

Output example

{
"recordType": "fda-recall",
"sourceCategory": "food",
"recallNumber": "F-0000-2026",
"eventId": "99999",
"classification": "Class I",
"classificationRank": 3,
"status": "Ongoing",
"isOngoing": true,
"recallingFirm": "Example Foods LLC",
"productDescription": "Example packaged food",
"reasonForRecall": "Label may omit an allergen declaration.",
"reportDate": "2026-01-15",
"isNationwide": true,
"watchlistMatched": true,
"watchlistMatches": ["Example Brand"],
"priorityScore": 100,
"priorityLevel": "critical",
"qualityScore": 100
}

The example is synthetic and illustrates the output contract; it is not an actual FDA recall.

Priority score explanation

The deterministic 0–100 score adds: Class I +45, Class II +25, Class III +10, Not Yet Classified +15, Ongoing/Open +20, nationwide distribution +15, reports from the last 30 days +15, 31–90 days +10, 91–365 days +5, and a watchlist match +20. Scores are capped at 100. Levels are critical (80–100), high (60–79), medium (35–59), and low (0–34).

Priority scores are operational triage signals based on public recall metadata, not medical advice or an FDA risk classification.

Watchlist example

{
"watchlistTerms": ["Example Brand", "lot abc"],
"onlyWatchlistMatches": true
}

Matching is case-insensitive, Unicode-normalized, punctuation-insensitive, and performed only against the recalling firm, product description, recall reason, brand names, and code information. Terms are treated as text, never as regular expressions.

The published enforcement status is source metadata and must not be treated as a real-time recall lifecycle tracker. Do not use this Actor as a public safety alert service. Verify critical decisions with authoritative FDA recall and safety-alert sources.

Scheduling example

In Apify Console, create a daily or weekly schedule for the Actor with a saved input. Each run writes a fresh dataset and its summary to the default key-value store as STATS. openFDA enforcement endpoints are updated periodically, usually weekly; this Actor does not claim real-time updates.

API example

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~fda-recall-intelligence-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"productTypes":["food"],"maxResults":100}'

Limits

Each openFDA request uses at most 1,000 records, skip never exceeds 25,000, request timeout is 15 seconds, retries are limited to two selective attempts, and at most two categories are queried concurrently. maxResults is the global final output cap. To preserve correct filtering, deduplication, and global sorting, each selected category may retrieve up to that limit before the combined result is filtered, deduplicated, sorted, and sliced. A fixed API quota may apply with or without an openFDA key.

Exact company and closed-list filters use openFDA exact fields. Watchlist queries use category-compatible harmonized fields.

Pricing explanation placeholder

Billing is disabled in this version. The intended future model is US$6 per 1,000 commercial results, where one valid, unique dataset record corresponds to one recall-result event. Failed requests, invalid input, duplicates, empty responses, and rejected records are not billable. Pricing will only be configured after economic testing.

Data source

Uses public openFDA data from the official food, drug, and device enforcement APIs. The FDA may revise previously published records.

Medical disclaimer

Does not provide medical advice. Recall classifications and the Actor's operational score must be interpreted using authoritative FDA information and appropriate professional judgment.

Privacy statement

No browser, proxy, login, cookies, or scraping of private data. The Actor processes public recall metadata and optional user-supplied filter terms. Do not include secrets or personal patient information in input.