FDA Drug Labels Scraper avatar

FDA Drug Labels Scraper

Pricing

from $0.03 / 1,000 fda label records

Go to Apify Store
FDA Drug Labels Scraper

FDA Drug Labels Scraper

Extract FDA SPL drug label records from openFDA with normalized warnings, indications, dosage, interactions, identifiers, and manufacturers.

Pricing

from $0.03 / 1,000 fda label records

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract public FDA Structured Product Labeling (SPL) drug label records from the openFDA Drug Label API. This actor turns FDA JSON into clean dataset rows with label identifiers, brand and generic names, manufacturers, routes, active ingredients, warnings, indications, dosage, adverse reactions, drug interactions, and other sections that regulatory and healthcare teams need for repeatable analysis.

Use it when you need a no-browser, no-login FDA label extractor that can run by brand name, generic name, substance, manufacturer, SPL set ID, or a raw openFDA query.

What does FDA Drug Labels Scraper do?

FDA Drug Labels Scraper queries https://api.fda.gov/drug/label.json and saves one dataset item per FDA drug label record.

It normalizes common SPL label sections so you do not need to parse the raw openFDA response yourself.

It can search broadly across available labels or narrowly retrieve specific SPL set IDs.

It includes raw openFDA identifiers when requested, which helps with downstream joins to NDC, RxNorm, or internal product catalogs.

Who is it for?

  • Pharma regulatory affairs teams monitoring label language.
  • Pharmacovigilance analysts collecting warnings, contraindications, and adverse reactions.
  • Healthcare data vendors enriching product databases with official label text.
  • Compliance teams comparing label updates across manufacturers.
  • SEO and medical content teams building safety, dosage, and interaction pages.
  • Developers who need an API-friendly FDA drug label extractor in Apify workflows.

Why use this actor?

openFDA is public, but the raw Drug Label API returns nested JSON that varies by product.

This actor gives you a stable output shape with common sections mapped into predictable fields.

It also handles pagination, input validation, optional API keys, and Apify dataset export formats.

Because the actor uses the public JSON API directly, it is fast, cheap, and does not require proxies or browser automation.

Data source

The actor uses the official openFDA Drug Label endpoint.

Source endpoint:

https://api.fda.gov/drug/label.json

The data reflects records available through openFDA. Availability, completeness, and field names are controlled by openFDA and FDA source systems.

Data you can extract

FieldDescription
setIdFDA SPL set identifier.
splIdLabel document ID.
effectiveTimeLabel effective date when provided.
brandNamesBrand names from openfda.brand_name.
genericNamesGeneric/nonproprietary names.
substanceNamesActive substances from openFDA.
manufacturerNamesManufacturer or labeler names.
routesAdministration routes such as ORAL or TOPICAL.
activeIngredientActive ingredient label section.
purposePurpose section for OTC labels when available.
indicationsAndUsageIndications and usage section.
boxedWarningBoxed warning section.
warningsWarnings section.
dosageAndAdministrationDosage and administration section.
contraindicationsContraindications section.
adverseReactionsAdverse reactions section.
drugInteractionsDrug interactions section.
sourceUrlReproducible openFDA source query.

How much does it cost to scrape FDA drug labels?

This actor uses pay-per-event pricing.

  • Start event: $0.005 per run.
  • FDA label record event (BRONZE): $0.000041814 per saved label record, with lower per-record prices on higher Apify tiers.

The default input is intentionally modest for a cheap first run. Increase maxItems for production exports.

The platform pricing record is the billing source of truth.

Input options

Raw openFDA search query

Use searchQuery for advanced openFDA syntax.

Example:

{
"searchQuery": "_exists_:openfda.brand_name",
"maxItems": 100
}

Brand names

Use brandNames to match marketed brand names.

Example:

{
"brandNames": ["Advil", "Tylenol"],
"maxItems": 50
}

Generic names

Use genericNames for nonproprietary names such as ibuprofen or atorvastatin.

Substance names

Use substanceNames when you need labels tied to a specific active substance.

Manufacturers

Use manufacturers to filter labels by labeler or manufacturer name.

SPL set IDs

Use splSetIds when you already know the exact FDA SPL set identifiers.

Route

Use route to filter by route, such as ORAL, TOPICAL, or INTRAVENOUS.

Optional openFDA API key

The actor works without a key for normal low-volume runs.

If you have higher throughput needs, add your openFDA API key in the secret apiKey input field.

Example input: broad label export

{
"searchQuery": "_exists_:openfda.brand_name",
"maxItems": 100,
"includeRaw": true
}

Example input: Advil labels

{
"brandNames": ["Advil"],
"maxItems": 25,
"includeRaw": true
}

Example input: manufacturer monitoring

{
"manufacturers": ["Pfizer"],
"route": "ORAL",
"maxItems": 100
}

Example output

{
"setId": "example-set-id",
"splId": "example-document-id",
"effectiveTime": "20240101",
"brandNames": ["ADVIL"],
"genericNames": ["IBUPROFEN"],
"manufacturerNames": ["Example Labeler"],
"routes": ["ORAL"],
"activeIngredient": ["IBUPROFEN 200 mg"],
"warnings": ["Stomach bleeding warning..."],
"dosageAndAdministration": ["Adults and children 12 years and over..."],
"sourceUrl": "https://api.fda.gov/drug/label.json?search=set_id:%22...%22",
"scrapedAt": "2026-07-02T00:00:00.000Z"
}

Tips for best results

Use exact brand, generic, or manufacturer names when you need focused exports.

Use raw openFDA syntax for complex regulatory monitoring queries.

Keep maxItems small while testing query syntax, then scale once the returned records look right.

Use includeRaw when you plan to join records to other FDA or drug reference datasets.

Integrations

You can export the dataset to JSON, CSV, Excel, XML, or RSS from Apify.

Common workflows include:

  • Send new label records to a data warehouse.
  • Compare warnings and indications between manufacturers.
  • Feed label sections into a pharmacovigilance review queue.
  • Enrich product catalogs with official FDA text.
  • Monitor label changes on a schedule with Apify tasks.

API usage: Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/fda-drug-labels-scraper').call({
searchQuery: '_exists_:openfda.brand_name',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

API usage: Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/fda-drug-labels-scraper').call(run_input={
'brandNames': ['Advil'],
'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0])

API usage: cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~fda-drug-labels-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchQuery":"_exists_:openfda.brand_name","maxItems":100}'

MCP integration

Use this actor from Claude Desktop, Claude Code, or any MCP-compatible client through Apify MCP.

MCP tool URL:

https://mcp.apify.com/?tools=automation-lab/fda-drug-labels-scraper

Claude Code setup:

$claude mcp add apify https://mcp.apify.com/?tools=automation-lab/fda-drug-labels-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/fda-drug-labels-scraper"
}
}
}

Example prompts:

  • "Run the FDA Drug Labels Scraper for Advil and summarize boxed warnings."
  • "Export 100 FDA drug label records with brand names and dosage sections."
  • "Find labels from a specific manufacturer and list active ingredients."

Scheduling and monitoring

Create an Apify task with your preferred query and schedule it daily, weekly, or monthly.

For label monitoring, store previous datasets and compare setId, effectiveTime, and section text.

For broad data refreshes, use _exists_:openfda.brand_name with a higher maxItems value.

Limitations

The actor returns what openFDA returns. Some labels do not include every section.

Raw openFDA query syntax errors may produce API errors. Test advanced queries with small maxItems first.

The public API can rate-limit high-volume unauthenticated traffic. Use an openFDA API key for heavier workloads.

Legality and compliance

This actor uses a public FDA API and does not bypass login, paywalls, or technical protections.

You are responsible for how you use, store, and interpret drug label data.

Do not treat extracted text as medical advice. Always verify critical regulatory or clinical decisions against official FDA sources.

Related Automation Lab actors may help with adjacent healthcare and regulatory workflows:

  • https://apify.com/automation-lab/fda-drug-shortages-scraper
  • https://apify.com/automation-lab/openfda-ndc-directory-scraper
  • https://apify.com/automation-lab/health-canada-drug-database-scraper

FAQ

Does this actor require an FDA API key?

No. It works with the public openFDA API without a key for normal runs. Add apiKey only if you need higher rate limits.

Can I scrape by SPL set ID?

Yes. Add one or more values to splSetIds to retrieve specific label families.

Why are some fields empty?

FDA label records vary. Not every SPL label contains boxed warnings, adverse reactions, pediatric use, or every other section.

Can I get raw openFDA identifiers?

Yes. Keep includeRaw enabled to include the raw openfda object.

What should I do if a raw query fails?

Start with one structured filter or a simple _exists_ query, then add clauses gradually. openFDA query syntax is strict.

Troubleshooting

If you get zero records, check spelling, capitalization, and whether your filter is too narrow.

If you get a rate-limit error, reduce run frequency or add an openFDA API key.

If your downstream export has long text fields, use JSON or Excel rather than narrow CSV viewers.

Changelog

  • 0.1.0 Initial private build for FDA Drug Label API extraction.