Check whether a product matches an official recall.
Enter a brand, model, barcode, lot, VIN or drug code. Product Recall Check picks the responsible authority, queries its official recall data live, and shows exactly what the authority says — hazard, remedy and which units are affected. Built for AI agents, usable by people.
Official sources only
CPSC (consumer products), NHTSA (vehicles) and FDA (food, drugs, medical devices), queried live through their own APIs. No scraping, no model guesses.
“No match” is not “safe”
NO_MATCH_FOUND means only that no matching recall was found in the checked official sources under the supplied identifiers. It does not mean the product is safe, free of defects, or will never be recalled.
Pay only for answers
0.018 USDC per check via x402. Unsupported requests, unreachable sources and undecidable evidence are never charged.
Exact identifiers, honest limits
Model numbers are matched exactly (XR-10 never equals XR-100). Serial ranges, lot codes, date codes and best-by dates in the official text are read deterministically; when a recall covers only some units and your identifiers cannot settle it, the answer is POSSIBLE_MATCH with the restriction spelled out — never an overclaim.
Result codes
RECALL_FOUND | An exact published identifier (UPC/GTIN, NDC, model, SKU, lot or serial within a listed range) ties the product to an official recall, and no stated restriction is left unverified. Charged. |
POSSIBLE_MATCH | A recall may apply, but a restriction is unverified (e.g. only some serial numbers, lot codes not supplied, vehicle VIN population not public) or the identity match is at model-family / brand+name level. Charged. |
AMBIGUOUS | Several different recalls (or only weak name similarities) relate to the product; the identifiers cannot tell which applies. Candidates are returned. Charged. |
NO_MATCH_FOUND | The relevant official source(s) answered and nothing matched sufficiently specific identifiers. NO_MATCH_FOUND means only that no matching recall was found in the checked official sources under the supplied identifiers. It does not mean the product is safe, free of defects, or will never be recalled. Charged. |
SOURCE_UNAVAILABLE | An official source could not be queried. Never reported as "no recall". Not charged; retry with the same Idempotency-Key. |
UNABLE_TO_VERIFY | The sources answered but the evidence cannot support a determination (identifiers too weak for a no-match, vehicle model not recognised, too many candidates, or a relevant authority that is not covered, e.g. USDA FSIS for meat). Not charged. |
Coverage today
| Category (United States) | Authority | Live |
|---|---|---|
| Consumer products | CPSC | yes |
| Motor vehicles | NHTSA | yes |
| Food (FDA-regulated) | FDA | yes |
| Drugs (human and animal) | FDA | yes |
| Medical devices | FDA | yes |
| Meat, poultry and processed egg products (USDA FSIS) | — | not covered |
| Vehicle equipment, tires and child car seats (NHTSA equipment campaigns) | — | not covered |
| Cosmetics | — | not covered |
| Recreational boats (USCG) | — | not covered |
Sources, freshness and known limitations →
For agents
curl -s -X POST https://productrecallcheck.online/api/v1/check \
-H 'Content-Type: application/json' \
-d '{"brand":"Vivitar","product_name":"blender bottle","model":"ES15-BB-TA"}'
# → 402 with price, x402 requirement and the official sources to be queried.
# Resend with PAYMENT-SIGNATURE + Idempotency-Key → 200 with result and evidence.Machine-readable: /openapi.json · /llms.txt · /api/v1/coverage · /api/v1/pricing · /.well-known/product-recall-check.json