CPSC product recalls - search by product, hazard, date (API) avatar

CPSC product recalls - search by product, hazard, date (API)

Pricing

from $5.00 / 1,000 records

Go to Apify Store
CPSC product recalls - search by product, hazard, date (API)

CPSC product recalls - search by product, hazard, date (API)

Search U.S. Consumer Product Safety Commission recalls (saferproducts.gov API) by title, product, hazard, manufacturer and date range. One row per recall: number, date, title, description, products, hazards, remedies, manufacturers, retailers, units, image count, URL. Default: last 180 days.

Pricing

from $5.00 / 1,000 records

Rating

0.0

(0)

Developer

RetrainMap Team

RetrainMap Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

CPSC product recalls — search by product, hazard, date (API)

One row per recall from the U.S. Consumer Product Safety Commission's public recall API (https://www.saferproducts.gov/RestWebServices/Recall). Filter by recall title, product name, hazard text, manufacturer and recall date; get recall number, date, title, description, product names, hazards, remedies, manufacturers, importers, retailers, units sold, injuries, image count and the cpsc.gov page URL — normalised, one flat row per recall, ready for CSV or JSON.

The default input (last 180 days, 300 rows) succeeds within 5 minutes and returns rows (about 300 recalls per half year) — Apify auto-tests it daily.

Data source and status

PublisherU.S. Consumer Product Safety Commission (CPSC)
APIhttps://www.saferproducts.gov/RestWebServices/Recall?format=json — public, no key (documentation: https://www.cpsc.gov/Recalls/CPSC-Recalls-Application-Program-Interface-API-Information)
What this Actor readsOne GET per run with RecallDateStart, RecallDateEnd and, when given, RecallTitle, ProductName, Manufacturer; the API answers with every matching recall in a single JSON array (newest first, no paging)
Refresh cadenceCPSC publishes recalls as they are announced (typically several per week). The Actor reads live on every run; fetched_at on each row is the fetch time and last_publish_date is the API's own last-publication date for the recall
CopyrightWorks of the United States Government are not subject to copyright in the U.S. (17 U.S.C. §105). The data are public; please cite CPSC as the source
Known caveatsThe API's own Hazard parameter matched nothing for any value tried on 2026-09-04, so hazard_contains is applied by the Actor to the hazard texts of the recalls returned for the other filters (the run summary counts what it dropped); many recalls list importers or retailers instead of manufacturers, so manufacturer_contains can miss them; a malformed date makes the API answer HTTP 200 with an error pseudo-recall, which the Actor detects and fails on; description is trimmed to 2,000 characters

Honesty note: the rows are the API's own fields flattened — nothing is inferred, summarised or classified by this Actor; recall details are informational and should be confirmed on the linked cpsc.gov page before acting on them. A run stops with an error rather than guess when the API's shape changes.

Identification: the requests carry a product-token User-Agent and the operator's contact address in the standard From: header (RFC 9110 §10.1.2).

Input

FieldTypeMeaning
title_containsstringOptional substring of the recall title (API RecallTitle)
product_containsstringOptional substring of a product name (API ProductName)
hazard_containsstringOptional substring of the hazard text, applied by the Actor
manufacturer_containsstringOptional substring of a manufacturer name (API Manufacturer)
date_from / date_toYYYY-MM-DDOptional, inclusive. Both empty = the last 180 days
max_recordsintegerDefault 300, at most 20,000 (newest first)
request_interval_msintegerDefault 1000 (floor 250)
contact_emailstringSent in the From: header

Example — recalls since January 2026 whose hazard text mentions fire:

{ "hazard_contains": "fire", "date_from": "2026-01-01", "max_records": 200 }

Output (dataset row)

recall_id, recall_number, recall_date, last_publish_date, title, description (≤ 2,000 chars), products (names joined with ; ), product_types, hazards, remedies, remedy_options (e.g. Refund, Repair), manufacturers, importers, distributors, retailers, manufacturer_countries, units (e.g. "About 2,200"), injuries, consumer_contact, images_count, url (cpsc.gov recall page), source, fetched_at.

A run summary (filters, the API's own count, rows dropped by the hazard filter, requests, whether the pay-per-event budget stopped the run) is stored as RUN_SUMMARY in the run's key-value store.

Pricing (pay per event)

EventPrice
run-start — once per run$0.10
record — per row written$0.005

The default 180-day pull (≤ 300 rows) costs at most $1.60; 1,000 recalls cost $5.10. Rows stop when your run's maximum charge is reached; the run summary says so.

Operator

Steelyard Ventures LLC (RetrainMap) — info@steelyardclinical.com. Not affiliated with the U.S. Consumer Product Safety Commission. The Actor writes only to its own dataset and key-value store; it stores no credentials and sends nothing else.