FDA Drug Approvals Scraper avatar

FDA Drug Approvals Scraper

Pricing

from $8.29 / 1,000 item extracteds

Go to Apify Store
FDA Drug Approvals Scraper

FDA Drug Approvals Scraper

Search official Drugs@FDA approval records and export applications, products, sponsors, ingredients, approval actions, and label links.

Pricing

from $8.29 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Search official Drugs@FDA records and export application, product, sponsor, ingredient, strength, dosage-form, route, approval-action, and FDA document data.

FDA Drug Approvals Scraper turns the structured openFDA Drugs@FDA dataset into analysis-ready records. Look up a drug or exact NDA, ANDA, or BLA application; filter approval actions by date; and send repeatable results to a spreadsheet, database, webhook, or compliance workflow.

The Actor uses the official anonymous FDA API. It does not need a login, browser, or proxy.

What can you do with FDA drug approvals data?

  • Research approved products for a brand, generic name, or active ingredient.
  • Look up one or many FDA application numbers.
  • Compare products, sponsors, strengths, dosage forms, and routes.
  • Review approved original and supplemental submissions.
  • Collect FDA approval letters, labels, and review-document links.
  • Schedule a date-window query and compare datasets between runs.
  • Feed regulatory intelligence, portfolio research, or market analysis pipelines.

Each dataset item represents one product under one application. If an application has no product object, the Actor emits an application-level record instead.

Who is this Actor for?

Regulatory affairs teams can build repeatable application and labeling reviews.

Pharmaceutical market researchers can compare sponsor portfolios and approved product presentations.

Life-sciences data teams can normalize official records before loading them into a warehouse or BI tool.

Due-diligence analysts can retrieve the approval history and source documents behind a product.

Developers can use a stable input and output contract instead of implementing openFDA pagination, retries, product expansion, and normalization themselves.

Why use this FDA drug approvals scraper?

  • Official source: records come from the FDA-hosted openFDA Drugs@FDA endpoint.
  • Product-level output: applications are expanded into separate, useful product rows.
  • Approval history included: approved actions and linked documents are normalized inside each row.
  • Multiple lookup modes: broad text, field-specific search, exact application numbers, and action-date windows.
  • Deduplicated export: repeated matches across queries are saved only once per application and product.
  • Automation ready: runs work through Apify Console, API, schedules, webhooks, and MCP.
  • Low overhead: direct JSON requests use 256 MB memory and no paid proxy traffic.

This Actor focuses on approval applications and products. For current availability problems, use FDA Drug Shortages Scraper, which returns shortage status rather than approval history.

What data does the Actor extract?

FieldMeaning
recordTypeproduct or fallback application record
applicationNumberOfficial NDA, ANDA, or BLA application identifier
sponsorNameSponsor reported in Drugs@FDA
productNumberProduct number within the application
brandNameProduct brand name, when available
genericNamesGeneric names reported by openFDA
activeIngredientsIngredient names and strengths
dosageFormFDA dosage form
routeAdministration route
strengthCombined display value for ingredient strengths
marketingStatusMarketing status reported for the product
referenceDrugWhether FDA marks the product as a reference drug
referenceStandardWhether FDA marks it as a reference standard
approvalDateEarliest included approved action date
latestActionDateLatest included approved action date
submissionsNormalized original/supplemental approval actions
labelDocumentsFDA documents classified as labels
applicationDocumentsAll linked FDA letters, labels, reviews, and other documents
productNdcsProduct NDC values mapped by openFDA
sourceUrlDrugs@FDA application overview page
apiUrlExact official API request used
searchQueryQuery or date window that found the row
retrievedAtUTC retrieval timestamp

FDA fields can legitimately be missing. Nullable output values remain null, while list fields are empty arrays.

Input parameters

queries

A list of drug names, ingredients, sponsors, application numbers, or NDC values. The Actor searches each value independently and deduplicates output.

applicationNumbers

Exact application identifiers such as NDA020267 or ANDA083022. These always use application-number lookup, regardless of searchField.

searchField

Choose how values in queries are interpreted:

  • any — openFDA full-text search;
  • brandName — brand names;
  • genericName — generic names;
  • activeIngredient — product active ingredients;
  • applicationNumber — application identifiers;
  • sponsorName — sponsors;
  • productNdc — product NDCs.

approvalDateFrom and approvalDateTo

Optional inclusive approval-action dates in YYYY-MM-DD format. You can submit a date window without a text query to monitor all matching actions.

approvedOnly

Defaults to true. When enabled, only submissions with official FDA status AP are included.

includeSubmissions

Defaults to true. Disable it for smaller records if you only need product identity and document arrays.

maxItems

Maximum product/application records saved across all queries. The range is 1–10,000 and the default is 100.

Getting started

  1. Open the Actor input in Apify Console.
  2. Enter one or more search queries, exact application numbers, or an approval date window.
  3. Select a field when you need precise matching.
  4. Keep approvedOnly enabled for approval-focused research.
  5. Choose a useful maxItems limit.
  6. Click Start.
  7. Open the Dataset tab to preview, download, or integrate the results.

A quick first run:

{
"queries": ["ibuprofen"],
"searchField": "activeIngredient",
"approvedOnly": true,
"includeSubmissions": true,
"maxItems": 20
}

Example: exact FDA application lookup

{
"applicationNumbers": ["NDA020267"],
"approvedOnly": true,
"includeSubmissions": true,
"maxItems": 10
}

This returns the Drugs@FDA product under NDA020267, including sponsor, ibuprofen strength, dosage form, route, approved actions, and available FDA document links.

Example: recurring regulatory monitoring

Use a bounded date window in an Apify Schedule:

{
"approvalDateFrom": "2024-01-01",
"approvalDateTo": "2024-12-31",
"approvedOnly": true,
"includeSubmissions": true,
"maxItems": 500
}

Store each run's dataset or connect a webhook to your comparison workflow. The Actor exports source snapshots; it does not itself send change alerts or compare prior runs.

Example output

The shortened record below reflects the Actor's current product-level output:

{
"recordType": "product",
"applicationNumber": "NDA020267",
"sponsorName": "HALEON US HOLDINGS",
"productNumber": "002",
"brandName": "JUNIOR STRENGTH ADVIL",
"genericNames": ["IBUPROFEN"],
"activeIngredients": [{ "name": "IBUPROFEN", "strength": "100MG" }],
"dosageForm": "TABLET",
"route": "ORAL",
"strength": "100MG",
"marketingStatus": "Over-the-counter",
"approvalDate": "1996-12-13",
"latestActionDate": "2017-03-29",
"labelDocuments": [
{
"id": "47861",
"type": "Label",
"date": "2017-04-05",
"url": "https://www.accessdata.fda.gov/drugsatfda_docs/label/2017/020267Orig1s015lbl.pdf"
}
],
"sourceUrl": "https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=020267"
}

The complete row also includes submissions, all application documents, NDCs, request provenance, and retrieval time.

How much does it cost to search FDA drug approval records?

Pay per event pricing has two parts:

  • Start: $0.005 once per run.
  • Item: $0.013824 per saved record on the Bronze plan, with lower per-record rates on higher plans.

At the Bronze rate, 10 records cost about $0.14324, 100 records about $1.38740, and 1,000 records about $13.82900, including the start event. Apify compute is included in these event prices. Failed, duplicate, or rejected source rows are not charged as items.

The Actor emits one item event per saved application-product record. Approval actions and document links nested in that record have no separate charge.

Pagination, limits, and reliability

The Actor requests up to 100 applications per official API page and stops when it reaches maxItems or source exhaustion. Because an application can contain multiple products, a page can produce more than one candidate row; the Actor stops exactly at the requested output limit.

openFDA allows pagination up to a 25,000-record skip boundary. Very broad date-only exports can therefore represent a bounded portion of a larger result set. Split large historical jobs into smaller date windows for more complete coverage.

Transient network errors, HTTP 429 responses, and temporary server errors are retried up to three times with exponential backoff. Invalid input and deterministic API errors fail the run instead of silently returning an empty successful dataset.

A genuine no-match query returns an empty dataset and a successful run.

Search tips

  • Use activeIngredient for precise ingredient portfolios.
  • Use brandName when a common word creates noisy full-text matches.
  • Submit exact application IDs through applicationNumbers.
  • Split large sponsor or date searches into smaller tasks.
  • Keep approval history enabled when label and approval-letter evidence matters.
  • Use dataset field selection when exporting only a compact product table.

Search behavior follows openFDA's indexed Drugs@FDA fields. Product spelling and sponsor naming reflect the source; the Actor does not perform fuzzy entity resolution.

Export and integration workflows

From the Dataset tab, export JSON, JSONL, CSV, Excel, XML, or RSS. Common workflows include:

  1. Load application-product rows into a regulatory data warehouse.
  2. Join applicationNumber to internal product or trial data.
  3. Review newly observed latestActionDate values in a scheduled pipeline.
  4. Download labelDocuments through a separate document-processing workflow.
  5. Send completed-run webhooks to Make, Zapier, Slack, or your own API.

Document URLs are exported as links; this Actor does not download or parse PDF contents.

Run with the Apify API

Replace YOUR_TOKEN with your Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~fda-drugs-approval-records-search/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["ibuprofen"],"searchField":"activeIngredient","maxItems":20}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/fda-drugs-approval-records-search').call({
applicationNumbers: ['NDA020267'],
approvedOnly: true,
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("automation-lab/fda-drugs-approval-records-search").call(run_input={
"approvalDateFrom": "2024-01-01",
"approvalDateTo": "2024-12-31",
"maxItems": 25,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with MCP and AI agents

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/fda-drugs-approval-records-search"

Claude Desktop

Use this HTTP MCP configuration in Claude Desktop:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/fda-drugs-approval-records-search"
}
}
}

Cursor

Add the same mcpServers.apify.url value to Cursor's MCP settings.

VS Code

Add the same HTTP server URL through the VS Code MCP server configuration or command palette.

Example prompts

  • "Look up Drugs@FDA application NDA020267 and summarize its products and latest approved action."
  • "Find up to 50 ibuprofen products and group them by sponsor and dosage form."
  • "Export FDA approval actions from a specified month and return the linked label documents."

Always review source records before using AI-generated regulatory conclusions.

The Actor retrieves public United States government data from openFDA and Drugs@FDA. FDA datasets can contain omissions, delays, corrections, and source-specific terminology. Follow FDA attribution and data-use guidance, and retain sourceUrl/apiUrl when provenance matters.

This tool is for research and automation. It does not provide medical, legal, or regulatory advice and should not be used as the sole basis for treatment, prescribing, investment, or compliance decisions. Verify material conclusions against current FDA source documents.

Do not use the service to overload the source. The Actor uses bounded sequential pagination and retries.

Limitations

  • The output reflects the openFDA Drugs@FDA update cycle, not real-time FDA decisions.
  • Broad free-text search can match multiple indexed fields.
  • Date filters apply to included submission actions, while each output row still represents the associated application product.
  • Very broad queries are bounded by openFDA pagination and the requested maxItems.
  • Some historical applications have incomplete product, NDC, action, or document fields.
  • A label link may be absent even when an approved submission exists.
  • FDA document links are normalized to HTTPS but availability remains controlled by FDA.
  • The Actor does not parse label PDFs, compare runs, send alerts, or make regulatory judgments.

Troubleshooting

The run returned no records. Check spelling, use any, remove a narrow date window, or try an exact application number. A valid no-match lookup intentionally produces an empty dataset.

The API rejected my search. Remove openFDA/Lucene operators from the query. The Actor escapes reserved query characters and is designed for ordinary names and identifiers.

I reached fewer items than expected. Filters can remove actions or duplicate products across queries. Inspect logs and the exact apiUrl, then split very broad date searches into smaller windows.

The run failed after retries. openFDA may be temporarily rate-limited or unavailable. Retry later; a failed run does not emit item charges for unsaved records.

I only need product identity fields. Set includeSubmissions to false; document arrays remain available while the larger submission-history array is omitted.

These products solve different jobs. Choose this Actor when the central entity is a Drugs@FDA application/product and its regulatory actions.

FAQ

Is this the same as an FDA drug shortage tracker?

No. Approval records describe applications, products, and regulatory actions. Shortage records describe availability problems. Use the related shortage Actor for supply monitoring.

Does the Actor require an openFDA API key?

No. It uses the official anonymous endpoint with bounded requests.

Can I search several drugs in one run?

Yes. Add up to 50 values to queries; results are deduplicated across them.

Can I look up NDA, ANDA, and BLA numbers?

Yes. Put exact identifiers in applicationNumbers or select applicationNumber as the search field.

Are approval letters and labels downloaded?

No. The dataset contains official links and document metadata. Use a document downloader or PDF extraction workflow when you need file contents.

Can I monitor changes?

Schedule recurring date-window runs and compare datasets in your own storage or automation. The Actor provides repeatable snapshots but does not maintain cross-run state or send alerts itself.

Is the data suitable for medical decisions?

No. Treat it as research data and verify current facts with FDA source pages and qualified professionals.