FDA Recalls Scraper - Food, Drug and Device avatar

FDA Recalls Scraper - Food, Drug and Device

Pricing

from $1.00 / 1,000 run start fees

Go to Apify Store
FDA Recalls Scraper - Food, Drug and Device

FDA Recalls Scraper - Food, Drug and Device

Search FDA enforcement reports across food, drug and medical device recalls. Returns recall class, recalling firm, product, reason, distribution and normalised dates from the official openFDA API.

Pricing

from $1.00 / 1,000 run start fees

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

FDA Recalls Scraper

Search FDA enforcement reports across food, drug and medical device recalls in one run. Recall class, recalling firm, product, reason, distribution area, lot codes and dates.

Reads the official openFDA API. No key, no login.

Class I is the field that matters

The FDA grades every recall, and the grade is the whole point:

ClassWhat it means
Class IA reasonable probability of serious harm or death
Class IITemporary or medically reversible harm
Class IIIUnlikely to cause harm

There is no numeric severity field anywhere in the data. Sort by date or firm and the dangerous recalls sit among the labelling corrections with nothing to distinguish them. Every row here carries a derived is_class_i so that filter is one step.

To put the scale in perspective: of 29,317 food enforcement reports, 12,867 are Class I.

Three datasets, one schema

CategoryRecords
food29,317
drug17,899
device39,794

They share one shape, so you can pull all three in one run and every row carries its category. Drug recalls additionally carry brand_names, generic_names and manufacturer_names, lifted out of openFDA's nested block.

Three things about this data that trip people up

Dates arrive as 20160808, not as dates. Six date fields come back as bare YYYYMMDD strings. Feed one into anything date-aware and you get a wrong answer or an exception. All six are normalised to ISO here.

Terminated does not mean cancelled. It means the FDA considers the enforcement action complete. A recall that was withdrawn and a recall that ran its course look identical if you read that field as plain English, and counting "active recalls" wrongly is the usual result.

An empty result comes back as HTTP 404. openFDA answers 404 when a search matches nothing. Treating that as a transport failure turns "no recalls for this firm" into "the scraper broke" — which is worse, because the first is a useful answer. This Actor returns zero rows and says so.

Why this Actor connects directly

across every .gov host tested:

RouteResult
DirectHTTP 200, working JSON
Through a residential proxyCONNECT tunnel failed, response 491

A 491 on the CONNECT is our proxy refusing to tunnel to the host, not the FDA refusing us. That pattern held for every government host, so on a .gov target a proxy error is a fact about the proxy rather than the site. openFDA publishes this data for public use, and this Actor takes it directly at a polite pace.

Input reference

FieldTypeDefault
categoriesfood, drug, device, any combination["food"]
classificationClass I, II or IIIall
firmrecalling company name—
productwords from the product description—
reasonwords from the recall reason, e.g. Listeria—
statetwo-letter state of the firm—
statusOngoing, Completed, Terminatedall
date_from, date_toYYYY-MM-DD—
limit1-5000100
retries1-63

Filters combine with AND. limit is split across the categories you choose, so asking for 60 across all three gives roughly 20 of each.

Typical uses

  • Food safety monitoring. categories: food, classification: Class I, run daily. reason searches like Listeria or undeclared narrow it further.
  • Supplier risk. Search firm for your suppliers and see their recall history, with class and reason attached.
  • Pharmacovigilance. Drug recalls with brand and generic names, filterable by manufacturer.
  • Medical device compliance. Device recalls by firm or product, which is the first check in a hospital procurement review.
  • Geographic exposure. distribution_pattern names the states or regions a recalled product reached, and state filters by where the firm is.
  • Trend analysis. Date ranges plus the classification breakdown show whether recalls in a category are rising, and whether the severity mix is shifting.

Notes on behaviour

code_info carries the lot numbers, UPCs and expiry dates in scope, which is what you need to check whether a specific batch is affected rather than a product line.

event_id groups related recalls, so one contamination incident spanning many products can be collapsed back into a single event.

openFDA allows 240 requests a minute per IP without a key. This Actor paces itself well under that, so long runs are slower than they could be and stay within what a free public service is offered on.

The data covers US enforcement only. A product recalled elsewhere and not in the US will not appear.