CPSC Product Recalls Scraper — SaferProducts.gov Export avatar

CPSC Product Recalls Scraper — SaferProducts.gov Export

Pricing

Pay per event

Go to Apify Store
CPSC Product Recalls Scraper — SaferProducts.gov Export

CPSC Product Recalls Scraper — SaferProducts.gov Export

Export US Consumer Product Safety Commission (CPSC) recall records via the public, keyless SaferProducts.gov REST service — products, hazards, remedies, retailers, injuries and images — as clean flattened JSON rows for any bounded date window.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share


🎯 What this scrapes

CPSC's SaferProducts.gov service publishes every US consumer product recall as a raw, deeply nested JSON payload — hazards, remedies, retailers, manufacturers and images all buried in their own arrays. This Actor pulls a bounded date window and flattens every nested field into one clean row, so a compliance watchlist or marketplace safety check becomes a spreadsheet instead of a parsing project. Different regulator and wire format than our FDA drug/food/device Actor — not a duplicate.

🔥 What we handle for you

  • 📅 Bounded date windows, always — both dates are required and capped at 31 days, so a run never balloons into a full-corpus pull.
  • 🧹 Every nested array flattened — hazards, remedies, retailers, manufacturers and images all land as clean comma-joined strings, never raw JSON blobs.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts, Retry-After honoured.
  • 🫠 One bad record never fails the run — a malformed recall is logged and skipped, the rest of the window still ships.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for rows that hit your dataset, plus one small warm-up charge per run.

💡 Use cases

  • Screen marketplace listings against active recalls before they ship.
  • Feed a compliance watchlist with weekly CPSC recall windows.
  • Back an insurer's product-liability risk model with structured recall history.
  • Give consumer-safety researchers clean rows instead of CPSC's nested JSON.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
recallDateStartstringyes'2026-08-14'Start of the recall-date window, inclusive, as YYYY-MM-DD. Required — this Actor never runs an unbounded…
recallDateEndstringyes'2026-08-21'End of the recall-date window, inclusive, as YYYY-MM-DD. Must be on or after the start date and within 31…
maxResultsintegerno25Stop after this many records. Each record is one billed result-row event. The date window, not this…
proxyConfigurationobjectno{'useApifyProxy': False}SaferProducts.gov is a public government API with no anti-bot surface and needs no proxy. Leave this off unless your…

Example input

{
"recallDateStart": "2026-08-14",
"recallDateEnd": "2026-08-21",
"maxResults": 10,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
recall_idintegerCPSC internal recall identifier (RecallID).
recall_numberstringPublic CPSC recall number.
recall_datestringDate CPSC announced the recall (YYYY-MM-DD).
last_publish_datestringDate the recall record was last published or amended.
titlestringRecall headline / title.
descriptionstringFull recall description text.
urlstringLink to the recall's page on cpsc.gov.
consumer_contactstringRemedy contact info for affected consumers.
productsstringRecalled product name(s), comma-joined.
product_unitsstringNumber of units sold, as published.
hazardsstringHazard type(s), comma-joined.
remediesstringRemedy action(s) offered to consumers, comma-joined.
remedy_optionsstringRemedy option label(s), comma-joined.
injuriesstringReported injury type(s), comma-joined.
retailersstringRetailer name(s) that sold the product, comma-joined.
manufacturersstringManufacturer name(s), comma-joined.
importersstringImporter name(s), comma-joined.
distributorsstringDistributor name(s), comma-joined.
manufacturer_countriesstringCountry/countries of manufacture, comma-joined.
sold_at_labelstringFree-text "sold at" label, when CPSC published one.
image_urlsstringRecall image URL(s), comma-joined.

Example output

{
"recall_id": 10937,
"recall_number": "26716",
"recall_date": "2026-08-20",
"last_publish_date": "2026-08-20",
"title": "CCM Hockey U.S. Recalls FMHVR Hybrid Visors Due to Impact Injury Hazard",
"description": "The recalled visors can crack or shatter on impact...",
"url": "https://www.cpsc.gov/Recalls/2026/...",
"consumer_contact": "CCM Hockey U.S. toll-free at 855-333-2662",
"products": "FMHVR Hybrid Visor",
"product_units": "About 12,957",
"hazards": "Impact injury hazard",
"remedies": "Consumers should stop using the recalled visors immediately",
"remedy_options": "Replace",
"injuries": "None reported",
"retailers": "Hockey specialty stores nationwide, Oct 2025-Jul 2026, $80-$150",
"manufacturers": "",
"importers": "CCM Hockey U.S.",
"distributors": "",
"manufacturer_countries": "China",
"sold_at_label": null,
"image_urls": "https://www.cpsc.gov/s3fs-public/CCM-1.gif"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.2One-off warm-up charge per run
result-row$0.004Per unique dataset item

Example: 1 000 results at the rates above ≈ $4.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • The date window is capped at 31 days per run — this is a deliberate egress guard, not a CPSC limit; chain successive windows for a longer backfill.
  • Some free-text fields (e.g. retailer names) embed date ranges or prices as CPSC published them — passed through as-is, no regex extraction.
  • Covers CPSC's Recall resource only — the separate CPSRMS incident-report dataset is out of scope.

❓ FAQ

Do I need an API key?

No. SaferProducts.gov serves this data keylessly — no auth, no API key, no login.

Why are both dates required?

An open-ended query silently returns a full calendar year of recalls. Requiring both bounds keeps every run small and predictable — the window, not maxResults, controls how much data is fetched.

How far back can one run go?

Up to 31 days per run. For a longer history, run the Actor again with the next window — recall data is immutable, so results never change once published.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.