Oredrift takes one public source at a time, reconciles what it actually contains, and serves it as an API you can query with the information you really have - not the information the source wishes you had.
# Is this product recalled anywhere in the EU? curl -X POST https://recalls.oredrift.com/v1/match \ -H 'Content-Type: application/json' \ -d '{"title": "Moulinex food processor blade", "barcode": "8720362191049"}' → exact alert, confidence 0.99, with the risk, the batches, and what the authority ordered.
Check your catalogue against the European Commission's Safety Gate. Match by barcode, brand, model, or plain product title - one call per product, or 2,000 in a single batch.
Every match carries the alert itself: product, brand, model, risk type and official severity, the batch numbers concerned, the country of origin, the official photo and the publication date. No second call per result.
Safety Gate data is public and free, but it is entered by hand by authorities in 31 countries, and it is inconsistent in three ways that each break the obvious implementation.
Only a quarter of alerts carry a barcode in the barcode field. Some of those hold an internal supplier reference; others hold several GTINs concatenated without a separator. A plain GTIN lookup misses three recalls out of four.
The batch-number field holds a barcode far more often than a lot code, and descriptions spell them out after the words Barcode or EAN. Reading those fields too, with check-digit validation, brings 44% within exact barcode reach.
Brand is present on 80% of alerts and a model reference on 77%, but model fields list several references in one string, and the single most common brand value in the whole archive is the literal word Unknown.
A product sold across the EU is notified separately by each country that finds it, so the raw feed repeats the same recall several times. Alerts describing the same product are grouped: you get one result per product, with the number of related alerts and the list of notifying countries, instead of five rows to reconcile yourself.
Matches based on text alone are flagged lead_only. They are leads to review, not conclusions. In product safety, a confidently wrong match costs more than a flagged uncertain one - so the API says which it is, and why, in plain words.
Two measurements on the full archive, rerun on every change. The second column is the one that matters: it strips the official description - the field carrying the distinctive wording - and rebuilds a marketplace-style title from brand, commercial name, product type and reference.
| Alert text | Seller title | |
|---|---|---|
| Exact alert returned | 84% | 93% |
| Useful to the subscriber | 97% | 98% |
| Correct alert in first position | - | 81% |
| Noise on off-topic queries | 0 / 12 | 0 / 12 |
| Median latency | 3.9 ms | 3.9 ms |
The first one sets the shape, and the next ones follow it.
The work is in reconciling what the source actually contains, not in collecting it. Anyone can download the feed; the value is in making it answer a real question.
Official fields are returned verbatim under source. Everything we derive is returned under enriched, never in place of the original.
Every API states how often it returns the right answer, measured on its full archive and rerun on every change.
A guess is labelled a guess, with a confidence score and a plain explanation of why it matched.
Agents get the Model Context Protocol over the same data and the same code. Never a second implementation to reconcile.
Collection follows the publisher's schedule, automatically, and the extraction date travels with every response.
The recalls API speaks MCP at https://recalls.oredrift.com/mcp. Same engine, same data, four tools. Nothing to install: point your client at the URL.
check_product one item against every recall check_catalogue up to 200 items in one call get_alert one alert by official case number list_alerts browse by category, risk, country
Under Regulation (EU) 2023/988 on general product safety, applicable since 13 December 2024, online sellers and marketplaces addressing the EU must operate a process to detect unsafe products. Safety Gate is the reference public source.
This service helps you find relevant alerts. It does not determine your legal obligations, and it is not legal advice. Matches flagged lead_only require human review before you act on them.
Recall data originates from the European Commission Safety Gate portal and is reused under Commission Decision 2011/833/EU. Every response carries the attribution below, the extraction date and the language, and every alert links to the official record. Alerts are refreshed weekly, following the Commission's publication.
Alerts from the Rapid Alert System for dangerous non-food products, published free of charge on the Safety Gate website, © European Union.
Oredrift is not affiliated with, endorsed by, or acting on behalf of the European Commission.