FDA Recalls: Food, Drug & Device Scraper
Pricing
from $3.99 / 1,000 fda recall results
FDA Recalls: Food, Drug & Device Scraper
Search and export FDA food, drug, and medical-device recalls from official openFDA enforcement data. Filter by classification, state, date, status, brand or ingredient watchlists, and get normalized records with deduplication, quality checks, and transparent 0–100 priority scoring.
Pricing
from $3.99 / 1,000 fda recall results
Rating
0.0
(0)
Developer
Johnn Mottin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
#FDA Recalls: Food, Drug & Device Scraper
Search and export FDA food, drug, and medical-device recalls from official openFDA data — normalized into one consistent dataset.
Filter recalls by classification, date, state, status, brand or ingredient. Build watchlists, remove duplicates automatically, and prioritize results with a transparent 0–100 operational score.
✓ Food, drugs & medical devices ✓ Class I, II & III recalls ✓ Brand and ingredient watchlists ✓ Normalized structured output ✓ Automatic deduplication ✓ Priority and data-quality scoring ✓ API, schedules and integrations
Starting at $0.00399 per recall record — about $4 per 1,000 results.
Unofficial community Actor. Uses public openFDA enforcement data and is not affiliated with or endorsed by the FDA.
A Class I recall you missed is a product still on your shelves. 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
- Track FDA food, drug and medical-device recalls — one Actor over the three official openFDA enforcement endpoints, for compliance teams, manufacturers, distributors and retailers.
- Monitor FDA recalls for specific brands or ingredients — watchlist terms, with an option to keep only matching recalls, for pharmacies, hospitals and procurement teams.
- Export structured FDA recall data with priority scoring — normalized records and a transparent 0–100 triage score, for insurers, regulatory consultancies 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
A real Class I food recall returned by the Actor (openFDA food enforcement endpoint, reported 2026-07-22; long fields shortened, the full record has every documented key):
{"recordType": "fda-recall","sourceCategory": "food","recallNumber": "H-1166-2026","eventId": "99040","classification": "Class I","classificationRank": 3,"status": "Ongoing","isOngoing": true,"recallingFirm": "D'Dioses Fruit Pops, Inc.","city": "Paterson","state": "NJ","productDescription": "Ice Pop, D'Dioses Nuez, 1 Bar (81.7 g), with UPC 827912008548","reasonForRecall": "May contain undeclared milk, pecans, pistachios, yellow #5 and red #40.","distributionPattern": "Distributed in the following states: NJ, CT, NY, PA.","recallInitiationDate": "2026-05-04","reportDate": "2026-07-22","isNationwide": null,"watchlistMatched": false,"priorityScore": 80,"priorityLevel": "critical","priorityReasons": ["Class I: +45", "Ongoing/Open: +20", "Reported in last 30 days: +15"],"qualityScore": 100}
Note isNationwide: null — the source did not state it, so the Actor reports null rather than guessing.
Output fields
| Group | Fields |
|---|---|
| Identity | recordType, sourceCategory, recallNumber, eventId |
| Classification | classification, classificationRank, status, isOngoing, voluntaryMandated, initialFirmNotification |
| Firm & location | recallingFirm, address1, address2, city, state, postalCode, country |
| Product | productType, productDescription, productQuantity, productCode, codeInfo, moreCodeInfo |
| Reason & distribution | reasonForRecall, distributionPattern, isNationwide |
| Dates | recallInitiationDate, centerClassificationDate, reportDate, terminationDate, daysSinceInitiation, daysSinceReport |
| Names & codes | brandNames, genericNames, manufacturerNames, productNdcs, upcs, deviceNames, deviceClass, medicalSpecialty |
| Watchlist & priority | watchlistMatched, watchlistMatches, priorityScore, priorityLevel, priorityReasons |
| Meta & quality | sourceEndpoint, datasetLastUpdated, scrapedAt, qualityScore, missingFields, warnings, rawOpenFda |
Missing values are null (or [] for lists); the Actor never invents data. rawOpenFda is included only when includeRawOpenFda is true.
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.
Schedule it (recommended — cloud, not your desktop)
Recalls are a daily/weekly compliance feed — a saved input with a date filter stays useful run after run. Use Apify's own Schedules, not a local scheduler — configure it once and it runs in the cloud whether or not your machine is on.
- Save your input as a Task (Console → this Actor → Create task), e.g. your product types and watchlist terms.
- Console → Schedules → Create schedule, add the Task, set the cron (e.g. daily 6am →
0 6 * * *). - Route the dataset to Slack, Sheets, your CRM or webhook via Apify integrations.
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
This Actor uses Pay Per Event pricing: $0.00399 per recall record — about $4 per 1,000 results — plus a negligible per-run start fee. One valid, unique dataset record corresponds to one billable event. Failed requests, invalid input, duplicates, empty responses, and rejected records are not billable. Check the Pricing tab on this page for the current rates.
Use maxResults to cap the output (and therefore the cost) of each run.
FAQ
Do I need an openFDA API key? No. An optional OPENFDA_API_KEY environment variable raises the openFDA quota, but the Actor works without it.
Is this real-time? No. openFDA enforcement endpoints are updated periodically, usually weekly. Do not use this Actor as a public safety alert service.
What counts as a billable result? One valid, unique recall record written to the dataset. Duplicates, failures, and rejected records are not billed.
Can I monitor specific brands or ingredients? Yes — put the terms in watchlistTerms. Set onlyWatchlistMatches: true to keep only matching recalls.
Can I schedule it? Yes. Create a daily or weekly Apify Schedule with a saved input; each run writes a fresh dataset and a STATS summary.
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.
Part of the JM Forge suite
Also from the same developer:
- CPSC Product Recalls Monitor — US Consumer Product Safety — Monitor US consumer product recalls from the official CPSC API: hazards, remedies, retailers, images and UPCs.
- NHTSA Vehicle Recalls & Complaints — US Vehicle Safety — Batch-check US vehicle recalls and owner complaints by make, model and year from the official NHTSA APIs.
- Amazon Product Search Scraper — Extract Amazon product listings, prices, discounts, ratings, ASINs and URLs across seven marketplaces.
Support
Report issues in the Issues tab of this actor — I respond within 24h. Feature requests welcome.