EU & France Product Recalls – RappelConso + Safety Gate avatar

EU & France Product Recalls – RappelConso + Safety Gate

Pricing

from $4.00 / 1,000 recall alerts

Go to Apify Store
EU & France Product Recalls – RappelConso + Safety Gate

EU & France Product Recalls – RappelConso + Safety Gate

Search, look up and watch product recalls from RappelConso (France) and the EU Safety Gate (RAPEX): brand, risk, measures, lots, barcodes, images, official notice. Unofficial tool using official open data.

Pricing

from $4.00 / 1,000 recall alerts

Rating

0.0

(0)

Developer

Shadow Tools

Shadow Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Call this Actor to find out whether a product is recalled or flagged dangerous in France (RappelConso) or the EU (Safety Gate / RAPEX): by keyword, brand, barcode (GTIN/EAN), risk or notice number. Use search for a question about a period, lookup when you already have a recall id (2026-11-0037), a Safety Gate case (SR/03023/26) or an official URL, and watch only for scheduled runs (it returns only recalls new since the last run). Each record carries the official notice URL.

Minimal input per mode

ModeMinimal inputWhat comes back
search{"keywords": ["lait"], "daysBack": 30, "maxResults": 5}recalls matching the filters in the period
watch{"mode": "watch", "keywords": ["jouet", "toy"], "daysBack": 3, "maxResults": 5}only recalls not delivered by a previous run with the same filters
lookup{"mode": "lookup", "lookupIds": ["2026-11-0037", "SR/03023/26"]}one record per reference found

Short output (real record, 4 Nov 2026): {"source": "RAPPELCONSO", "id": "2026-11-0029", "publicationDate": "2026-11-04T11:49:07+00:00", "title": "lessive liquide universelle sidolux muguet 1 l", "brand": "sidolux", "category": "maison-habitat", "risks": ["risque chimique"], "barcodes": ["5902986201172"], "url": "https://rappel.conso.gouv.fr/fiche-rappel/24009/interne"} (full records below).

For AI agents (MCP)

  • One call = one answer. Default maxResults is 20 (per source). Keep it small and raise it only when the run SUMMARY says a source is capped: true. A typical run takes 5-60 s.
  • Errors fail fast in the form Field X invalid: expected Y, got Z, example W (for example Field dateFrom invalid: expected a real date YYYY-MM-DD, got "05/11/2026", example 2026-10-01.). Fix that field and call again; nothing is charged.
  • 0 results is not an error. The run succeeds with an empty dataset and the key-value store record SUMMARY carries note with the reason and how to widen (more daysBack, more general keywords, French words for RappelConso and English for Safety Gate, fewer filters). In lookup mode the note lists the references not found. The same note is written when a result is capped or partial.
  • watch semantics: state is kept per Actor and per user store, for each set of sources and filters. The first watch run returns the recent alerts of the period (daysBack); later runs return only what is new, so 0 results usually means nothing new was published.
  • Dates are YYYY-MM-DD. Search by product words (lait, toy), brand, or barcode (digits only); use lookup for a known reference instead of searching.

Unofficial tool. Not affiliated with, endorsed by or sponsored by the DGCCRF, the French government, RappelConso, the European Commission or the Safety Gate team. It reads their official open data and reformats it.

Search, look up and watch product recalls and dangerous-product alerts from two official sources, in one clean schema:

SourceCoverageOrigin
RappelConso (France)All consumer product recalls published in France: food, cars, baby items, home, electrical, cosmetics, clothing, sports…DGCCRF open dataset (Opendatasoft API on data.economie.gouv.fr)
Safety Gate / RAPEX (EU/EEA)Alerts on dangerous non-food products notified by EU/EEA countries (measures, risk level, origin, photos)European Commission public XML export

Who uses it

  • E-commerce sellers and marketplaces: screen your catalogue (by barcode, brand or keyword) against fresh recalls and take products down before a regulator does.
  • Importers and distributors: follow alerts on your product categories and your suppliers' brands.
  • Compliance and quality teams: daily digest of new recalls in your sector (watch mode on a schedule), with the official notice link for your records.
  • Retail and food-service chains: check a list of barcodes or brands each morning against RappelConso, plus the EU Safety Gate for non-food goods.
  • Insurers and brokers: track recalls and hazards by category and brand.
  • Journalists, consumer associations and researchers: dated, structured recall history (about one year per run, more with several runs) to count and compare hazards, brands or countries.
  • Developers: feed recalls into a ticketing tool, a chat channel or a database through a webhook or the API.

Modes

  • search: recalls matching your filters over a period (default: the last 7 days).
  • watch: only recalls not delivered by a previous run with the same filters. Put it on a schedule (hourly or daily) and connect a webhook or an integration. A new version of a RappelConso sheet (an update to a recall) counts as new.
  • lookup: fetch specific notices from a RappelConso sheet number (2026-11-0037) or URL, or a Safety Gate case number (SR/03023/26) or alert URL.

Filters (all optional, combined with AND; several values inside one filter are OR): keywords, brands, categories, risks/hazards, distributors (RappelConso only), barcodes (GTIN/EAN), period.

Quick start

Watch new recalls about toys and chargers every day (schedule it, set a webhook):

{ "mode": "watch", "keywords": ["jouet", "toy", "chargeur", "charger"], "daysBack": 3 }

Check a list of barcodes against the last year:

{ "mode": "search", "daysBack": 365, "barcodes": ["3467980036813", "5902986201172"] }

Listeria and salmonella recalls in France this month, sold at Leclerc:

{ "sources": ["RAPPELCONSO"], "daysBack": 30, "hazards": ["listeria", "salmonelle"], "distributors": ["leclerc"] }

Look up two notices:

{ "mode": "lookup", "lookupIds": ["2026-11-0037", "SR/03153/26"] }

Call it from the API: POST https://api.apify.com/v2/acts/<ACTOR>/run-sync-get-dataset-items?token=<TOKEN> with the JSON input as body.

What you get

One record per alert, same fields for both sources (empty when the source has no value):

source, id, version, publicationDate, title, productName, brand, category, subCategory, riskLevel (Safety Gate), risks[], recallReason (RappelConso), hazardDescription, recallType, measures[], compensation[], notifyingCountry, salesArea[], originCountry, distributors[] (RappelConso), barcodes[], lots[], models[], products[] (barcode + lot + date pairs, RappelConso), images[], url (official notice), noticePdfUrl, recallUrl, description, matchedKeywords[], attribution, extractedAt, language.

RappelConso texts are in French; Safety Gate texts follow the language option (English by default; fr, de, es, it, nl, pt, pl available).

Example (RappelConso, real record from a run on 5 Nov 2026, shortened):

{
"source": "RAPPELCONSO",
"id": "2026-11-0029",
"publicationDate": "2026-11-04T11:49:07+00:00",
"title": "lessive liquide universelle sidolux muguet 1 l",
"brand": "sidolux",
"category": "maison-habitat",
"subCategory": "produits chimiques",
"risks": ["risque chimique"],
"measures": ["ne plus utiliser le produit", "rapporter le produit au point de vente"],
"compensation": ["remboursement"],
"notifyingCountry": "France",
"salesArea": ["france entière"],
"barcodes": ["5902986201172"],
"lots": ["tous les lots"],
"images": ["https://rappel.conso.gouv.fr/image/a8ccd023-8023-4180-8478-6776960e4cc2.jpg"],
"url": "https://rappel.conso.gouv.fr/fiche-rappel/24009/interne"
}

Example (Safety Gate, real alert, shortened):

{
"source": "SAFETY_GATE",
"id": "SR/03148/26",
"publicationDate": "2026-11-05",
"title": "Atom kävelysauvat / Trekking poles",
"brand": "Atom",
"category": "Hobby/sports equipment",
"riskLevel": "Serious risk",
"risks": ["Chemical"],
"hazardDescription": "The product has an excessive concentration of lead (measured value: 0,33% by weight). ...",
"measures": ["Import rejected at border"],
"notifyingCountry": "Finland",
"originCountry": "People's Republic of China",
"barcodes": ["6410412307088"],
"images": ["https://ec.europa.eu/safety-gate-alerts/public/api/notification/image/11239833"],
"url": "https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10119539"
}

Pricing

Pay per event, no subscription:

EventPricePer 1,000
recall-alert: one alert delivered (one dataset record)0.004 USD4 USD per 1,000 alerts
Actor start (once per run)0.00005 USDn/a

The start event is tiny; a run that returns nothing costs only that. Example: 200 alerts cost 0.80 USD plus the start event.

You can cap spend per run with the platform's Maximum cost per run setting: the Actor reads it, stops cleanly when the cap is reached and returns the partial results it already delivered (the run needs a cap high enough for at least one alert, otherwise it stops with a clear error and nothing is charged). In watch mode, alerts not delivered because of the cap are not marked as seen: they stay "new" for the next run.

This Actor stands alone. By the same publisher, for other French and UK public data: ADEME Emission Factors and French Public Contract Awards (DECP). They cover unrelated data; use them only if you need them.

Limits and good to know

  • Unofficial; data may be incomplete or late. Always check the official notice (url) before acting. Recall data can be corrected by the authorities after delivery.
  • Freshness: RappelConso showed a sheet published about 2 minutes earlier when checked (one observation). The Safety Gate export is refreshed hourly (08:00–19:00 CET) and only contains alerts the Commission has already published.
  • Safety Gate has no server-side filter: the Actor downloads the period (28 days per request, up to about 13 months per run) and filters it itself. It has no distributor field, so a distributor filter skips it (the log says so).
  • Keywords match at the start of a word (accents and case ignored); matchedKeywords shows which ones matched. RappelConso is searched with French words, Safety Gate with the chosen language: add both (jouet, toy).
  • maxResults (default 20, max 5000) is per source. A full year is about 3,500 RappelConso and 3,900 Safety Gate alerts, retrieved in about a minute.
  • RappelConso search windows are limited to 10,000 results by the source API; split very long periods.

Privacy / GDPR by design

This Actor is deliberately built not to return personal data about natural persons (names, addresses, phone numbers, e-mails of individuals or sole traders). This is a design choice made to respect the GDPR.

  • The contact phone number field of RappelConso sheets is never read.
  • E-mail addresses and phone numbers found in free-text fields are removed. Distributor paragraphs containing an address, e-mail, phone number or legal identifier (SIRET, VAT, RCS...) are dropped entirely.
  • Not guaranteed: small businesses can be named after their owner in the official data (for example a farm or a shop), so such a name can still appear in brand or distributors; other free text may mention a name. Product photos come from the official notices. You remain responsible for your own use of the data.
  • The Actor stores nothing about you beyond your run's own dataset and logs on Apify.

Licences and attribution

  • RappelConso: Licence Ouverte v2.0 (Etalab), DGCCRF / Ministère de l'Économie. Source and extraction date are in each record's attribution.
  • Safety Gate: © European Union, reused under Commission Decision 2011/833/EU (CC BY 4.0). Product photos and trademarks may belong to third parties.

En français (court)

Outil non officiel qui reprend les données ouvertes de RappelConso (DGCCRF) et du Safety Gate (Commission européenne) : recherche, consultation d'une fiche, et mode « surveillance » des nouveaux rappels (à planifier). Aucune donnée de contact personnelle. Vérifiez toujours la fiche officielle.