EU RASFF Food Safety Alerts Scraper avatar

EU RASFF Food Safety Alerts Scraper

Pricing

Pay per event

Go to Apify Store
EU RASFF Food Safety Alerts Scraper

EU RASFF Food Safety Alerts Scraper

Export EU RASFF food/feed safety alerts with products, hazards, countries, risks, measures, and official details URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Export structured EU RASFF food and feed safety notifications from the public RASFF Window. This actor turns the EU portal into clean datasets for compliance monitoring, supplier-risk screening, food recall workflows, and recurring alert exports.

What does EU RASFF Food Safety Alerts Scraper do?

EU RASFF Food Safety Alerts Scraper searches the Rapid Alert System for Food and Feed (RASFF) public database and saves each matching notification as a structured dataset item. It can fetch list records only or enrich every notification with the detail API.

The actor extracts the RASFF reference, validation date, product category, product type, risk decision, notification classification, countries, hazards, measures taken, follow-up count, raw metadata, and source links.

Who is it for?

  • ๐Ÿงช Food safety and quality assurance teams that need recurring exports of EU alerts.
  • ๐Ÿšข Importers and distributors that monitor supplier-country risks.
  • ๐Ÿ›’ Retail compliance teams that track products, hazards, and withdrawals.
  • ๐Ÿ“Š Consultants and data teams that build dashboards from RASFF records.
  • โš–๏ธ Regulatory intelligence teams that need auditable source URLs and raw metadata.

Why use this scraper?

The RASFF portal is useful for manual searches, but repeated monitoring is easier with API-ready records. This actor gives you repeatable Apify runs, datasets, webhooks, exports, schedules, and integrations.

Data you can extract

FieldDescription
referenceRASFF notification reference such as 2026.5919
ecValidationDateEC validation date from RASFF
subjectNotification subject text
productCategoryFood/feed category
productTypeProduct type such as food or feed
notificationClassificationAlert / information classification
riskDecisionRASFF risk decision
notifyingCountryCountry or organization that notified
originCountriesProduct origin countries when available
hazardsDetailed hazard records when detail enrichment is enabled
measuresTakenMeasures and country taking action
detailsUrlDirect RASFF detail page

How much does it cost to scrape EU RASFF food safety alerts?

The actor uses pay-per-event pricing with a small $0.005 run-start fee plus a per-alert charge. Current per-alert pricing is tiered by Apify plan: FREE about $0.00010, BRONZE about $0.000087, SILVER about $0.000068, GOLD about $0.000052, PLATINUM about $0.000035, and DIAMOND about $0.000024 per saved RASFF notification.

Concrete examples:

  • Export 100 recent RASFF alerts on the FREE tier: about $0.015 total ($0.005 start + ~$0.010 per-alert charges).
  • Export 1,000 alerts on BRONZE: about $0.092 total ($0.005 start + ~$0.087 per-alert charges).
  • Export 10,000 alerts on GOLD: about $0.529 total ($0.005 start + ~$0.524 per-alert charges).

The input prefill is intentionally modest and the actor uses the public EU RASFF API, so no paid proxy is required. A small first run of 25 alerts on the FREE plan is roughly $0.0075, making it inexpensive to verify the dataset before scheduling larger monitoring jobs.

How to use it

  1. Open the actor on Apify.
  2. Set a date range or keyword.
  3. Keep includeDetails enabled if you need hazards and measures.
  4. Choose maxItems.
  5. Run the actor.
  6. Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.

Input options

  • maxItems controls how many notifications are saved.
  • dateFrom and dateTo accept YYYY-MM-DD or DD-MM-YYYY.
  • keyword searches notification subjects through the official RASFF API.
  • reference fetches an exact reference when you know it.
  • productCategory, hazard, country, and notificationType are human-readable text filters.
  • includeDetails adds hazards, measures, flagged countries, and follow-up counts.

Output example

{
"notificationId": 856316,
"reference": "2026.5919",
"subject": "Presence of Vibrio cholerae in raw Black Tiger shrimps from Bangladesh",
"productCategory": "crustaceans and products thereof",
"productType": "food",
"riskDecision": "potentially serious",
"notifyingCountry": { "name": "Romania", "isoCode": "RO" },
"originCountries": [{ "name": "Bangladesh", "isoCode": "BD" }],
"detailsUrl": "https://webgate.ec.europa.eu/rasff-window/screen/notification/856316"
}

Tips for better results

Use a date range for monitoring runs. Use exact references for incident investigations. Use keyword searches for hazards such as Listeria, Salmonella, aflatoxin, or pesticide. Enable details for compliance exports and disable details only when you need a very fast list feed.

Common workflows

  • Daily alert monitor for the latest food/feed notifications.
  • Country-risk export for origin-country screening.
  • Product-category export for fish, tea, feed, nuts, or other categories.
  • Hazard-specific monitor for pathogens, allergens, residues, or contaminants.
  • Audit packet with raw RASFF metadata and details URLs.

Integrations

Send datasets to Google Sheets, BigQuery, Snowflake, S3, Zapier, Make, n8n, Slack, or your own webhook. You can schedule the actor and trigger downstream workflows when new alerts are found.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/eu-rasff-food-safety-alerts-scraper').call({
maxItems: 100,
dateFrom: '2026-07-01',
dateTo: '2026-07-06',
includeDetails: true
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/eu-rasff-food-safety-alerts-scraper').call(run_input={
'maxItems': 100,
'keyword': 'Listeria',
'includeDetails': True,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~eu-rasff-food-safety-alerts-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"maxItems":100,"keyword":"Listeria","includeDetails":true}'

MCP for Claude Desktop and Claude Code

Use Apify MCP with this actor as a tool:

https://mcp.apify.com/?tools=automation-lab/eu-rasff-food-safety-alerts-scraper

Claude Code command:

$claude mcp add apify-rasff --transport http "https://mcp.apify.com/?tools=automation-lab/eu-rasff-food-safety-alerts-scraper"

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-rasff": {
"url": "https://mcp.apify.com/?tools=automation-lab/eu-rasff-food-safety-alerts-scraper"
}
}
}

Example prompts:

  • "Run the EU RASFF scraper for the last week and summarize serious fish-product alerts."
  • "Export RASFF notifications mentioning Listeria and group them by country."
  • "Find recent feed-related RASFF notifications and list measures taken."

Scheduling

For monitoring, schedule a daily run with a recent date range. Connect the dataset to a webhook, Google Sheet, or BI pipeline.

Legality

The actor reads publicly available RASFF Window data from the European Commission portal. Users are responsible for complying with Apify Terms of Service, the source website's terms, and applicable data-use rules.

Troubleshooting

If a keyword returns no results, widen the date range or remove optional post-filters. If you need hazard details, keep includeDetails enabled because hazards live on the notification detail endpoint.

FAQ

Does it need a proxy?

No. The actor uses the public EU RASFF API and does not require Apify Proxy for normal runs.

Can I search by country?

Yes. The country input is a text filter matched against notifying, origin, distribution, and flagged countries.

Can I get hazards and measures?

Yes. Enable includeDetails to fetch detailed records with hazards, analytical results, measures, and follow-up counts.

Monitoring examples

Use keyword=Salmonella for pathogen monitoring. Use productCategory=fish for fish and seafood workflows. Use country=CN or country=China for origin-country screening. Use reference=2026.5919 for an exact notification investigation.

Dataset quality

Each item includes a raw object with the original RASFF API response. This helps with auditing and lets advanced users map fields that are not displayed in the default table view.

Performance

The actor fetches search pages of up to 100 records. Detail mode adds one request per notification and includes a small delay to be respectful to the government portal.

Changelog

  • Initial private build: public RASFF search and detail export.

Support

If you need another filter exposed as a first-class input, open an Apify issue with an example RASFF search and the expected field.

Source transparency

Every result keeps the official RASFF detail URL. Every enriched result keeps the raw API payload. This makes exports easier to audit. It also helps analysts map new fields when RASFF changes.