# FDA Drug Shortages Monitor - openFDA Shortage Status & Updates

Pull current and historical FDA drug shortage records from the official openFDA shortages API. Filter by status, generic name or company. No API key.

Canonical product page: https://mayd-it.com/data-tools/actors/fda-drug-shortages-monitor/
Public Actor: https://apify.com/maydit/fda-drug-shortages-monitor

## Example input

```json
{
  "status": "Current",
  "maxResults": 10,
  "maxRunSeconds": 240
}
```

## Full guide

![Drug shortage records, easy to review — illustrative workflow](https://api.apify.com/v2/key-value-stores/YGxD9JRpduom8Q5Zd/records/fda-drug-shortages-monitor-f91c1d3ec118.png?signature=1wfPvLWpnelq93StYeMkM)

## Drug shortage records, easy to review

Create a structured shortage research table from the official openFDA drug-shortages endpoint. Rows retain published names, status, company, dosage details and update dates.

[Open this Actor in Console](https://console.apify.com/actors/lRg1CQfELNAoEMjSs/input) · [First run](#try-this-actor) · [Results](#result-preview) · [Cost](#usage-and-pricing) · [Full guide](#full-guide)

## Try this Actor

1. **Choose a small scope.** Use the existing **Current** status prefill and maximum of fifty records for an initial sample. Add a drug-name keyword or company filter when you need a narrower result set.
2. **Run and review.** Open the dataset's shortage table and the run's key-value-store `SUMMARY` to distinguish saved results from source failures or limit stops.
3. **Use the results.** Export CSV or JSON for review, keeping published status and update dates with each record. Consult the official source before acting on a shortage record.

**Read this before using the data:** Published shortage status is not a real-time inventory or availability check for a particular pharmacy, location or patient. Source contact fields are not enriched or contacted.

## Result preview

The dataset view highlights these columns:

- **Generic drug name** · `genericName`
- **Published shortage status** · `status`
- **Company** · `companyName`
- **Dosage form** · `dosageForm`
- **Therapeutic category** · `therapeuticCategory`
- **Published update date** · `updateDate`

Use the original source links and the field definitions below when interpreting the results. CSV works well for flat columns; JSON preserves nested values.

## Usage and pricing

Base result rate on the FREE tier: **$2 per 1,000 results**. The [Pricing tab](https://apify.com/maydit/fda-drug-shortages-monitor/pricing) shows your plan's result rate and any Actor Start charge. Set a small result limit for the first run; the requested limit is not a guarantee of that many results.

---

## Full guide

> Pull FDA drug shortage records from the official **openFDA** `/drug/shortages.json` endpoint. No API key.

### What it does

Returns one row per shortage record: generic/proprietary name, company, status, dosage form, therapeutic category, update dates, and related notes.

### Defaults

Empty-ish input applies status **Current** and `maxResults` 50 so Apify's daily test finishes in seconds with non-empty output.

### Limitations

- openFDA keyless rate limits apply (240 req/min, 1k/day per IP without a key).
- Contact phone strings are source fields; this Actor does not enrich or dial them.
- Status vocabulary follows openFDA (`Current`, `To Be Discontinued`, `Resolved`, etc.).

### Result accounting

Only real source records are written to the dataset. `SUMMARY.total` counts saved rows. A dataset spending cap stops further writes and sets `SUMMARY.stoppedOnChargeLimit` and `SUMMARY.incomplete`. Source failures and time limits are reported in the summary; they do not generate substitute result rows.

## Help with your run

Open the **Issues** tab on this Actor with the run URL, the input field that caused trouble and what you expected to receive. Remove API keys and private information before posting.

[Explore more Mayd-It Actors](https://apify.com/maydit)

## Understand your run

Open **Run report** in the run’s Output tab for saved-record counts, reported source issues and limits, and suggested next steps. Use **CSV export** to take the saved results into a spreadsheet. The existing JSON results and detailed machine-readable summary remain available.

The report reflects this run’s recorded coverage. A successful run or a saved result does not establish that every possible source record was collected.
