FDA Recalls Scraper | Drug, Device & Food, 23 Fields avatar

FDA Recalls Scraper | Drug, Device & Food, 23 Fields

Pricing

from $0.60 / 1,000 recall scrapeds

Go to Apify Store
FDA Recalls Scraper | Drug, Device & Food, 23 Fields

FDA Recalls Scraper | Drug, Device & Food, 23 Fields

Scrape FDA drug, device & food recall and enforcement reports as clean JSON. Filter by classification, status, firm, state & date. Free tier, no API key. Works in Claude, ChatGPT & any MCP agent.

Pricing

from $0.60 / 1,000 recall scrapeds

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

FDA Recalls Scraper: Drug, Device & Food, 23 Fields

Pay only for results delivered. Browse all Actors.

šŸ’° From $0.60 / 1,000 results.

Pull FDA recall and enforcement reports as clean JSON across all three openFDA enforcement registries, drug, device and food, with 23 fields per recall: recall number, classification, status, recalling firm, product description, reason for recall, distribution pattern, quantity, voluntary or mandated, city, state, country, three dates, code info, event ID, and openFDA brand, generic and manufacturer names.

Pure HTTP against the official openFDA API. No API key, no login, no browser. Filter by product type, search term, firm, Class I/II/III, recall status, state and date range, and page up to 25,000 records.

Why use this FDA recalls scraper

  • Three registries, one schema. productType switches between drug, device and food enforcement without changing a single output field name, so downstream code never has to branch.
  • 23 fields per recall, including the reason. reason_for_recall and distribution_pattern are the two fields that make a recall actionable, and both come through on every row.
  • Seven filters that compose. Search term, recalling firm, classification, status, state and a dateFrom/dateTo range all narrow the same query.
  • Newest first. Results are sorted by report_date descending, so a small maxResults gives you the latest recalls rather than an arbitrary slice.
  • Empty searches cost nothing. openFDA signals "no matches" with an HTTP 404; this Actor recognises that as a clean empty result rather than an error, and charges nothing.

Monitor Class I drug recalls for one molecule

{
"productType": "drug",
"searchTerm": "metformin",
"classification": "Class I",
"maxResults": 50
}

Class I is the FDA's most serious category, reasonable probability of serious harm. Schedule this input as a Task to get a standing watch on a molecule.

Track a manufacturer's device recall history

{
"productType": "device",
"recallingFirm": "Medtronic",
"dateFrom": "2020-01-01",
"maxResults": 200
}

recalling_firm, product_description, reason_for_recall and classification together give you a manufacturer's quality record over time.

Find ongoing food recalls in one US state

{
"productType": "food",
"state": "CA",
"status": "Ongoing",
"maxResults": 100
}

status accepts Ongoing, Completed or Terminated. Combine with state for regional distribution and compliance work.

Build a dated recall corpus for analysis

{
"productType": "drug",
"dateFrom": "2024-01-01",
"dateTo": "2026-01-01",
"maxResults": 5000
}

With no term or firm filter, the date range alone gives you a complete slice of the drug enforcement registry for those two years.

What data does the FDA recalls scraper return

{
"recall_number": "D-0123-2026",
"product_type": "drug",
"classification": "Class II",
"status": "Ongoing",
"recalling_firm": "Example Pharma Inc",
"product_description": "Metformin HCl ER Tablets, 500 mg, 100-count bottle",
"reason_for_recall": "Presence of nitrosamine impurity above the acceptable intake limit",
"distribution_pattern": "Nationwide",
"product_quantity": "12,480 bottles",
"voluntary_mandated": "Voluntary: Firm initiated",
"city": "Somerset",
"state": "NJ",
"country": "United States",
"report_date": "20260115",
"recall_initiation_date": "20251220",
"brand_name": "Example ER",
"generic_name": "metformin hydrochloride",
"manufacturer_name": "Example Pharma Inc",
"scraped_at": "2026-08-01T10:00:00.000Z"
}
Field groupFields
Identityrecall_number, event_id, product_type
Severityclassification, status, voluntary_mandated, initial_firm_notification
Firmrecalling_firm, city, state, country
Productproduct_description, product_quantity, code_info
Causereason_for_recall, distribution_pattern
Datesreport_date, recall_initiation_date, center_classification_date
openFDA enrichmentbrand_name, generic_name, manufacturer_name
Provenancescraped_at

The brand_name, generic_name and manufacturer_name fields come from openFDA's own enrichment block and are empty when the FDA has not matched that record.

How the scraper works without an API key

openFDA's enforcement endpoints are public and keyless. This Actor builds a Lucene-style search string from your filters, requests 100 records per page sorted newest first, and pages with skip until it reaches your maxResults or the API's 25,000-record keyless skip ceiling. A 404 from openFDA means "no matches", not a failure, and is handled as an empty run.

What can you build with FDA recall data

Regulatory and quality monitoring. A scheduled Class I watch on your own products or your contract manufacturers.

Supplier risk scoring. Recall counts and classifications per firm, over a date window, as a vendor-risk input.

Medtech and pharma competitive intel. Which competitors are recalling what, and why.

Retail and distribution compliance. Ongoing food recalls filtered to the states you ship to.

How much does it cost to scrape FDA recalls

Pay per recall delivered: $0.0035 on the Apify Free plan, $0.0025 on Gold and above. Searches that match nothing are never charged.

How do I use FDA recall data in Claude or ChatGPT

https://mcp.apify.com/?tools=themineworks/fda-recalls-scraper
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/fda-recalls-scraper').call({
productType: 'device',
recallingFirm: 'Medtronic',
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

FDA recalls scraper FAQ

Do I need an openFDA API key? No. The Actor runs entirely on the keyless public tier.

Which recall registries are covered? All three openFDA enforcement endpoints: drug, device and food. Set productType.

What does classification mean? Class I is a reasonable probability of serious harm or death, Class II is temporary or reversible harm, Class III is unlikely to cause harm.

Why are dates formatted as 20260115? That is openFDA's native YYYYMMDD format, passed through unchanged so it round-trips exactly.

How far back can I page? Up to 25,000 records per query, which is openFDA's keyless skip ceiling. Narrow with a date range to go deeper.

Complete your regulatory intel pipeline

Found a bug or want a field added? Open an issue on the Actor's Apify Console page.

Last verified: 2026-08