FDA Drug Shortage Monitor (new / status change / resolved) avatar

FDA Drug Shortage Monitor (new / status change / resolved)

Pricing

from $20.00 / 1,000 shortage changes

Go to Apify Store
FDA Drug Shortage Monitor (new / status change / resolved)

FDA Drug Shortage Monitor (new / status change / resolved)

Track FDA drug shortage changes (new, status change, resolved) via openFDA with snapshot delta so reverification noise is not charged.

Pricing

from $20.00 / 1,000 shortage changes

Rating

0.0

(0)

Developer

Chase Mariano

Chase Mariano

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

FDA Drug Shortage Monitor

One event per shortage change in the FDA Drug Shortages database. A change is a newly posted shortage or discontinuation, a status change (e.g. Current → Resolved), an update to availability, the reason or dates, or a listing that drops out of the feed. You choose what to watch: drug names, therapeutic categories or NDCs. Built for health-system pharmacy buyers, GPOs, distributors and pharmacy-software teams who need "tell me when something I stock changes", not a nightly re-dump of 1,600 rows.

Pricing: pay per event. shortage-change costs $0.02 per change reported. Runs where nothing changed cost you nothing.

How it works

  • First run = baseline. The first run of a watch stores a snapshot and doesn't charge for it. The only exception is listings FDA first posted in the last first_run_new_days days (default 7), which are reported as new so run one isn't empty.
  • Every later run reports only what changed since the last one. The Actor compares substantive fields: status, availability, shortage reason, notes, discontinued date, resolved note and status-change date. FDA's routine reverifications are not changes. They bump the "updated" date without changing anything, and you are never charged for them.
  • Nothing is lost or charged twice. A change cut off by your max charge or the per-run limit stays pending and is reported next run, exactly once.
  • Feed-gap guard. If 25 or more watched records (and over 20% of them) vanish at once, the run stops without charging and keeps the snapshot. That pattern is almost always an upstream gap, not news.
  • Changing the status or change-type filters doesn't reset your baseline. Changing keywords, categories or NDCs starts a new watch, and so does a new state_key.

Input

{"keywords": ["cisplatin", "carboplatin"], "therapeutic_categories": ["Oncology"],
"change_types": ["new", "status_changed", "removed"]}

Example output (one dataset item per change)

{"change_type": "new", "changed_fields": [], "previous_status": null,
"previous_values": {}, "generic_name": "Insulin Lispro Injection",
"brand_name": "INSULIN LISPRO JUNIOR KWIKPEN", "company_name": "Eli Lilly and Co.",
"package_ndc": "0002-7752-05",
"presentation": "Insulin Lispro Junior KwikPen, Injection, 100 [iU]/1 mL (NDC 0002-7752-05)",
"dosage_form": "Injection", "therapeutic_category": "Endocrinology/Metabolism",
"status": "To Be Discontinued", "availability": null, "shortage_reason": null,
"related_info": "A business decision was made to discontinue manufacture of the drug. Distribution projected to end June 2027. …",
"discontinued_date": "2026-09-01", "resolved_note": null, "change_date": null,
"initial_posting_date": "2026-09-01", "update_date": "2026-09-01",
"update_type": "New", "related_info_link": null,
"record_key": "0002-7752-05|discontinuation", "feed_last_updated": "2026-09-23"}

A status change looks like this (trimmed):

{"change_type": "status_changed", "changed_fields": ["status", "resolved_note"],
"previous_status": "Current",
"previous_values": {"status": "Current", "resolved_note": null},
"generic_name": "Rifapentine Tablet, Film Coated", "status": "Resolved",
"resolved_note": "Available", "change_date": "2026-08-06"}

Output fields

One dataset item per change. Every field is always present (empty or null when the source has no value). Defined in .actor/dataset_schema.json. Dates are YYYY-MM-DD.

FieldTypeDescription
change_typestringnew, status_changed, updated or removed
changed_fieldsarrayTracked fields that changed (status_changed / updated only)
previous_statusstringStatus before this change (null for new)
previous_valuesobjectOld value of each changed field
generic_namestringGeneric name and dosage form as FDA lists it
brand_namestringBrand name(s) from openFDA label data, '; '-joined
company_namestringCompany reporting the shortage/discontinuation
package_ndcstringPackage NDC
presentationstringPresentation (product, strength, package; max 500 chars)
dosage_formstringDosage form
therapeutic_categorystringFDA therapeutic categories, '; '-joined
statusstringCurrent, To Be Discontinued or Resolved (last known, for removed)
availabilitystringAvailability as FDA lists it (e.g. Available, Limited Availability, Unavailable)
shortage_reasonstringReason for the shortage as reported
related_infostringCompany/FDA notes (max 1000 chars)
discontinued_datestringDiscontinuation date, YYYY-MM-DD
resolved_notestringResolution note (resolved entries)
change_datestringFDA status change date, YYYY-MM-DD
initial_posting_datestringFirst posted by FDA, YYYY-MM-DD
update_datestringLast FDA update or reverification, YYYY-MM-DD
update_typestringFDA's last update type: New, Revised or Reverified
related_info_linkstringLink to the FDA Drug Shortages page for the ingredient
record_keystringStable id: package NDC | list (shortage or discontinuation)
feed_last_updatedstringopenFDA dataset last_updated date at run time

removed means FDA took the listing off the feed. Most resolved shortages leave this way rather than switching to "Resolved", so treat removed as "no longer listed", not as a confirmed resolution.

Runs stop cleanly at your max-charge limit: nothing is pushed past what you agreed to pay for.

The watch snapshot lives in a named key-value store in your account, fda-drug-shortage-monitor-state.

Source: the openFDA drug shortages API (public, CC0, updated daily). It mirrors FDA's Drug Shortages database. On 2026-09-23 the ingredient lists matched FDA's own page exactly. Not affiliated with or endorsed by FDA. openFDA says: "Do not rely on openFDA to make decisions regarding medical care." Run it on a daily schedule for a standing watch. Pair it with FDA Recall Monitor for recalls in the same categories.