EU RASFF Food & Feed Safety Alerts Scraper
Pricing
from $10.20 / 1,000 results
EU RASFF Food & Feed Safety Alerts Scraper
Scrape EU RASFF food, feed and product safety alert notifications. Extract reference, date, notifying country, subject, hazard, product category, risk decision, action taken, distribution and origin countries. Export to JSON, CSV or Excel.
Pricing
from $10.20 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
EU RASFF Food & Feed Safety Alerts Scraper
Here is one real result, with every field the actor returns:
{"notifId": 864153,"reference": "2026.6951","subject": "Presenza di Salmonella Infantis in \"Ali di pollo piccanti marinate surgelate\"/ Presence of Salmonella Infantis in frozen marinated spicy chicken wings","notificationDate": "2026-08-05T14:54:01.000Z","notifyingCountry": "Italy","notifyingCountryIso": "IT","productType": "food","productCategory": "poultry meat and poultry meat products","notificationClassification": "alert notification","riskDecision": "serious","originCountries": ["Poland"],"originCountriesIso": ["PL"],"published": false,"hazardObserved": "Presenza di Salmonella Infantis in \"Ali di pollo piccanti marinate surgelate\"","notificationBasis": "official control on the market","notificationStatus": "ec_validated","lastUpdate": "2026-08-05T14:54:01.000Z","productDescription": "Ali di pollo piccanti marinate surgelate","actionsTaken": ["informing authorities"],"actionTakenSummary": "informing authorities","distributionCountries": ["Italy"],"countriesConcerned": ["Italy"],"operatorCountries": ["Italy", "Poland"],"distributionStatus": "distributed","involvedOrganizations": ["Ministero della salute/ASL Roma 2 U.O.C. Tutela Igienico Sanitaria degli Alimenti di Origine Animale"],"contactEmails": ["dav.allerta@sanita.it"],"contactEmail": "dav.allerta@sanita.it","source": "EU RASFF Window","sourceUrl": "https://webgate.ec.europa.eu/rasff-window/screen/notification/864153","observedAt": "2026-08-11T11:03:22.657Z","error": null}
The most complete EU RASFF food and feed alerts scraper available. It returns every field the RASFF Window exposes for each notification, including the hazard observed, risk decision, notifying/origin/distribution countries, actions taken, involved organisations, and contact emails, plus optional AI add-ons for a summary, severity score, and structured extract, and it gives you keyword, hazard, country, category, and date filters.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries the EU RASFF Window (the Rapid Alert System for Food and Feed), applies the keyword, hazard, country, category, classification, risk, and date filters you pass, and writes one normalized record per notification to the run's dataset. When withHazardDetails is on, each alert is enriched with the hazard observed, actions taken, distribution and countries concerned, involved organisations, and contact emails. Optional AI add-ons write a plain-language summary, score the severity, and extract a structured alert profile.
Data covers food and feed safety notifications published by the European Commission and EU/EEA member states. Missing source values are returned as null or empty, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the newest RASFF alerts mentioning salmonella, with full details.
{"keyword": "salmonella","maxAlerts": 10,"sortMode": "Newest first","withHazardDetails": true}
Leave keyword empty to return all alerts within the other filters. Narrow with hazardCategories, notifyingCountries, originCountries, productCategories, riskDecisions, or a date range.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | no | salmonella | Free-text search over the alert subject, for example salmonella, aflatoxin, listeria. |
hazardCategories | string[] | no | (all) | Filter by hazard/reason category, for example pathogenic micro-organisms, mycotoxins, allergens, foreign bodies, residues. Names case-insensitive; numeric ids also accepted. |
notifyingCountries | string[] | no | (all) | Filter by the country that raised the alert. ISO alpha-2 codes (for example DE, FR, IT) or country names. |
originCountries | string[] | no | (all) | Filter by product country of origin. ISO codes or names. |
distributionCountries | string[] | no | (all) | Filter by countries where the product was distributed. ISO codes or names. |
productCategories | string[] | no | (all) | Filter by product category, for example nuts, nut products and seeds, meat and meat products. |
riskDecisions | string[] | no | (all) | Filter by risk decision, for example serious, potentially serious, not serious, undecided, no risk. |
notificationClassifications | string[] | no | (all) | Filter by classification, for example alert notification, border rejection notification, information notification for follow-up. |
dateFrom | string | no | (none) | Only alerts validated on or after this date (YYYY-MM-DD). |
dateTo | string | no | (none) | Only alerts validated on or before this date (YYYY-MM-DD). |
year | string | no | (none) | Shortcut to restrict to a single calendar year (for example 2026). Ignored if dateFrom/dateTo are set. |
sortMode | enum | no | Newest first | Order alerts by validation date: Newest first or Oldest first. |
withHazardDetails | boolean | no | true | Enrich each alert with hazard description, action taken, distribution/countries concerned, and contact details. |
maxAlerts | integer | no | 50 | Maximum number of alert notifications to return. |
withSummary | boolean | no | false | Paid AI add-on. Plain-language summary of each alert (product, hazard, risk). Billed only when produced. |
withSeverity | boolean | no | false | Paid AI add-on. Severity classification (low/medium/high/serious) with a 0-100 risk score and rationale. Billed only when produced. |
withExtract | boolean | no | false | Paid AI add-on. Structured extract: product, hazard, hazard type, risk level, origin, affected countries, recommended action. Billed only when produced. |
Output reference
One dataset item per notification. Types: string, integer, boolean, array, or null when the source value is absent. Detail fields require withHazardDetails; ai* fields appear only when the matching add-on is enabled.
| Field | Type | Description |
|---|---|---|
notifId | integer | RASFF notification id (unique). |
reference | string | RASFF reference number, for example 2026.6951. |
subject | string | Notification subject line (often bilingual). |
notificationDate | string | ISO datetime the notification was validated. |
notifyingCountry | string | Country that raised the alert. |
notifyingCountryIso | string | ISO alpha-2 code of the notifying country. |
productType | string | food or feed. |
productCategory | string | RASFF product category. |
notificationClassification | string | Classification, for example alert notification, border rejection notification. |
riskDecision | string | Risk decision, for example serious, not serious. |
originCountries | string[] | Product countries of origin. |
originCountriesIso | string[] | ISO codes of the origin countries. |
published | boolean | Whether the notification is publicly published. |
hazardObserved | string | Description of the hazard observed. |
notificationBasis | string | Basis for the notification, for example official control on the market. |
notificationStatus | string | Status, for example ec_validated. |
lastUpdate | string | ISO datetime the record was last updated. |
productDescription | string | Description of the product concerned. |
actionsTaken | string[] | Actions taken, for example informing authorities. |
actionTakenSummary | string | Single-line summary of actions taken. |
distributionCountries | string[] | Countries the product was distributed to. |
countriesConcerned | string[] | Countries concerned by the alert. |
operatorCountries | string[] | Countries of the involved operators. |
distributionStatus | string | Distribution status, for example distributed. |
involvedOrganizations | string[] | Authorities or organisations involved. |
contactEmails | string[] | Contact emails from the notification. |
contactEmail | string | Primary contact email. |
source | string | Data source label (EU RASFF Window). |
sourceUrl | string | RASFF Window URL for the notification. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
aiSummary | string | AI plain-language summary (only with withSummary). |
aiSeverity | object | AI severity level, 0-100 risk score, and rationale (only with withSeverity). |
aiExtract | object | AI structured alert profile (only with withExtract). |
Example output record
Real record from a live run (input {"keyword": "salmonella", "maxAlerts": 50, "sortMode": "Newest first", "withHazardDetails": true}):
{"notifId": 864153,"reference": "2026.6951","subject": "Presenza di Salmonella Infantis in \"Ali di pollo piccanti marinate surgelate\"/ Presence of Salmonella Infantis in frozen marinated spicy chicken wings","notificationDate": "2026-08-05T14:54:01.000Z","notifyingCountry": "Italy","notifyingCountryIso": "IT","productType": "food","productCategory": "poultry meat and poultry meat products","notificationClassification": "alert notification","riskDecision": "serious","originCountries": ["Poland"],"originCountriesIso": ["PL"],"published": false,"hazardObserved": "Presenza di Salmonella Infantis in \"Ali di pollo piccanti marinate surgelate\"","notificationBasis": "official control on the market","notificationStatus": "ec_validated","productDescription": "Ali di pollo piccanti marinate surgelate","actionsTaken": ["informing authorities"],"distributionCountries": ["Italy"],"countriesConcerned": ["Italy"],"operatorCountries": ["Italy", "Poland"],"distributionStatus": "distributed","involvedOrganizations": ["Ministero della salute/ASL Roma 2 U.O.C. Tutela Igienico Sanitaria degli Alimenti di Origine Animale"],"contactEmails": ["dav.allerta@sanita.it"],"contactEmail": "dav.allerta@sanita.it","source": "EU RASFF Window","sourceUrl": "https://webgate.ec.europa.eu/rasff-window/screen/notification/864153","observedAt": "2026-08-11T11:03:22.657Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~eu-rasff-food-alerts-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"listeria","riskDecisions":["serious"],"maxAlerts":25,"withHazardDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~eu-rasff-food-alerts-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"hazardCategories":["mycotoxins"],"originCountries":["TR"],"year":"2026","maxAlerts":100}'
Apify CLI:
apify call scrapers_lat/eu-rasff-food-alerts-scraper \--input '{"keyword":"aflatoxin","maxAlerts":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per alert record returned (
resultevent). See the pricing tab for the current per-result price. - Optional AI add-ons.
ai_summary,ai_severity, andai_extractare billed per alert and only when they produce output. Add-ons require a paid Apify plan. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results and add-ons. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxAlerts.
FAQ and troubleshooting
A run returned 0 records. Why? Your keyword or filters matched nothing. Try a broader keyword, widen the date range, or remove a country/category filter. Zero-result runs are not charged.
What is RASFF? The Rapid Alert System for Food and Feed is the EU's system for notifying food and feed safety risks between member states and the European Commission.
Do I get the contact details and involved authorities?
Yes, when withHazardDetails is on. Records include involvedOrganizations, contactEmails, and contactEmail, plus distribution and countries concerned.
Why is the subject in two languages?
RASFF notifications are often filed in the notifying country's language with an English translation, so the subject may contain both.
How do I filter to only serious risks?
Set riskDecisions to ["serious"]. Combine with a keyword or hazard category to focus further.
Is this an official EU tool? No. This actor is independent and has no affiliation with the European Commission or RASFF. It reads only data that is publicly available on the RASFF Window.
Related scrapers
- openFDA Food Recall & Enforcement Scraper: US FDA food recalls.
- USDA FSIS Recalls Scraper: US meat, poultry, and egg recalls.
- EU Safety Gate Recalls Scraper: EU non-food product safety alerts.
- UK Food Hygiene Ratings Scraper: UK food business hygiene ratings.
- Health Canada Recalls Scraper: Canadian food and product recalls.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the European Commission or RASFF. Accesses only publicly available data on the RASFF Window.
