USDA FSIS Recalls Scraper
Pricing
from $3.00 / 1,000 results
USDA FSIS Recalls Scraper
Scrape USDA Food Safety and Inspection Service (FSIS) recall data - meat, poultry, and egg product recalls and public health alerts. Search by keyword, establishment, state, or classification; filter by recall type, reason, processing category, and date range.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Scrape USDA Food Safety and Inspection Service (FSIS) recall data — meat, poultry, and egg product recalls and public health alerts regulated by USDA. Search by keyword, recalling establishment, state, or classification; filter by recall type, reason, processing category, date range, and outbreak linkage. Pulls the full public FSIS recall feed directly, no login or API key required.
Looking for FDA recalls (most other foods, drugs, cosmetics, medical devices)? See the separate FDA Recalls Scraper — this actor covers only meat/poultry/egg products regulated by USDA's FSIS.
What this actor does
- Five modes:
recent,search,byEstablishment,byState,byClassification - Rich filters: classification, recall type, recall reason(s), processing categories, states, date range, active-only, outbreak-related-only, has-Spanish-version-only, language (English/Spanish/Any)
- Full recall detail: cleaned plain-text summary, official recall document PDF links (labels, retail lists, import lists), media/company contacts, affected states, product descriptions
- Sorted newest-first by recall date
- Empty fields are omitted — every record only contains fields FSIS actually populated
Output per recall
recallNumber,titlelanguage—EnglishorSpanish(which language version of the notice this record is)recallType— Active Recall / Closed Recall / Public Health Alertclassification— Class I / Class II / Class III / Public Health AlertriskLevelrecallReasons[]recallDate,lastModifiedDate,year,closedYearestablishments[]— recalling company/establishment name(s)states[]— distribution states (orNationwide/Midwest)processingCategories[]productItems[]— affected product descriptionssummary— cleaned plain-text press releaserecallUrl— canonical FSIS recall pagelabelPdfUrls[]— official recall document PDFs (product labels, retail-distribution lists, import lists, etc.) linked from the press release, when FSIS published onemediaContact,companyMediaContact[]activeNotice,archived,outbreakRelated,hasSpanishVersion— booleansqtyRecoveredsourceUrl,recordType: "recall",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | recent | recent / search / byEstablishment / byState / byClassification |
keyword | string | chicken | Free-text query over title/summary/product/establishment (mode=search) |
establishmentName | string | – | Partial match on recalling company (mode=byEstablishment) |
language | string | English | English / Spanish / Any — FSIS publishes a separate full record per language, sharing the same recall number |
states | array | – | US states/territories, or Nationwide/Midwest (mode=byState) |
classification | string | – | Class I / Class II / Class III / Public Health Alert (mode=byClassification) |
recallType | string | – | Active Recall / Closed Recall / Public Health Alert |
recallReasons | array | – | One or more of the 9 FSIS recall reasons |
processingCategories | array | – | One or more of the 10 FSIS processing categories |
dateFrom / dateTo | string | – | YYYY-MM-DD recall-date bounds |
activeOnly | bool | false | Only currently-active recalls |
outbreakRelatedOnly | bool | false | Only recalls linked to an outbreak investigation |
hasSpanishOnly | bool | false | Only recalls with a Spanish-language notice |
maxItems | int | 50 | Hard cap (1–2000) |
proxyConfiguration | object | Apify Proxy (AUTO) | Optional; not required for access (see Data Source below) |
Example: recent recalls (no filters)
{ "mode": "recent", "maxItems": 20 }
Example: keyword search with classification + date range
{"mode": "search","keyword": "listeria","classification": "Class I","dateFrom": "2024-01-01","dateTo": "2025-12-31","maxItems": 100}
Example: all recalls from a specific establishment
{ "mode": "byEstablishment", "establishmentName": "Tyson", "maxItems": 50 }
Example: active recalls distributed to specific states
{"mode": "byState","states": ["California", "Texas", "Nationwide"],"activeOnly": true}
Use cases
- Food safety monitoring — track meat/poultry/egg recalls by company, region, or hazard type
- Compliance / supply-chain risk — screen suppliers/establishments for recall history
- Consumer safety apps — surface active recalls relevant to a shopper's state
- Public health research — analyze recall reasons and outbreak linkage trends over time
- Journalism — track high-classification recalls and affected retailers
Data source & reliability notes
Data comes directly from FSIS's public recall feed (fsis.usda.gov/fsis/api/recall/v/1), which is unauthenticated and requires no registration. The fsis.usda.gov domain is protected by Akamai bot management: requests from plain HTTP clients (curl, httpx, requests) with no browser TLS fingerprint are blocked with a 403 from Akamai's edge — regardless of source IP, User-Agent header, or Referer. This actor uses curl_cffi with Chrome TLS impersonation, which the upstream site accepts, so no API key, login, cookies, or paid proxy tier is needed. An optional Apify Proxy (AUTO group, free) input is offered for additional resilience but is not required for the actor to return data.
Known caveat: the same Akamai protection also blocks plain, non-impersonated curl checks against recallUrl and labelPdfUrls pages (403 from a clean shell). These URLs are genuine and load normally in any real browser or Chrome-impersonating HTTP client — this is a site-wide anti-bot posture, not a broken link.
FAQ
What's the difference between this and the FDA Recalls Scraper? FDA and USDA-FSIS are separate US regulatory agencies with non-overlapping food categories. FSIS regulates meat, poultry, and processed egg products; FDA regulates virtually everything else (produce, seafood, packaged/prepared foods, dietary supplements, drugs, cosmetics, medical devices). If a recall involves raw or processed meat/poultry/eggs, it's FSIS; otherwise it's FDA.
How far back does the data go? The feed includes recalls from 2014 through the present, refreshed by FSIS as new recalls and public health alerts are issued.
What's a "Public Health Alert"? A notice FSIS issues when a product poses a health risk but a formal recall isn't requested — often because the product is no longer available for purchase.
What's the difference between classification and riskLevel? They're closely related FSIS fields: classification is the formal recall class (Class I/II/III or Public Health Alert); riskLevel is FSIS's plain-language risk label (e.g. "High - Class I"). Both are included since FSIS publishes them as distinct fields.
Why might labelPdfUrls be empty on some records? FSIS doesn't publish a document PDF (product label, retail-distribution list, import list, etc.) for every recall (older/simpler recalls often omit it). The field is populated only when FSIS embedded a PDF link — of any of these document types — in the official press release.
How fresh is the data? As fresh as FSIS's own feed — recalls and public health alerts typically appear within hours of being issued.
Why is there a language field/filter, and why does it default to English-only? FSIS's feed contains a fully separate record for the Spanish translation of many recalls (same recallNumber, translated title/summary/product text, language: "Spanish"). Without filtering, an English recall and its Spanish translation would appear as two near-duplicate records. The default (English) returns one record per recall; set language to Spanish or Any if you want the translated notices too.