EU RASFF Food & Feed Safety Alerts Scraper avatar

EU RASFF Food & Feed Safety Alerts Scraper

Pricing

from $10.20 / 1,000 results

Go to Apify Store
EU RASFF Food & Feed Safety Alerts Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

EU RASFF Food & Feed Safety Alerts Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
keywordstringnosalmonellaFree-text search over the alert subject, for example salmonella, aflatoxin, listeria.
hazardCategoriesstring[]no(all)Filter by hazard/reason category, for example pathogenic micro-organisms, mycotoxins, allergens, foreign bodies, residues. Names case-insensitive; numeric ids also accepted.
notifyingCountriesstring[]no(all)Filter by the country that raised the alert. ISO alpha-2 codes (for example DE, FR, IT) or country names.
originCountriesstring[]no(all)Filter by product country of origin. ISO codes or names.
distributionCountriesstring[]no(all)Filter by countries where the product was distributed. ISO codes or names.
productCategoriesstring[]no(all)Filter by product category, for example nuts, nut products and seeds, meat and meat products.
riskDecisionsstring[]no(all)Filter by risk decision, for example serious, potentially serious, not serious, undecided, no risk.
notificationClassificationsstring[]no(all)Filter by classification, for example alert notification, border rejection notification, information notification for follow-up.
dateFromstringno(none)Only alerts validated on or after this date (YYYY-MM-DD).
dateTostringno(none)Only alerts validated on or before this date (YYYY-MM-DD).
yearstringno(none)Shortcut to restrict to a single calendar year (for example 2026). Ignored if dateFrom/dateTo are set.
sortModeenumnoNewest firstOrder alerts by validation date: Newest first or Oldest first.
withHazardDetailsbooleannotrueEnrich each alert with hazard description, action taken, distribution/countries concerned, and contact details.
maxAlertsintegerno50Maximum number of alert notifications to return.
withSummarybooleannofalsePaid AI add-on. Plain-language summary of each alert (product, hazard, risk). Billed only when produced.
withSeveritybooleannofalsePaid AI add-on. Severity classification (low/medium/high/serious) with a 0-100 risk score and rationale. Billed only when produced.
withExtractbooleannofalsePaid 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.

FieldTypeDescription
notifIdintegerRASFF notification id (unique).
referencestringRASFF reference number, for example 2026.6951.
subjectstringNotification subject line (often bilingual).
notificationDatestringISO datetime the notification was validated.
notifyingCountrystringCountry that raised the alert.
notifyingCountryIsostringISO alpha-2 code of the notifying country.
productTypestringfood or feed.
productCategorystringRASFF product category.
notificationClassificationstringClassification, for example alert notification, border rejection notification.
riskDecisionstringRisk decision, for example serious, not serious.
originCountriesstring[]Product countries of origin.
originCountriesIsostring[]ISO codes of the origin countries.
publishedbooleanWhether the notification is publicly published.
hazardObservedstringDescription of the hazard observed.
notificationBasisstringBasis for the notification, for example official control on the market.
notificationStatusstringStatus, for example ec_validated.
lastUpdatestringISO datetime the record was last updated.
productDescriptionstringDescription of the product concerned.
actionsTakenstring[]Actions taken, for example informing authorities.
actionTakenSummarystringSingle-line summary of actions taken.
distributionCountriesstring[]Countries the product was distributed to.
countriesConcernedstring[]Countries concerned by the alert.
operatorCountriesstring[]Countries of the involved operators.
distributionStatusstringDistribution status, for example distributed.
involvedOrganizationsstring[]Authorities or organisations involved.
contactEmailsstring[]Contact emails from the notification.
contactEmailstringPrimary contact email.
sourcestringData source label (EU RASFF Window).
sourceUrlstringRASFF Window URL for the notification.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.
aiSummarystringAI plain-language summary (only with withSummary).
aiSeverityobjectAI severity level, 0-100 risk score, and rationale (only with withSeverity).
aiExtractobjectAI 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • Optional AI add-ons. ai_summary, ai_severity, and ai_extract are 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.