cpsc_recalls
Find U.S. CPSC consumer-product recalls by date, product, manufacturer, or recall number. Get recall title, hazard, remedy, affected products, injuries, and more from SaferProducts.gov.
Instructions
Look up U.S. CPSC consumer-product RECALLS — recall title, hazard description, remedy, affected products, manufacturers, retailers, injuries, and country of manufacture (CPSC SaferProducts /RestWebServices/Recall; www.saferproducts.gov). KEYLESS. Siblings: nhtsa_recalls (vehicles), openfda_enforcement. Inputs (ALL optional): dateStart/dateEnd (YYYY-MM-DD recall date range), productName (substring), manufacturer (substring), recallNumber. Returns { recalls:[{ recallNumber, recallDate, title, description, url, products:[names], numberOfUnits, manufacturers:[names], retailers:[names], hazards:[descriptions], remedies:[descriptions], injuries:[names], manufacturerCountries:[names] }] } + honest _meta. HONESTY: the CPSC response is a bare array with NO count field and NO pagination — it returns the COMPLETE matching set, so totalAvailable = number of returned recalls and complete:true (never a fabricated total). ★With NO filter given, results are bounded to a DEFAULT ~90-day recent window (RecallDateStart, disclosed in _meta.notes) rather than a silent whole-dataset fetch. Empty result → HONEST EMPTY (returned:0), NOT an error; 4xx → invalid_input; 5xx/timeout → THROWS; 200 non-JSON or non-array → schema_drift. Nested arrays are flattened to name/description strings; NumberOfUnits kept as a string; every scalar is null-never-empty-string. Fixed host (SSRF-guarded); dates are ^\d{4}-\d{2}-\d{2}$ and recallNumber is letters/digits/hyphen only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dateEnd | No | Recall date range END (optional), YYYY-MM-DD, e.g. '2025-01-31' (→ RecallDateEnd). Validated ^\d{4}-\d{2}-\d{2}$. | |
| dateStart | No | Recall date range START (optional), YYYY-MM-DD, e.g. '2025-01-01' (→ RecallDateStart). Validated ^\d{4}-\d{2}-\d{2}$. | |
| productName | No | Product name substring filter (optional), e.g. 'helmet' (→ ProductName). | |
| manufacturer | No | Manufacturer name substring filter (optional) (→ Manufacturer). | |
| recallNumber | No | A specific CPSC recall number (optional), e.g. '25088' (→ RecallNumber). Letters/digits/hyphen only (^[A-Za-z0-9-]+$). |