CPSC & NHTSA Recall Portfolio Watch avatar

CPSC & NHTSA Recall Portfolio Watch

Pricing

from $6.00 / 1,000 safety record rows

Go to Apify Store
CPSC & NHTSA Recall Portfolio Watch

CPSC & NHTSA Recall Portfolio Watch

Monitor official CPSC and NHTSA public safety records across product and vehicle watchlists. Deliver changed records, alerts, portfolio reports, and exports.

Pricing

from $6.00 / 1,000 safety record rows

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Buyer: product safety, quality, regulatory operations, and product teams that need a small, source-linked queue of new or changed public safety and FDA enforcement records. Input: CPSC, NHTSA, or FDA watchlists plus an isolated monitorKey. Output: a report-first portfolio row, optional raw records, market-action alerts, and an optional export row.

This actor uses only the official public CPSC Recalls REST API, official public NHTSA Recalls and Complaints APIs, and keyless openFDA drug/device/food/enforcement.json endpoints. FDA watchlists are enforcement/recall records only; this actor never calls openFDA adverse-event endpoints. It does not use search engines, retailer pages, manufacturer pages, social media, private feeds, or third-party safety databases.

Store Quickstart

Run this input to exercise the documented first-run path. Review the pricing section before increasing the scope.

{
"watchlists": [
{
"id": "battery-recalls",
"agency": "CPSC",
"productNames": [
"battery"
],
"lookbackDays": 30
}
],
"monitorKey": "starter-battery-recalls",
"initialRunMode": "emit_backfill",
"generateReport": false,
"emitRawRows": true,
"emitUnchanged": false,
"emitExport": false,
"maxChangedRecords": 1,
"maxChargeUsd": 1,
"dryRun": false
}

Start with a low-cost paid trial

Use this capped input to verify the source and buyer-facing output before buying a full report. It disables the report and export events and caps the run at $1.00. It delivers both a source row (safety-record-row, $0.006) and a buyer-facing signal (market-action-alert, $0.20) when the starter evidence matches. A zero-row run has zero event charge.

{
"watchlists": [
{
"id": "battery-recalls",
"agency": "CPSC",
"productNames": [
"battery"
],
"lookbackDays": 30
}
],
"monitorKey": "starter-battery-recalls",
"initialRunMode": "emit_backfill",
"generateReport": false,
"emitRawRows": true,
"emitUnchanged": false,
"emitExport": false,
"maxChangedRecords": 1,
"maxChargeUsd": 1,
"dryRun": false
}

When the result fits your workflow, use the separate state key below to generate the full product-safety-portfolio-report output ($8.00) and product-safety-export export ($5.00). The cap covers the selected report/export path; unchanged monitoring runs still produce zero rows and zero event charge.

{
"watchlists": [
{
"id": "battery-recalls",
"agency": "CPSC",
"productNames": [
"battery"
],
"lookbackDays": 30
}
],
"monitorKey": "starter-battery-recalls-full-report-v1",
"initialRunMode": "emit_backfill",
"generateReport": true,
"emitRawRows": false,
"emitUnchanged": false,
"emitExport": true,
"maxChangedRecords": 1,
"maxChargeUsd": 13.46,
"dryRun": false
}

Run the next report

Input

{
"watchlists": [
{
"id": "children-products",
"name": "Children product safety watch",
"agency": "CPSC",
"productNames": ["toy"],
"keywords": ["choking", "burn"],
"lookbackDays": 30
},
{
"id": "vehicle-watch",
"name": "Honda Accord watch",
"agency": "NHTSA",
"make": "Honda",
"model": "Accord",
"modelYear": 2020,
"recordTypes": ["recall", "complaint"]
},
{
"id": "fda-drug-watch",
"name": "FDA drug enforcement watch",
"agency": "FDA",
"productTypes": ["drug"],
"keywords": ["contamination"],
"classifications": ["Class II"],
"lookbackDays": 180,
"maxResults": 25
}
],
"monitorKey": "buyer-portfolio-1",
"initialRunMode": "baseline_only",
"generateReport": true,
"emitRawRows": true,
"emitUnchanged": false,
"maxChargeUsd": 25,
"dryRun": false
}

The eight control fields shown above are required. CPSC watchlists need a product, brand, category, keyword, or recall selector. NHTSA watchlists need a make/model/model year, campaign number, or ODI number. NHTSA vehicle watchlists query recalls and complaints by default; set recordTypes or includeComplaints to narrow them. FDA watchlists require one to three productTypes (drug, device, or food) and a bounded lookbackDays window. They may add keywords, brands (recalling-firm terms), classifications, statuses, and maxResults from 1 to 100. Arbitrary FDA query strings, adverse-event endpoints, and person-level fields are not accepted.

monitorKey is the state namespace. Keep it stable for a scheduled monitor and change it for an independent baseline. initialRunMode accepts baseline_only, emit_current_window, or emit_backfill. emitExport is optional and adds the $5 export event when a change exists. Network timeout, retry, rate-limit, webhook, and idempotency controls are optional.

Output

Rows use rowType values product_safety_portfolio_report, safety_record, market_action_alert, and product_safety_export. Every billable row carries a deterministic stableKey, idempotencyKey, official source URLs, limitations, and prohibitedInterpretations. FDA rows include the normalized fdaProductType, classification, status, and source-record fields without contact or person fields.

The report row is emitted first. A safety record row includes normalized CPSC, NHTSA, or FDA fields only when emitRawRows is enabled. An alert row is created for each new or changed matched record. NHTSA complaints are labeled signalOnly; FDA enforcement records are market-action records, not adverse-event signals. The output also contains deliveryAudit with planned and captured event prices, charge counts, idempotency keys, budget, delivery status, and state-commit status.

Run patterns

1. Establish a free baseline

Run the same watchlists with initialRunMode: "baseline_only" and dryRun: false. The actor fetches official data, saves the fingerprint snapshot, and emits zero rows and zero charges.

2. Monitor the current window

Use initialRunMode: "emit_current_window" on a first run only when first-window records should be delivered. Later runs compare the official record fingerprints. New or changed records produce the configured report, alerts, and optional raw/export rows. A fully unchanged run always emits zero rows and zero charges, including when emitUnchanged is true.

3. Review a historical backfill

Use initialRunMode: "emit_backfill" for an explicit first-run delivery of all records returned by the official APIs. Set a buyer-approved maxChargeUsd; the full unique event plan is checked before any push.

Pricing

This actor uses PAY_PER_EVENT pricing and has no start or heartbeat charge.

EventPriceWhen emitted
safety-record-row$0.006Each changed (or included unchanged-with-change) raw record when emitRawRows is true
market-action-alert$0.20Each new or changed matched record
product-safety-portfolio-report$8.00One changed portfolio report when generateReport is true
product-safety-export$5.00One optional changed export when emitExport is true

Baseline-only and unchanged runs are zero-row and zero-charge. Dry runs do not call the official APIs, write state, or push billable events.

Source and safety limits

Source URLs are restricted in code to saferproducts.gov/cpsc.gov, api.nhtsa.gov/nhtsa.gov, and api.fda.gov/open.fda.gov. FDA requests use fixed enforcement endpoints, a bounded date filter, safe field filters, and a maximum result limit of 100. A source error for any watchlist makes the entire run non-billable and prevents state advancement. State load and save fail closed; a failed save cannot be reported as a successful run. Unknown billing events, missing chargedCount, PPE charge-limit responses, and budget overruns stop delivery.

Public recalls, complaints, and FDA enforcement records are evidence for review, not a safety rating, medical advice, legal conclusion, defect finding, causality finding, compliance certification, or proof of injury causation. The actor does not guarantee recall completeness and is not affiliated with or endorsed by CPSC, NHTSA, FDA, or HHS. Use the source-linked official record and qualified internal review for final decisions.

Files

  • INPUT_SCHEMA.json
  • dataset_schema.json
  • docs/source-compliance.md
  • docs/integration-guide.md
  • docs/store-competitive-snapshot.md
  • docs/sample-output.json