Product Safety & Recall Match API API
The Product Safety & Recall Match API matches a product to safety recalls as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary product_match endpoint resolves a product's identity (title, brand, category, GTIN) and returns matching recalls with a confidence score and what they matched on, and you can run a brand_check and batch many products. It is built for e-commerce, marketplace safety and compliance workflows that need to flag recalled products without maintaining recall feeds. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, product_match, on .
{
"method": "POST",
"url": "https://api.reefapi.com/enrich-recall/v1/product_match",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"gtin": "0860007279478"
}
}{
"ok": true,
"meta": {
"api": "enrich-recall",
"endpoint": "product_match",
"mode": "live",
"latency_ms": 9641,
"record_count": 0,
"bytes": 0,
"cache_hit": false,
"subcalls": [
{
"api": "barcode",
"action": "lookup",
"status": "ok",
"latency_ms": 2442.6
},
{
"api": "recall",
"action": "search",
"status": "ok",
"latency_ms": 1151.2
},
{
"api": "recall",
"action": "by_company",
"status": "ok",
"latency_ms": 1157.4
}
],
"candidates_scored": 1
},
"data": {
"identity": {
"resolved_title": "Sichuan Chili Crisp",
"brand": "Fly By Jing",
"category": "food",
"gtin": "[redacted-phone]",
"source": "barcode (openfoodfacts, upcitemdb)",
"resolved": true
},
"recalls": [],
"possible": [
{
"match_confidence": 0.706,
"matched_on": [
"brand:exact:1.0",
"category:match"
],
"components": {
"brand": 1,
"title": 0.265,
"category": 1,
"exact_id": false
},
"agency": "U.S. FDA (openFDA RES)",
"source": "openFDA",
"recall_id": "H-[redacted-phone]",
"category": "food",
"classification": "Class II",
"severity_score": 75,
"recalling_firm": "Fly By Jing Inc.",
"product": "Fly By Jing (branded) Creamy Sesame Noodles; 3.8 oz packets. Sold in single and 4 packs. Single UPC: [redacted-phone] pack UPC: [redacted-phone]",
"hazard": "Possible cross-contamination resulting in undeclared allergen ingredient (Peanut)",
"remedy": "Recall (Voluntary: Firm initiated)",
"status": "Ongoing",
"date": "[redacted-phone]",
"url": null
}
],
"counts": {
"recalls": 0,
"possible": 1,
"candidates_scored": 1
},
"sources_searched": [
"U.S. FDA (openFDA RES)",
"EU Safety Gate (RAPEX)"
],
"coverage_gaps": [
"CPSC (.gov, not yet accessible)",
"NHTSA (served by the `vehicle` engine)",
"Health Canada / UK OPSS / OECD (per-portal, not yet integrated)"
],
"no_match_note": "Absence of a recall match does NOT mean the product is safe. Coverage = U.S. FDA (openFDA food/drug/device) + EU Safety Gate (RAPEX); it does NOT include CPSC, NHTSA, Health Canada or other national portals. This is safety INFORMATION, not a compliance or legal decision — verify with the official agency before acting."
}
}What the Product Safety & Recall Match API API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| product_match | Resolve a product (GTIN ‖ title+brand ‖ listing_url) and match it against FDA + EU recalls with transparent confidence. recalls[] = high-confidence (brand independently matched); possible[] = lower-confidence candidates. | Pricing teams call product_match to resolve a product (GTIN ‖ title+brand ‖ listing_url) and match it against FDA + EU recalls wi…. | gtin, title, brand, category, listing_url, ... |
| brand_check | All recalls for a brand / recalling-firm (normalized passthrough of the recall engine's by_company), newest first — the seller-watch / due-diligence use case. | Marketplace operators call brand_check to get all recalls for a brand / recalling-firm (normalized passthrough of the recall engine's by_co…. | brand, category, date_from, date_to, limit |
| batch | Scan up to 25 catalog products in one call (seller pre-listing audit). Each item is product_match'd; per-item ok/error + a roll-up summary. | Catalog enrichment teams call batch to scan up to 25 catalog products in one call (seller pre-listing audit). | items, max_results |
Call product_match from your stack
curl -X POST https://api.reefapi.com/enrich-recall/v1/product_match \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"gtin":"0860007279478"}'import requests
r = requests.post(
"https://api.reefapi.com/enrich-recall/v1/product_match",
headers={"x-api-key": REEF_KEY},
json={
"gtin": "0860007279478"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/enrich-recall/v1/product_match", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"gtin": "0860007279478"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.enrich-recall.product_match with {"gtin":"0860007279478"}.Who uses this API and why
- Marketplaces call product_match to flag or delist products that match an active safety recall.
- Retail compliance tools use brand_check to monitor whether a supplier's brand has recalls.
- Catalog pipelines use batch to screen an entire product feed against recall data.
Questions developers ask before integrating
What is the Product Safety & Recall Match API API?
Product Safety & Recall Match API API is a ReefAPI endpoint group for product safety & recall match api It returns live JSON through POST requests under /enrich-recall/v1.
Is the Product Safety & Recall Match API API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Product Safety & Recall Match API calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Product Safety & Recall Match API login or account?
No login to Product Safety & Recall Match API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Product Safety & Recall Match API data?
The page example is captured from a live product_match call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Product Safety & Recall Match API API use?
Product Safety & Recall Match API actions currently cost 2-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Product Safety & Recall Match API from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call enrich-recall actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Product Safety & Recall Match API API a Product Safety & Recall Match API scraper?
It is the managed alternative to a DIY Product Safety & Recall Match API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same product safety & recall match api back as clean JSON.
Why does my Product Safety & Recall Match API scraper keep getting blocked?
Most Product Safety & Recall Match API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.