Product Recalls
Returns safety recalls from federal agencies, drug recalls (FDA), medical device recalls (FDA), food/dietary supplement recalls (FDA), consumer-product recalls (CPSC), and vehicle, equipment, tire and child-restraint recall campaigns (NHTSA, since 1966). Use this when the user asks about: recent recalls for a specific company or product, vehicle recalls by make or model, or FDA Class I (most severe) recalls.
Vehicle recalls: Source: NHTSA Office of Defects Investigation. Public domain (U.S. Government work). One row per campaign; do_not_drive and park_outside are NHTSA's consumer advisories.
GET /v1/product-recallsLive from the data
Loading the latest numbers…
What it returns
One record per result. Fields (from a live response):
- Subject:
product_quantity,product_codes,product_description,product_category - Dates:
model_year_range,termination_date,recall_initiation_date,posted_date,scraped_at - The trade / event:
status - Provenance:
source,source_url - Details:
vehicle_make,initiator,vehicle_model,classification,recall_number,recalling_firm,affected_component,distribution_pattern,id,reason_for_recall
Filters
| source | Filter to a single agency / category. Omit to see all sources combined. |
| recall_number | Recall identifier as filed (e.g., FDA 'D-1234-2026'). Combine with source for direct doc lookup, fastest path. |
| recalling_firm | The recalling firm's name (e.g., 'Pfizer', 'Abbott', 'Whole Foods'). Case-insensitive. 4+ characters match anywhere in the text; 1-3 characters match a whole word ('3M', 'GE', 'ABC'). A term of 3+ characters searches EVERY recall. A 1-2 character term searches only a window: the newest 5,000 recalls (the oldest, with sort_order=asc) that your other filters select (source, dates, classification, status, a 3+ character term); coverage_warning says so, and since/until move the window. |
| product_description | The product description (e.g., 'lithium', 'romaine', 'insulin pump'). Case-insensitive. 4+ characters match anywhere in the text; 1-3 characters match a whole word ('3M', 'GE', 'ABC'). A term of 3+ characters searches EVERY recall. A 1-2 character term searches only a window: the newest 5,000 recalls (the oldest, with sort_order=asc) that your other filters select (source, dates, classification, status, a 3+ character term); coverage_warning says so, and since/until move the window. |
| classification | FDA severity classification. Class I is most severe (death / serious harm). Ignored for CPSC records. |
| status | Exact match. Common values: 'Ongoing', 'Completed', 'Terminated', 'Recall Initiated'. |
| vehicle_make | NHTSA campaigns that name a vehicle of this make (e.g., 'Ford', 'Toyota'). Exact make, case- and space-insensitive. Matches NHTSA rows only. |
| vehicle_model | NHTSA campaigns that name a vehicle model containing this text (e.g., 'F-150', 'Camry'). Matches NHTSA rows only. 3+ characters search every campaign; 1-2 characters search the newest 5,000. |
| vehicles_cursor | With source=nhtsa + recall_number: the vehicles_next_cursor of the previous answer, for the campaign's next 500 vehicles. |
| since | ISO date (YYYY-MM-DD). Only recalls whose recall_initiation_date is on or after this date. |
| until | ISO date (YYYY-MM-DD). Only recalls whose recall_initiation_date is on or before this date. |
| sort_by | Default: recall_initiation_date. |
| sort_order | Default: desc (most recent first). |
| limit | Maximum records to return. Default 50, max 500. |
Example request
curl "https://api.keyvex.com/v1/product-recalls?limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"vehicle_make": null,
"initiator": null,
"vehicle_model": null,
"source": "cpsc",
"classification": null,
"recall_number": "26569",
"recalling_firm": "CooCooBaby, of China",
"product_quantity": "About 2,355",
"source_url": "https://www.cpsc.gov/Recalls/2026/CooCooBaby-Baby-Loungers-Recalled-Due-to-Risk-of-Serious-Injury-or-Death-from-Suffocation-and-Fall-Hazards-Violates-Mandatory-Standard-for-Infant-Sleep-Products",
"product_codes": null,
"model_year_range": null,
"termination_date": null,
"affected_component": null,
"distribution_pattern": "Online at CooCooBabyOfficial.com and Amazon.com from December 2024 through March 2026 for between $35 and $70.",
"id": "cpsc-26569",
"product_description": "This recall involves the \"Classic\" and \"Deluxe\" CooCooBaby Baby Loungers. The recalled baby loungers are made of a foam sleeping pad and padded bumpers with a cloth cover and were sold in multiple styles and colors. The Deluxe lounger has buttons at the foot, and the Classic lounger has a ribbon tie at the foot. \"CooCooBaby\" and the manufacturing information can be found on tags on the side of both baby loungers.",
"product_category": "CooCooBaby Baby Loungers",
"status": null,
"reason_for_recall": "The baby loungers violate the mandatory standard for Infant Sleep Products because the sides are shorter than the minimum side height limit to sec
…
}
],
"count": 1,
"has_more": true
}
Example questions you can answer
- Recent drug, device, food, or consumer-product recalls.
- Recalls for a specific brand or hazard.
Related datasets
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. A free key works: 60 requests/day, one year of history.
Get a free key OpenAPI spec → REST docs →Not investment advice. KeyVex is a data publisher: nothing on this site or in API responses is investment, legal, tax, or compliance advice (Terms §8).