US CPSC Consumer Product Recall & Supply Chain Monitor avatar

US CPSC Consumer Product Recall & Supply Chain Monitor

Pricing

$5.50 / 1,000 unique recall returneds

Go to Apify Store
US CPSC Consumer Product Recall & Supply Chain Monitor

US CPSC Consumer Product Recall & Supply Chain Monitor

Official CPSC recall notices with manufacturer, importer, distributor and retailer roles. Date, country and company filters. JSON/CSV for Clay and n8n.

Pricing

$5.50 / 1,000 unique recall returneds

Rating

0.0

(0)

Developer

AFK Digital

AFK Digital

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn official US Consumer Product Safety Commission recall notices into structured supplier-monitoring data. Filter by recall date, country of manufacture, source-listed companies and retailers. Export JSON or CSV for Clay, n8n, compliance research, supplier review and recall dashboards.

What you receive

One dataset row per unique CPSC RecallID. Products and companies never create additional rows or charges.

  • recall_id, recall_number, recall_date (YYYY-MM-DD)
  • product_name (array), products (complete source product entries)
  • hazard_description (array), remedies (array), remedy_options
  • manufacturer_names, importer_names, distributor_names, retailer_names (separate arrays)
  • distributor_retailer_names (array with explicit role, name, source_entry)
  • manufactured_in_country (array), recall_url, fetched_at (UTC)
  • source_record (complete CPSC JSON entry, including all source arrays and unmodified date) Missing or empty source fields become null in normalized outputs; source_record preserves original empties. Null elements in arrays preserve missing source names. Retailers.Name is often a sales-channel/date/price narrative: it is retained verbatim, not parsed into invented company entities. No attribution is inferred from the recall title.

Inputs and filter scope

All active filters combine with AND; string matching is literal case-insensitive substring, not regex or a taxonomy classifier.

InputApplication
recallDateFrom / recallDateToInclusive YYYY-MM-DD via RecallDateStart / RecallDateEnd and local validation
productCategoryLocal Products.Type or Products.CategoryID only. Fields are often blank; blank records do not match. Never falls back to product names.
manufacturedInCountryLocal ManufacturerCountries.Country, using source wording (e.g. China)
companyNameLocal OR across Manufacturers, Importers, Distributors, Retailers; roles stay separate
retailerNameLocal Retailers.Name only
maxResults1–10000 unique recalls; default 20
maxCostUsdExtra event budget, default $1.10, maximum $55

Omitted dates use the last 30 days through UTC today. The fixed January 2025 example provides reproducible recall data. Maximum span 3660 days; split larger history into separate runs. Different runs may return and charge the same recall again; deduplication is per run, including restart/resurrection.

Example input

{"recallDateFrom":"2025-01-01","recallDateTo":"2025-01-31","manufacturedInCountry":"China","companyName":"AliExpress","maxResults":20,"maxCostUsd":0.11}

API behavior and completeness

Source: https://www.saferproducts.gov/RestWebServices/Recall?format=json Official guide: https://www.cpsc.gov/s3fs-public/RecallRetrievalWebServicesProgrammersGuide20180917.pdf The legacy service returns a JSON array without a documented total-count or pagination contract. We request date windows of at most 31 days, newest windows first; dense responses (500 or more) are recursively split. A dense single day fails explicitly. Source order within each window is retained; this is not a guaranteed global date sort. Dates are validated locally so an ignored source date filter fails visibly. Invalid/unknown inputs are rejected, not silently ignored. Non-date filters are always applied locally. In live verification ManufacturerCountry=China returned no rows despite China being present; therefore it is not used for remote filtering. No numeric official rate limit was found in the linked guide. Our conservative policy is sequential requests, at most 1 per second, 3 attempts per request, Retry-After support for 429/transient server responses, up to 35s timeout per attempt, 20MiB response cap, 400 HTTP attempts and a 210s fetch deadline. Narrow the date range if a cap is reached. Errors fail the run; any already saved rows remain visible and billable. SUMMARY reports source URLs, attempts, saved count, time, error status, and whether a result/budget cap stopped scanning. Reaching maxResults/budget is an intentional limited scan, not a complete archive export. The undocumented source backend may have limits we cannot prove; no exhaustive archive guarantee is made.

Price

Pay per event: $0.0055 per successfully returned unique recall, or $5.50 per 1000. Only recall-returned is billed; no start fee and no per-product, per-country or per-company charges. Standard-run compute is included. Empty successful runs have zero recall events. maxResults, maxCostUsd and the Apify platform spending limit all apply. Dataset access/storage after the run follows Apify standard rules. The SDK writes/charges one recall at a time. Existing dataset IDs are loaded on restart to avoid re-emission. A source failure after some results does not erase those delivered results.

Clay / n8n

Call the Actor with JSON input, wait for completion, then read the default Dataset JSON or CSV link in Output. JSON retains nested arrays and source entries most faithfully. CSV is one row per recall, with nested values represented by the platform export; use JSON or parse nested cells when importing into tabular tools. Use recall_id as your downstream upsert key. No webhook or third-party service credentials required.

Interpretation and use

A recall is a historical safety notice, not evidence of current sales, a live inventory listing, or a legal liability decision. A source-listed company is not automatically the manufacturer, an affected supplier in your own chain, or a commercial prospect. Check the original notice, model/date details and remedies before acting. The public CPSC recall data is described as publicly available by CPSC and the data.gov catalog lists a public-domain license: https://catalog.data.gov/dataset/recalls-api . This Actor charges for structured retrieval and filtering, not exclusive ownership of government data. No CPSC endorsement. Third-party images/marks are not republished as marketing assets. No warranty of source completeness or uptime.

Development

Python 3.13, Apify SDK 4.2.0, standard-library HTTP/JSON only. Version 1.0.0. No browser, Playwright, proxies or paid upstream API.