Product Recalls API: CPSC, FDA and EU Safety Gate (RAPEX) avatar

Product Recalls API: CPSC, FDA and EU Safety Gate (RAPEX)

Pricing

$5.00 / 1,000 recalls

Go to Apify Store
Product Recalls API: CPSC, FDA and EU Safety Gate (RAPEX)

Product Recalls API: CPSC, FDA and EU Safety Gate (RAPEX)

Product recalls and safety alerts from CPSC, openFDA (food, drugs, devices) and EU Safety Gate (RAPEX) in one format: product, brand, barcode, hazard, remedy, firm, date and link. Filter by keyword, brand, category, country and date, or watch for new recalls daily.

Pricing

$5.00 / 1,000 recalls

Rating

0.0

(0)

Developer

Viktor Wiberg

Viktor Wiberg

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Product Recalls Monitor (CPSC, FDA, EU Safety Gate)

Product recalls are published in different places and formats: the U.S. Consumer Product Safety Commission (CPSC) for consumer products, the U.S. Food and Drug Administration (FDA) for food, drugs and medical devices, and the European Commission's Safety Gate (formerly RAPEX) for dangerous non-food products found in the EU and EEA.

This actor reads all three and returns one row per recall in the same format: product, brand, model, barcode, category, hazard, remedy, firm, date, country and a link to the official notice. Use it to check whether anything you sell or import has been recalled, to watch a brand or product type every day, or to build a recall feed for a shop, a marketplace or a purchasing team.

Example from a real run

Run eWS1somEovVwOrjou on Apify on 4 October 2026, with this input:

{
"keywords": ["charger", "helmet", "sprouts"],
"maxResults": 50
}

It returned 50 recalls in 12 seconds of run time: 43 Safety Gate alerts (mostly USB chargers), 4 FDA food recalls (sprouts) and 3 CPSC recalls (bicycle helmets). One row from each source, with product, imageUrl, license and retrievedAt left out here to keep it short:

[
{
"recallId": "EU-SR/02650/26",
"source": "eu",
"country": "HU",
"title": "USB charger, QUICK CHARGER",
"brand": null,
"model": "KeKe-PD002, XDT-526",
"barcode": "8595511895266",
"category": "Electrical appliances and equipment",
"hazard": "Electric shock. The product lacks adequate insulation between the primary and secondary circuits. The secondary USB ports and the connected cable can become live under mains voltage. Consequently, the user may receive an electric shock. The product does not comply with the requirements of the Low Voltage Directive nor with the European standard EN 60335-1.",
"riskLevel": "Serious risk",
"remedy": "Type of economic operator to whom the measure(s) were ordered: Distributor. Category of measure(s): Recall of the product from end users. Date of entry into force: 23/06/2025. Type of economic operator to whom the measure(s) were ordered: Distributor. Category of measure(s): Withdrawal of the product from the market. Date of entry into force: 23/06/2025.",
"publishedAt": "2026-10-02",
"firm": null,
"unitsAffected": null,
"url": "https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10118792"
},
{
"recallId": "FDA-H-1337-2026",
"source": "fda-food",
"country": "US",
"title": "Everything Sprouts, LLC: Everything Sprouts and Calco branded Alfalfa Sprouts, Net Wt. 5.0 oz (142 g) UPC 7 68944-00005 9. The 5 oz. containers are distributed...",
"brand": null,
"model": null,
"barcode": null,
"category": "Food",
"hazard": "Sprouts may be contaminated with STEC E. coli and/or Salmonella.",
"riskLevel": "Class I",
"remedy": "Voluntary: Firm initiated. Status: Ongoing.",
"publishedAt": "2026-09-23",
"firm": "Everything Sprouts, LLC",
"unitsAffected": "1,830.25 pounds",
"url": "https://api.fda.gov/food/enforcement.json?search=recall_number:%22H-1337-2026%22"
},
{
"recallId": "CPSC-26789",
"source": "cpsc",
"country": "US",
"title": "5Color Recalls Children’s Bicycle Helmet and Pads Sets Due to Risk of Serious Injury or Death from Head Injury; Violate Mandatory Standard for Bicycle Helmets",
"brand": null,
"model": null,
"barcode": null,
"category": "Helmets & Helmet Accessories",
"hazard": "The helmets in the recalled sets violate the mandatory safety standard for bicycle helmets because the helmets do not comply with the impact attenuation, retention system, positional stability, labeling and certification requirements. The helmets can fail to protect the user in the event of a crash, posing a serious risk of injury or death due to head injury.",
"riskLevel": null,
"remedy": "Consumers should stop using the helmets immediately and contact 5Color for a full refund of the set. Consumers will be asked to destroy the recalled helmet by cutting the straps and email a photo of the destroyed helmet to (contact in the official notice). Consumers should then dispose of the recalled helmet. Consumers may keep the protection pads.",
"publishedAt": "2026-09-24",
"firm": "Hengqin Guangwei Consulting Co., Ltd., dba. 5Color, of China",
"unitsAffected": "About 324",
"url": "https://cpsc.gov/Recalls/2026/5Color-Recalls-Childrens-Bicycle-Helmet-and-Pads-Sets-Due-to-Risk-of-Serious-Injury-or-Death-from-Head-Injury-Violate-Mandatory-Standard-for-Bicycle-Helmets"
}
]

With empty input (run 9jcq4KTDePQqJXqPY, 11 seconds) the actor read 711 recalls from the last 30 days (37 CPSC, 72 FDA food, 50 FDA drug, 172 FDA device and 380 Safety Gate) and returned the 50 newest, 10 from each source.

Use cases

  • Shops and marketplaces: run your brands or product types as keywords every morning and get the new recalls only.
  • Importers and buyers: check a supplier's products or a product category before you place an order, for example all Safety Gate alerts for toys notified by Sweden in the last quarter.
  • Compliance and quality teams: keep a searchable archive of recalls in your own database, with the official link on every row.
  • Product data: match barcode and model against your catalogue. Safety Gate alerts often carry the EAN.

Input

FieldTypeDefaultDescription
sourcesarrayallcpsc, fda (all three FDA lists) or fda-food, fda-drug, fda-device one by one, and eu (Safety Gate).
keywordsarrayWords to look for in the product name, brand, model, barcode and firm, for example ["helmet", "IKEA"]. A recall matches if any keyword is found. Case does not matter.
categoriesarrayKeep recalls whose category contains one of these words, for example ["Toys"]. Each source has its own categories, see "Limits".
countriesarrayISO 3166 alpha-2 code of the country where the recall was issued, for example ["SE", "DE"]. CPSC and FDA recalls are US.
publishedFromstring30 days before publishedToFirst publication date, YYYY-MM-DD.
publishedTostringtodayLast publication date, YYYY-MM-DD.
maxResultsinteger50Maximum number of recalls, 1 to 10 000.
onlyNewbooleanfalseReturn only recalls that earlier runs with the same input have not delivered. See "Monitoring and scheduling".

The newest recalls come first. When maxResults cuts the list, the sources take turns, so 50 results from five sources give about 10 from each instead of 50 from whichever source published last.

Example input: Safety Gate alerts for toys notified by Sweden, Finland or Denmark since July.

{
"sources": ["eu"],
"categories": ["Toys"],
"countries": ["SE", "FI", "DK"],
"publishedFrom": "2026-07-01",
"maxResults": 200
}

Output

FieldDescription
recallIdSource and the source's own number, for example CPSC-26789, FDA-H-1337-2026 or EU-SR/02650/26. Stable between runs.
sourcecpsc, fda-food, fda-drug, fda-device or eu
countryWhere the recall was issued: US, or the Safety Gate notifying country such as SE or DE
titleHeadline of the recall. For FDA, the firm and the start of the product description
productProduct name or description
brandBrand as reported (Safety Gate, and FDA drugs and devices when openFDA has it). null for CPSC, where the brand is in the title
modelModel or type number
barcodeEAN, UPC or GTIN when reported
categoryCategory in the source's own terms
hazardWhat is wrong with the product and the risk. Safety Gate rows start with the risk type, for example Electric shock.
riskLevelFDA class (Class I is the most serious) or Safety Gate level (Serious risk). null for CPSC
remedyWhat consumers or companies are told to do, or the measures taken
publishedAtPublication date, YYYY-MM-DD. For Safety Gate, the date of the weekly report
firmCompany that recalls, makes, imports or distributes the product, when reported
unitsAffectedNumber of units or quantity, as written by the source
urlOfficial notice. For FDA, the openFDA record, since FDA has no stable page per enforcement report
imageUrlLink to the first product photo at the source. Images are not copied
licenseSource and license of the row
retrievedAtWhen the actor read the data

Monitoring and scheduling

Set onlyNew to true to watch a set of keywords, categories or countries over time. The actor then remembers which recalls it has delivered for the same input, in a named key-value store in your Apify account (nightwave-state-product-recalls-monitor, one record per input). Each run returns and charges only recalls that are new since earlier runs. The first run returns everything in the selection. A run without news finishes successfully with 0 rows.

onlyNew and maxResults are not part of the remembered input, so you can change them without starting over. Leave publishedFrom and publishedTo empty for a schedule: the window then moves with the date, and recalls you already have are skipped. When there are more new recalls than maxResults, the rest come in the next run.

Tested on 4 October 2026 with {"keywords": ["helmet", "charger"], "sources": ["cpsc", "eu"], "onlyNew": true}: the first run (OD3itNuonyvP8OM2e) returned 50 of the 70 matching recalls, the second (9fUsglFZXfRcjDK95) the remaining 20, and the third (EDbRHlsH2X5Y3VdCP) 0.

Example: a daily check at 07:00 Swedish time for recalls of the brands you sell. In Apify Console, open Schedules, create a schedule with the cron expression 0 7 * * * and add this actor with the input below.

{
"keywords": ["Philips", "Anker", "Lego"],
"onlyNew": true
}

The same schedule through the Apify API:

curl -X POST "https://api.apify.com/v2/schedules?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"name": "daily-recall-check", "cronExpression": "0 7 * * *", "timezone": "Europe/Stockholm", "isEnabled": true, "isExclusive": true,
"actions": [{"type": "RUN_ACTOR", "actorId": "nightwave-owner~product-recalls-monitor",
"runInput": {"contentType": "application/json; charset=utf-8", "body": "<the input above as a JSON string>"}}]}'

Add a webhook or an integration (Slack, e-mail, Google Sheets) on the schedule's runs if you want the new rows sent somewhere.

Limits

  • Publication rhythm. CPSC publishes recalls on most Thursdays. openFDA updates its enforcement reports weekly, and publishedAt is the FDA report date, which can be days or weeks after the firm started the recall. Safety Gate alerts are read from the weekly reports published every Friday, so a new alert shows up here on the Friday after the Commission validates it.
  • Keywords are matched on product, brand, model, barcode and firm, not on the hazard text. For FDA the search runs on openFDA's servers on the product description, firm and brand name, which matches whole words; for CPSC and Safety Gate it matches any part of a word, so charg finds charger.
  • Categories differ per source. Safety Gate uses categories such as Toys, Cosmetics or Electrical appliances and equipment. CPSC uses product types such as Helmets & Helmet Accessories. FDA uses Food, Drugs and Devices.
  • openFDA returns at most 25 000 records per list and search. The log warns if a long date range hits this. Narrow the dates or add keywords.
  • Large date ranges take longer. A year of Safety Gate is 52 weekly reports of 100-300 alerts each, which took 71 seconds to read in a test on 4 October 2026 (3,884 alerts).
  • No personal data. Contact names, phone numbers and e-mail addresses in recall notices are not returned; free text has phone numbers and e-mail addresses replaced with "(contact in the official notice)". Company addresses from FDA are left out.
  • Product data, not advice. The rows repeat what the authorities publish. They are not medical, legal or safety advice, and the official notice is what counts. openFDA states: "Do not rely on openFDA to make decisions regarding medical care."
  • Requests are retried three times on network errors, rate limits and server errors. If one source is down, the others are still delivered and the log says which one failed. The run fails only if no source could be read.

Source and license

  • CPSC: Recalls API (https://www.saferproducts.gov/RestWebServices/Recall), no key. CPSC writes: "The information is publicly available to consumers and businesses as well as software and application developers."
  • openFDA: enforcement reports for food, drugs and devices (https://api.fda.gov), no key, up to 240 requests per minute. The terms say the data is "public domain and made available with a Creative Commons CC0 1.0 Universal dedication". The actor sends at most two requests per second.
  • EU Safety Gate: weekly reports in XML, no key. The European data portal lists the XML weekly reports under Creative Commons CC0 1.0, and the rest of the Safety Gate site falls under the Commission's reuse decision 2011/833/EU, which allows reuse with the source acknowledged. Product photos stay at the Commission and are only linked.

Every row carries license so you can credit the source. This actor is not affiliated with or endorsed by CPSC, FDA or the European Commission.

Pricing

Pay per event: 0.005 USD per recall returned (event recall), which is 5.00 USD per 1 000 recalls. Platform usage is included, so you pay only per result. A run without matches costs nothing per recall. maxResults caps how many recalls, and therefore how much, a run can charge.

Rows are delivered only after they have been charged. If you set a maximum cost per run (maxTotalChargeUsd), the run stops there and its status message says how many rows were delivered.

Contact

Built and maintained by Nightwave AB. Questions, bugs and feature requests: kontakt@nightwave.se

På svenska

Actorn samlar produktåterkallelser från tre myndigheter i ett och samma format: amerikanska CPSC (konsumentprodukter), FDA via openFDA (livsmedel, läkemedel och medicintekniska produkter) och EU-kommissionens Safety Gate (tidigare RAPEX, farliga produkter som inte är livsmedel i EU och EES).

  • Fält per återkallelse: id, källa, land, rubrik, produkt, märke, modell, streckkod, kategori, fara, risknivå, åtgärd, publiceringsdatum, företag, antal enheter, länk till det officiella meddelandet, bildlänk och licens.
  • Filter: källor, sökord (produkt, märke, modell, streckkod eller företag), kategorier, land (ISO-kod, till exempel SE) och datum. Standard är de senaste 30 dagarna och 50 återkallelser, nyast först och fördelade mellan källorna.
  • Bevakning: med onlyNew kommer actorn ihåg vilka återkallelser den redan har levererat för samma input (key-value store nightwave-state-product-recalls-monitor). Varje körning levererar och debiterar bara nya återkallelser. Lägg actorn på ett dagligt schema i Apify under Schedules, se "Monitoring and scheduling".
  • Inga personuppgifter: kontaktpersoner, telefonnummer och e-postadresser i meddelandena tas bort.
  • Datan är produktinformation från myndigheterna, inte medicinsk, juridisk eller säkerhetsmässig rådgivning. Det officiella meddelandet gäller.
  • Källor och licens: CPSC (offentlig data), openFDA (CC0 1.0), Safety Gate (veckorapporter under CC0 1.0 enligt EU:s dataportal, i övrigt kommissionens beslut 2011/833/EU om vidareutnyttjande med angiven källa).
  • Pris: 0,005 USD per återkallelse (5,00 USD per 1 000). Plattformsanvändningen ingår.
  • Kontakt: kontakt@nightwave.se