Developers — Recall API
CPSC, FDA, NHTSA and USDA each ship their own format, IDs and date conventions — or no bulk feed at all. We normalize them into a single JSON schema, deduped and refreshed every 6 hours. Build compliance monitoring, product-liability intake, or insuretech risk screens on one endpoint.
Why this API
A single REST endpoint returning clean JSON. No XML, no per-agency auth, no scraping. GET /api/recalls.
Four federal recall sources merged, deduped and date-normalized into one stream. Filter by agency when you want just one.
Built for product-liability law, insuretech underwriting and compliance teams who need recall signal as data, not a webpage.
Quick start
Free API key — 100 calls/day, no card.
# Mint a key (or use the form above)
curl -X POST https://recalls.dropwatchhq.com/api/keys \
-H "Content-Type: application/json" \
-d '{"email":"you@company.com"}'
# Call the API
curl "https://recalls.dropwatchhq.com/api/recalls?category=food&limit=5" \
-H "X-API-Key: rk_live_xxx"
Reference
GET /api/recallsReturns the unified recall feed. Auth via X-API-Key header, Authorization: Bearer, or ?api_key=. Anonymous calls allowed at the Free rate.
| Param | Type | Description |
|---|---|---|
category | string | food · drugs · vehicles · products · baby |
agency | string | FDA · NHTSA · CPSC |
from / to | date | YYYY-MM-DD recall-date range (inclusive) |
keyword / q | string | Match title, brand or hazard text |
limit | int | Cap results (max 300) |
POST /api/keysBody {"email":"..."} → mints a Free key. Returns { api_key }.
POST /api/webhook BusinessBody {"webhook_url":"https://..."} with your Business key. New recalls POST to that URL on every refresh (event recalls.new).
{
"updated": "2026-08-06",
"count": 300,
"tier": "free",
"schema": ["agency","category","title","brand","hazard","date","url","remedy"],
"recalls": [
{
"agency": "CPSC",
"category": "baby",
"title": "Acme Drop-Side Cribs",
"brand": "Acme",
"hazard": "Entrapment and suffocation hazard",
"date": "2026-06-14",
"url": "https://www.cpsc.gov/Recalls/...",
"remedy": "Stop using immediately; contact firm for refund."
}
]
}
Pricing
Pay by PayPal, card, crypto, or request an invoice on the upgrade page →