Scrape FDA Import Alerts (Detention Without Physical Examination) with a daily added/removed change-delta feed. Public-domain data for customs brokers, importers and trade-compliance.
Initial public release. Hardened and feature-completed during live
post-publish testing before any real usage (kept on version 1.0 so each build
inherits the latest tag automatically; a deliberate version bump will come
with the first change that could affect existing users).
Added (post-publish, same release)
Change notifications (DELTA): optional notifyWebhookUrl and
notifySlackWebhookUrl inputs. When a run finds changes, the Actor POSTs a
summary to your webhook and/or Slack — turning the feed into a hands-off
monitoring service. Best-effort: a notification failure never affects the run.
Severity on change rows:high (added to Red List), medium
(removed/changed on Red List), low (other lists) — so consumers can triage.
Streaming FULL mode: in full mode each alert's rows are written to the
dataset as they are scraped instead of buffering the entire dataset in memory,
making full 154-alert runs safe against out-of-memory.
Features
Three run modes:
discover — list every active FDA import alert (number, type, name, publish date, URL).
full — scrape every firm/product on the selected alerts.
delta — emit only firms added / removed / changed since the previous run.
One record per product — firms with multiple products yield one row each, with per-product desc and notes.
Change-delta engine — collision-safe identity (handles the FDA listing the same firm/product code multiple times), order-independent diffing, and a substantive-only content hash so address/date reformatting is not reported as a change.
Filters — by countryFilter and/or specific alertNumbers; choose listTypes (red/green/yellow).
Structured output — firm name, address, country, FDA product code, product description, publish date, list type, notes, redaction flag, and source URL.
Reliability & compliance
Honors the FDA robots.txt (Disallow rules + a 30-second hit-rate floor).
Detects the FDA HTTP-200 "apology" throttle page and treats it as a transient failure (never as an empty alert).
Delta safety gates: a run with any failed/throttled alert, a changed input scope, or an implausibly shrunken snapshot is a safe no-op — it never emits false "removed" rows or corrupts the baseline.
Parser-health checks and fail-safe behavior on FDA layout changes.
Honors FDA-redacted fields (never reconstructed).
Cross-run delta state is kept in a named key-value store
(fda-import-alert-state), which persists between runs — so scheduled delta
monitoring works correctly (the per-run default store would reset every run).
actor-start is charged once per run via Apify's per-run idempotency.
Notes
Pricing: pay-per-usage at launch.
Default run mode is discover (fast, always non-empty) so the daily Store auto-test passes reliably.