FDA Recalls Monitor – Food, Drug & Device Recalls API avatar

FDA Recalls Monitor – Food, Drug & Device Recalls API

Pricing

from $5.00 / 1,000 recalls

Go to Apify Store
FDA Recalls Monitor – Food, Drug & Device Recalls API

FDA Recalls Monitor – Food, Drug & Device Recalls API

Get FDA recalls and enforcement reports for food, drugs and medical devices from openFDA as clean JSON. Filter by recall class, firm, state and date, and monitor new recalls daily. Built for compliance teams and AI agents (MCP).

Pricing

from $5.00 / 1,000 recalls

Rating

0.0

(0)

Developer

Dzmitry Mamyrau

Dzmitry Mamyrau

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

FDA Recalls Monitor returns FDA recalls (enforcement report records) for food, drugs and medical devices as clean, normalized JSON. Data comes straight from the official openFDA enforcement API. Filter by keyword, recalling firm, recall class (Class I, II, III), status, state, country and date range, or switch on only new mode to monitor for recalls you have not seen before. No FDA API key or code required.

What does FDA Recalls Monitor do?

  • Searches the openFDA food, drug and device enforcement endpoints and returns one dataset item per recall.
  • Normalizes fields: ISO dates (YYYY-MM-DD), null for missing values, and a direct link to the FDA Enforcement Report page.
  • Remembers what it has already returned for a given monitorId, so scheduled runs deliver only new recalls.
  • Handles openFDA paging limits and rate limits (retries with backoff) for you.

Who is it for?

  • Compliance and regulatory teams tracking recalls that affect their products or suppliers.
  • Quality assurance and food safety teams watching for allergen, Listeria, Salmonella or contamination recalls.
  • Supply chain and procurement monitoring supplier and manufacturer recall history.
  • E-commerce and retail sellers who must pull recalled products fast.
  • Insurers, researchers and journalists analysing recall trends.
  • AI agents and LLM workflows that need structured recall data through the Apify MCP server.

Features

  • Food, drug and medical device recalls in one actor.
  • Filters: searchText, recallingFirm, classification, status, state, country, dateFrom, dateTo.
  • Choose the date used for filtering and sorting: FDA publication date (reportDate) or recallInitiationDate.
  • Only-new monitoring with onlyNew and monitorId.
  • Optional includeRaw adds the unmodified openFDA record.
  • Results are newest first within each category.
  • Export as JSON, CSV, Excel, XML or HTML, or read through the Apify API.

Input

FieldTypeDescription
categoriesarrayfood, drug, device. Default: ["food"].
searchTextstringKeywords matched against product description and reason for recall. All words must appear.
recallingFirmstringCompany that initiated the recall (phrase match, case-insensitive).
classificationstringClass I (most severe), Class II, Class III. Empty for all.
statusstringOngoing, Completed, Terminated, Pending. Empty for all.
statestringTwo-letter US state code of the recalling firm, e.g. CA.
countrystringCountry name of the recalling firm as used by FDA, e.g. Canada.
dateFromstringEarliest date, YYYY-MM-DD, inclusive.
dateTostringLatest date, YYYY-MM-DD, inclusive.
dateFieldstringreportDate (default) or recallInitiationDate.
onlyNewbooleanSkip recalls already returned for the same monitorId. Default false.
monitorIdstringName of the monitoring job. Required when onlyNew is true.
maxResultsintegerMaximum recalls to return. Default 10. Also caps cost.
includeRawbooleanAdd the raw openFDA record in raw. Default false.
openFdaApiKeystringOptional free openFDA key for very large runs.

Example input:

{
"categories": ["food"],
"searchText": "undeclared peanut",
"classification": "Class I",
"dateFrom": "2025-01-01",
"maxResults": 50
}

Output

Each dataset item is one recall. Example:

{
"recallNumber": "F-0276-2017",
"category": "food",
"classification": "Class II",
"status": "Completed",
"reportDate": "2016-12-21",
"recallInitiationDate": "2016-11-30",
"recallingFirm": "Example Foods Inc.",
"productDescription": "Roasted peanut butter, 16 oz jar",
"reasonForRecall": "Product may contain undeclared milk.",
"codeInfo": "Lot 1234, best by 2017-11-01",
"distributionPattern": "Nationwide",
"quantity": "1,200 jars",
"city": "Austin",
"state": "TX",
"country": "United States",
"voluntaryMandated": "Voluntary: Firm initiated",
"eventId": "75000",
"sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=75000"
}

The default dataset has a "Recalls" table view. Values above are illustrative.

Pricing

$5 per 1,000 recalls ($0.005 per result), plus a tiny Apify start fee per run. You only pay for results returned, and maxResults caps your cost. Apify's free plan credits cover many test runs.

How to use

Apify Console

Open the actor, keep the default input (10 newest food recalls) and click Start. Results appear in the dataset.

API

curl -X POST "https://api.apify.com/v2/acts/whitel1ght~fda-recalls/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"categories":["food","drug","device"],"classification":"Class I","maxResults":20}'

Monitor new recalls daily

Create a schedule in Apify Console and use input like:

{
"categories": ["food"],
"searchText": "listeria",
"onlyNew": true,
"monitorId": "listeria-watch",
"maxResults": 100
}

The first run returns everything that matches (the baseline). Each later run returns only new recalls. Add a webhook or an integration (Slack, email, Zapier, Make) to get alerted. Use a different monitorId for each set of filters.

AI agents and MCP

Use this actor from Claude, Cursor or any MCP client through the Apify MCP server: add whitel1ght/fda-recalls as a tool, then ask for example "Any new Class I drug recalls this week?". The typed input and output make it easy for agents to call and parse.

FAQ

Where does the data come from? The official openFDA enforcement API (food, drug, device endpoints), which publishes FDA Enforcement Report data.

How often is it updated? FDA publishes Enforcement Reports weekly, and openFDA refreshes its data on a similar cadence. Schedule the actor daily or weekly.

Are there limits? openFDA allows 1,000 records per request and 25,000 skipped records. The actor splits large date ranges automatically. A single day with more than 25,000 matches is truncated. Without a key openFDA allows about 240 requests per minute per IP, which is enough for normal use.

Do I need an openFDA API key? No. A free key in openFdaApiKey only helps very large runs.

Is this affiliated with the FDA? No. It is an independent tool that uses public openFDA data and is not affiliated with or endorsed by the FDA. Do not use it for medical decisions; verify against the FDA source link in sourceUrl.

Can I get every category at once? Yes, set categories to ["food","drug","device"]. Results are streamed per category, each newest first.

Changelog

  • 0.1 – Food, drug and device recalls, filters, only-new monitoring, raw record option, pay-per-result pricing.