FDA Import Alert & Supplier Ban Monitor avatar

FDA Import Alert & Supplier Ban Monitor

Under maintenance

Pricing

Pay per usage

Go to Apify Store
FDA Import Alert & Supplier Ban Monitor

FDA Import Alert & Supplier Ban Monitor

Under maintenance

Screen suppliers against FDA import alerts, border refusals, recalls and warning letters. FSVP-ready risk score + recommended action per supplier. Covers food, supplements, cosmetics, pharma, devices.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Achmad Khairul Anam

Achmad Khairul Anam

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

FDA Import Alert & FSVP Supplier Screening — Refusals, Recalls, Risk Score

Screen suppliers against FDA enforcement data and get an FSVP-ready risk report per supplier in under 30 seconds. Covers import alerts, border refusals, recalls, and warning letters — everything an importer needs to satisfy the Foreign Supplier Verification Program before a shipment arrives.


Why this matters

Under FSMA's Foreign Supplier Verification Program (FSVP), U.S. importers are legally required to verify that each foreign supplier produces food in a manner that meets U.S. safety standards — before every shipment. A supplier on FDA's import alert list (DWPE — Detention Without Physical Examination) means your cargo is detained at the border automatically, without FDA even opening it.

The financial exposure is real: a single detained shipment typically costs $100,000–$500,000 once you account for demurrage, re-exportation or destruction costs, product loss, and the expedited review fees to get off the alert. Importers are also required to keep records of their supplier verification activities for FDA inspection — a manual process that this actor automates and documents.

This actor runs in seconds, covers the four primary FDA enforcement databases, and produces a structured risk report with a 0–100 score and a recommended action you can act on immediately.


What gets checked

SourceWhat it meansUpdate frequency
FDA Import Alerts (Red List)Firms subject to DWPE — cargo is detained at the border without physical examination. The most serious enforcement status.Cached, refreshed every 6 hours
Import Refusals (OASIS)Actual border rejections by FDA inspectors — shipments that were examined and refused entry. Includes refusal charges (e.g. "Filth", "Unsafe Color Additive").Monthly
Recalls & Enforcement (openFDA)Class I, II, and III recalls reported to FDA. Class I = risk of serious adverse health consequences or death.Weekly
Warning LettersFDA's formal notice to a firm that it is in significant violation of FDA regulations. Often a precursor to more severe action.As issued

Each result also includes match_confidenceexact when an FEI number was provided, or high/medium/low for name-based fuzzy matching — so you know how reliable the lookup was.


Risk score

Every supplier gets a 0–100 risk score built from the sources above, plus a plain-English risk_explanation array that lists exactly which findings drove the score. No AI is required to produce the number — it is fully deterministic.

ScoreLevelRecommended action
0–15cleanAPPROVED — No enforcement records found. Document and proceed.
16–35lowMONITOR — Minor or dated findings. Continue monitoring on schedule.
36–65mediumREVIEW_REQUIRED — Active refusals or recent warning letter. Request corrective action documentation from supplier before next shipment.
66–85highHOLD_SHIPMENT — Active import alert or Class I recall. Obtain third-party audit; hold next shipment pending review.
86–100criticalREJECT_SUPPLIER — Multiple active alerts or compound violations. Sourcing from this supplier is not advisable under current FDA status.

Input example

{
"suppliers": [
{
"name": "MAOMING HONGYE AQUATIC PRODUCTS CO., LTD.",
"fei_number": "3010761139",
"country": "CN",
"product_category": "seafood",
"internal_id": "SUPPLIER-001"
},
{
"name": "Sunland Inc",
"country": "US",
"product_category": "food",
"internal_id": "SUPPLIER-002"
}
],
"mode": "screen",
"include_removed_alerts": false
}

Providing fei_number (FDA Establishment Identifier) gives an exact match across all sources. If you only have a company name, the actor performs fuzzy name matching and reports the confidence level.


Output example

Truncated output for MAOMING HONGYE AQUATIC PRODUCTS (real public FDA data):

{
"supplier_name": "MAOMING HONGYE AQUATIC PRODUCTS CO., LTD.",
"fei_number": "3010761139",
"internal_id": "SUPPLIER-001",
"screened_at": "2026-06-24T10:30:00.000Z",
"risk_score": 40,
"risk_level": "medium",
"recommended_action": "REVIEW_REQUIRED",
"risk_explanation": [
{
"factor": "import_refusals_recent",
"detail": "19 import refusals in the last 12 months (+25 pts)"
},
{
"factor": "import_refusals_high_volume",
"detail": "More than 3 refusals in 12 months — elevated pattern (+15 pts)"
}
],
"active_import_alerts_count": 0,
"refusals_last_12mo": 19,
"recalls_count": 0,
"match_confidence": "exact",
"change_detected": false,
"data_sources_checked": [
"import_alerts",
"import_refusals",
"recalls",
"warning_letters"
]
}

The full output includes the complete refusals[], recalls[], and warning_letters[] arrays with all raw FDA fields.


Batch screening

Submit up to 50 suppliers in a single run. All suppliers are screened in parallel (up to 5 concurrent) and results are pushed to the Apify dataset as they complete. Each result is independent — a timeout on one supplier does not affect others.


Snapshot history and change detection

Every run persists a status snapshot per supplier to a named Apify KeyValueStore (fda-firm-latest). On the next run, the actor diffs the current result against the prior snapshot and sets change_detected: true if the risk score, refusal count, alert count, or recall count changed.

This enables scheduled monitoring: run weekly, and you only need to review suppliers where change_detected is true. Over time, the named Dataset fda-firm-history accumulates a time-series for each supplier — a record no fresh lookup can produce.


Limitations

  • Import refusals require a country code (country field, ISO-2 format such as "CN" or "IN"). Without a country, the refusal check is skipped and noted in data_sources_checked as import_refusals_skipped_no_country. Providing fei_number as an alternative also enables the refusal lookup.
  • Import alert index refreshes every 6 hours. The first run of the day crawls ~154 FDA alert pages (~2–5 minutes). Subsequent runs within 6 hours use the cached index and complete in under 30 seconds.
  • Warning letter search requires a browser session (FDA's search is JavaScript-rendered). This adds a few seconds per supplier. If the FDA site is slow, the warning letter check times out gracefully and returns an empty array — the score still reflects the other three sources.
  • Name matching is fuzzy, not exact. When no FEI number is supplied, the actor normalizes and compares firm names against FDA records. Match confidence is always reported. Provide the FEI number when available for a guaranteed exact match.
  • Data reflects what FDA has published. There is typically a 30-day lag on import refusals (monthly update cycle) and up to 1 week on recalls.

Pricing

ActionCost
Per supplier screened (mode: "screen")$1.00
Per monitoring check (mode: "monitor", scheduled)$0.10
Free tier3 suppliers/month

Charges are per-event via Apify's Pay-Per-Event billing and appear in your Apify usage dashboard.


Environment variables

VariableRequiredPurpose
OPENFDA_API_KEYRecommendedFree key from open.fda.gov/apis/. Raises daily recall lookup limit from 1,000 to 120,000 requests.
OPENROUTER_API_KEYNoPhase 2 — AI-generated risk summaries via DeepSeek V4 Flash (openrouter.ai). Active when set and risk score > 0.
RESEND_API_KEYNoPhase 3 — email alerts when change_detected is true on a scheduled monitoring run.

Disclaimer

This actor screens publicly available FDA databases. Results reflect data that FDA has published and may not capture enforcement actions taken within the last 30 days. This is not legal advice. Consult a regulatory attorney for FSVP compliance strategy specific to your import program.