FDA Drug Shortage API avatar

FDA Drug Shortage API

Pricing

$0.01 / 1,000 drug shortages

Go to Apify Store
FDA Drug Shortage API

FDA Drug Shortage API

Search official FDA/openFDA drug shortage records by status, drug or ingredient, company, category, or date. Get structured records with availability, identifiers, dates, source links, and feed details for research and programmatic workflows.

Pricing

$0.01 / 1,000 drug shortages

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

💊 Find FDA drug shortage records by status

Drug Shortage gives hospital pharmacy teams, procurement analysts, healthcare researchers, and developers structured records from the official FDA/openFDA drug shortages feed. Filter by status, drug or ingredient, manufacturer or company, therapeutic category, and source date, then use availability, identifiers, dates, source links, and feed details in your workflow.

🧾 FDA shortage records you can review

Each matching source record is saved as one dataset row. Rows can include the shortage status, drug names, brands, active substances, routes, therapeutic categories, pharmacologic classes, company and manufacturer details, product presentation, availability, identifiers, dates, source links, contact details, and retrieval provenance.

If the same source record matches more than one submitted drug term, the Actor keeps the first eligible match and does not rewrite that row with later matches. Use feedInfo and each row's provenance fields to check source freshness, fetch status, and completeness. runSummary gives counts by therapeutic category and dosage form, along with feed information.

  1. Choose a shortage status.
  2. Add optional drug, manufacturer, company, or therapeutic-category filters.
  3. Choose initial-posting or update for the date window, then add an optional start and end date.
  4. Start the Actor and open the dataset, total count, feed information, or run summary.

The public FDA/openFDA feed does not need a buyer-supplied API key. Leave optional scope filters empty to return all available matching results until the source is exhausted.

⚙️ Input

Input fields

FieldTypeWhat it does
statusstring (required)Chooses current, resolved, planned-discontinuation, or all.
drugTermsarray of stringsAdds one or more drug or ingredient terms. Leave empty to return all available records in the selected status until the source is exhausted.
manufacturerTermsarray of stringsFilters by manufacturer or company names. Leave empty to return all available records in the selected status until the source is exhausted.
therapeuticCategoriesarray of stringsFilters by therapeutic categories. Leave empty to return all available records in the selected status until the source is exhausted.
dateFieldstringChooses initial-posting or update as the source date used by the date window.
dateFromstring (YYYY-MM-DD)Includes the start date in the window. Leave it empty for no lower date bound.
dateTostring (YYYY-MM-DD)Includes the end date in the window. Leave it empty for no upper date bound.

There is no result-count limit in this input schema. When a filter is left empty, the run keeps all available matching results until the source is exhausted. Leave both date fields empty to skip date filtering.

Default input example

The input below is copied from a successful current-beta default-input run:

{
"status": "current",
"drugTerms": [
"lidocaine"
],
"dateField": "initial-posting"
}

🧾 Output

Run links

FieldTypeWhat it does
datasetUrlstring (URL)Links to the drug shortage records in the default dataset.
totalResultsstringShows the number of drug shortage records in the run.
feedInfostring (URL)Links to freshness, fetch status, and completeness details for the FDA shortage feed.
runSummarystring (URL)Links to counts grouped by therapeutic category and dosage form, plus feed information.

Dataset rows

The dataset schema requires shortageStatus, drugName, and provenance. Other fields may be absent when the source does not provide them.

FieldTypeWhat it does
shortageStatusstringShows the shortage status reported by FDA/openFDA.
availabilityobjectHolds source availability details.
availability.statusstringShows the source availability status.
availability.detailsstringAdds extra availability details from the source.
drugNamestringShows the drug name in the official shortage record.
genericNamestringShows the generic drug name when available.
brandNamesarray of stringsLists brand names linked to the drug.
activeSubstancesarray of stringsLists active substances linked to the drug.
routesarray of stringsLists routes of administration linked to the drug.
therapeuticCategoriesarray of stringsLists therapeutic categories linked to the drug.
pharmacologicClassesarray of stringsLists pharmacologic classes linked to the drug.
companyNamestringShows the company named in the shortage record.
manufacturerNamestringShows the manufacturer named in the shortage record.
dosageFormstringShows the dosage form for the drug.
strengthstringShows the drug strength from the source record.
presentationstringShows the product presentation from the source record.
packageDescriptionstringShows the package description from the source record.
identifiersobjectHolds package, product, and regulatory identifiers.
identifiers.packageNdcstringShows the package National Drug Code.
identifiers.productNdcstringShows the product National Drug Code.
identifiers.applicationNumberstringShows the FDA application number when available.
identifiers.productIdstringShows the source product identifier used to match records.
identifiers.rxcuistringShows the RxNorm Concept Unique Identifier when available.
identifiers.uniistringShows the FDA Unique Ingredient Identifier when available.
identifiers.splIdstringShows the Structured Product Label identifier when available.
identifiers.splSetIdstringShows the Structured Product Label set ID when available.
datesobjectHolds dates reported in the shortage record.
dates.initialPostingDatestring (date)Shows when the shortage record was first posted.
dates.updateDatestring (date)Shows when the shortage record was last updated.
dates.estimatedResupplyDatestring (date)Shows the estimated resupply date when available.
dates.resolvedDatestring (date)Shows when the shortage was resolved when available.
dates.discontinuedDatestring (date)Shows when the product was discontinued when available.
sourceobjectHolds official source links and contact details.
source.sourceNamestringNames the source for the row.
source.recordUrlstring (URL)Links to the source record.
source.relatedLinksarray of objectsLists other useful links from the source record.
source.relatedLinks[].labelstringGives the name of a related source link.
source.relatedLinks[].urlstring (URL)Gives the URL of a related source link.
source.contactobjectHolds contact details supplied by the source.
source.contact.namestringGives the source contact name when available.
source.contact.emailstring (email)Gives the source contact email when available.
source.contact.phonestringGives the source contact phone when available.
source.contact.urlstring (URL)Links to the source contact when available.
provenanceobjectHolds freshness and completeness details for the source row.
provenance.sourceUpdatedAtstring (date-time)Shows when the source feed was last updated.
provenance.retrievedAtstring (date-time)Shows when this row was retrieved.
provenance.fetchStatusstringShows the result of fetching the source data.
provenance.isCompletebooleanSays whether the source data for the row is complete.
comparisonobjectHolds changes found when this row is compared with an earlier run.
comparison.changeTypestringSays whether the row is new, changed, or unchanged.
comparison.changedFieldsarray of stringsLists fields that changed since the earlier run.

Genuine current-beta row

This is a full row from the successful current-beta default-input run for current records matching lidocaine. Optional fields not returned in this row remain documented in the table above.

{
"shortageStatus": "Current",
"drugName": "Lidocaine Hydrochloride Injection",
"genericName": "Lidocaine Hydrochloride Injection",
"brandNames": [
"LIDOCAINE HYDROCHLORIDE"
],
"activeSubstances": [
"LIDOCAINE HYDROCHLORIDE"
],
"routes": [
"RETROBULBAR",
"TOPICAL"
],
"therapeuticCategories": [
"Anesthesia",
"Pediatric"
],
"pharmacologicClasses": [],
"companyName": "Hospira, Inc., a Pfizer Company",
"manufacturerName": "Hospira, Inc.",
"dosageForm": "Injection",
"strength": "200 mg/5 mL (4%; 40 mg/mL)",
"presentation": "Lidocaine Hydrochloride Preservative Free, Injection, 200 mg/5 mL (4%; 40 mg/mL) (NDC 0409-4283-01)",
"packageDescription": "Lidocaine Hydrochloride Preservative Free, Injection, 200 mg/5 mL (4%; 40 mg/mL) (NDC 0409-4283-01)",
"availability": {
"status": "Available"
},
"identifiers": {
"packageNdc": "0409-4283-01",
"productNdc": "0409-4283",
"applicationNumber": "ANDA088295",
"rxcui": "1010844",
"unii": "V13007Z41A",
"splId": "3681d241-f269-4d2d-b614-f87fc30aeecb",
"splSetId": "89a4bd73-89f4-4fd7-2c9f-921e1da8f96b"
},
"dates": {
"initialPostingDate": "2012-02-22",
"updateDate": "2026-07-23"
},
"source": {
"sourceName": "FDA/openFDA Drug Shortages",
"recordUrl": "https://api.fda.gov/drug/shortages.json?limit=1000&skip=0&search=status%3A%22Current%22+AND+%28generic_name%3A%22lidocaine%22+OR+openfda.generic_name%3A%22lidocaine%22+OR+openfda.brand_name%3A%22lidocaine%22+OR+openfda.substance_name%3A%22lidocaine%22%29",
"contact": {
"phone": "844-646-4398"
}
},
"provenance": {
"sourceUpdatedAt": "2026-08-04T00:00:00.000Z",
"retrievedAt": "2026-08-04T23:00:56.661Z",
"fetchStatus": "ok",
"isComplete": true
},
"comparison": {
"changeType": "unchanged",
"changedFields": []
}
}

💳 Pricing

Pricing event

This Actor charges $0.00001 for each matching drug shortage saved to your dataset. The event applies only when a matching shortage is saved; a run with no saved matching shortage does not create this event.

🔌 Integrations

Open the dataset and run links in Apify Console, read them through the Apify API, or use dataset exports and schedules in your workflow.

❓ FAQ

Which FDA source does this use?

The Actor reads official FDA/openFDA drug shortage records. It is not the FDA and does not replace the FDA's own database.

Can I return current, resolved, and planned-discontinuation records?

Yes. Set status to current, resolved, planned-discontinuation, or all. The all choice includes every status exposed by this input.

What happens when I leave an optional filter empty?

The run keeps all available matches for the selected status and other choices until the source is exhausted. Leave both date fields empty to skip date filtering.

Can I use more than one drug term?

Yes. Add one list of drug or ingredient terms for the search scope. If one source record matches more than one submitted term, the first eligible match is saved and later matches are ignored; the saved row is not rewritten with later submitted values.

Does this Actor give medical advice or replacement recommendations?

No. It returns source data for research and programmatic workflows. It does not give clinical interpretation, medical advice, substitute recommendations, severity scores, or treatment guidance.

How can I check whether the source data is complete?

Open feedInfo for feed freshness, fetch status, and completeness. Each row also includes provenance.sourceUpdatedAt, provenance.retrievedAt, provenance.fetchStatus, and provenance.isComplete when the source provides them.

Do I need an FDA API key or login?

No. The Actor reads public FDA/openFDA data without buyer-supplied credentials.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré