FDA Food Recall Monitor avatar

FDA Food Recall Monitor

Pricing

$0.01 / 1,000 food recalls

Go to Apify Store
FDA Food Recall Monitor

FDA Food Recall Monitor

Search, export, and monitor official openFDA Food Enforcement recalls. Filter by product, firm, class, status, location, or date, and track new or updated recalls.

Pricing

$0.01 / 1,000 food recalls

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🥫 Find and monitor official FDA food recalls

FDA Food Recall Monitor helps food-safety, compliance, retail, and supply-chain teams search official openFDA Food Enforcement data. Return product details, recall reasons, classifications, statuses, firms, locations, dates, identifiers, and source links for review or monitoring.

📦 Returned data

Each dataset item is one official FDA Food Enforcement recall. Available fields include:

  • recallNumber, eventId, classification, and status
  • productDescription, productQuantity, productType, and codeInfo
  • reason, recallingFirm, structured address, and distributionPattern
  • recallInitiationDate, reportDate, centerClassificationDate, and terminationDate
  • voluntaryMandated and initialFirmNotification
  • changeType for monitoring output: new, statusChanged, or updated
  • retrievedAt, a record-verifiable sourceUrl, and fdaEventUrl when available

Absent source values remain null; dates are normalized as YYYY-MM-DD.

▶️ Running the Actor

Run the Actor in Apify Console, call it through the Apify API or MCP, or schedule it for recurring monitoring. Choose one Target per run:

  • Recall search for keywords and structured filters
  • Recall number or Event identifier for exact lookup
  • Complete feed to retrieve the official feed up to your chosen limit
  • Recall changes to compare a search with prior successful monitoring history

Results are saved to the default dataset and can be exported in formats including JSON, CSV, and Excel.

🔎 Input

Search and change runs can filter by product or reason keywords, recalling firm, classifications, statuses, states, countries, report dates, and recall-initiation dates. advancedSearch accepts an openFDA Food Enforcement expression when structured filters are insufficient. Choose the ordering field and direction with sort, and set maxResults from 1 to 100,000.

Recall changes require a stable monitorKey. Reuse the same key and search configuration on scheduled runs; unchanged recalls are not emitted. Public recall data needs no source key, while openFdaApiKey accepts your own optional key for higher openFDA source rate limits.

{
"target": "search",
"query": "salmonella",
"classifications": ["Class I"],
"states": ["CA"],
"reportDateFrom": "2025-01-01",
"sort": "reportDateDesc",
"maxResults": 100
}

📤 Output

A recall item is saved only when openFDA supplies its recall identity and product description. A typical item has this shape:

{
"recallNumber": "F-1234-2025",
"eventId": "98765",
"classification": "Class I",
"status": "Ongoing",
"productDescription": "Frozen smoked salmon, 4 oz packages",
"productQuantity": "1,200 cases",
"productType": "Food",
"codeInfo": "Lot 24051; Best By 2025-08-31",
"reason": "Potential contamination with Salmonella.",
"recallingFirm": "Example Foods LLC",
"address": {
"street": "100 Market Street",
"city": "Seattle",
"state": "WA",
"postalCode": "98101",
"country": "United States"
},
"distributionPattern": "Nationwide",
"recallInitiationDate": "2025-02-14",
"reportDate": "2025-02-20",
"centerClassificationDate": "2025-02-18",
"terminationDate": null,
"voluntaryMandated": "Voluntary: Firm initiated",
"initialFirmNotification": "E-Mail",
"changeType": null,
"retrievedAt": "2026-07-18T12:30:00.000Z",
"sourceUrl": "https://api.fda.gov/food/enforcement.json?search=recall_number%3A%22F-1234-2025%22",
"fdaEventUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98765"
}

💰 Pricing

This Actor uses pay-per-event pricing. You are charged once for each FDA food recall saved to the default dataset. Empty searches, unchanged monitoring runs, rejected input, and failed retrieval work are not charged as food recalls.

🔌 Integrations

Use Apify schedules for recurring recall checks and webhooks to send completed runs or dataset data to downstream workflows. You can also access results through the Apify API and MCP or connect Apify with other apps:

❓ FAQ

How do I monitor only new or changed recalls?

Choose the Recall changes Target, set your filters, and assign a stable monitorKey. Reuse that key and configuration in scheduled runs. The Actor emits recalls classified as new, status changed, or otherwise updated and does not advance monitoring history after an incomplete retrieval.

What happens when no recalls match?

The run completes with an empty dataset. No food-recall event is charged for a no-result search.

Do I need an openFDA API key?

No. Official openFDA Food Enforcement data is public. You can supply your own openFDA key when you need the source's higher rate limits.

Can I look up a specific FDA recall?

Yes. Use the Recall number Target for an exact recall number or the Event identifier Target for all matching actions under an FDA event ID.

Does this include drug or medical-device recalls?

No. This Actor returns food enforcement recalls only; it does not collect drug, medical-device, vehicle, or consumer-product recalls.

Is this the same as scraping FDA web pages?

No. The Actor retrieves records from the official openFDA Food Enforcement API and provides record-verifiable source URLs. It does not scrape FDA HTML pages.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

  • Disease Outbreak News Scraper — collect official WHO, ECDC, CDC, PAHO, and CAHEC outbreak alerts for adjacent public-health monitoring.
  • US Travel Advisories — collect State Department advisories and CDC travel health notices for destination-risk monitoring.

Made with ❤️ by Maxime Dupré