ParseForge Scrapers

DailyMed FDA Drug Labels Scraper

parseforge/dailymed-fda-labels-scraper

BusinessOtherEducation

Scrapes FDA drug labels from the DailyMed database. Search by drug name, active ingredient, NDC code, or manufacturer, and get structured SPL data for each matching label.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
105
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

DailyMed FDA Drug Labels Scraper

Scrape FDA drug labels from DailyMed by drug name, active ingredient, NDC, or manufacturer, up to a million per run. Each label returns the full structured SPL data, including indications, dosage, warnings, and packaging. No API key. Export to CSV, JSON, Excel, or XML.

DailyMed is the official NIH site for FDA-approved drug labeling, but downloading labels one by one is slow and manual. This Actor searches the public database by brand name, generic name, active ingredient, NDC code, or manufacturer, and returns each matching label as a structured row. It handles the pagination and parsing so you get clean, consistent data for every result.

Who uses it What they scrape DailyMed for
Pharmacovigilance analysts Monitoring label changes for safety signal detection across drug classes.
Pharmacy benefit managers Extracting NDC codes and packaging details for formulary management.
Clinical researchers Gathering structured indications and dosage data for systematic reviews.
Healthcare data engineers Building a local, queryable database of current FDA-approved labeling.

What it does

This Actor collects FDA drug labels from the DailyMed database and returns each one as a flat, structured row with the full SPL label content.

  • ๐Ÿ” Drug name search: Find labels by brand name, generic name, or partial match (e.g. ibuprofen, Lipitor, metformin).
  • ๐Ÿงช Active ingredient filter: Narrow results to a specific substance, such as atorvastatin or lisinopril.
  • ๐Ÿ“ฆ NDC code lookup: Retrieve the exact label for a National Drug Code like 0093-1019-01.
  • ๐Ÿญ Manufacturer filter: Limit results to a specific labeler, such as Pfizer, Mylan, or Teva.
  • โš ๏ธ DEA schedule filter: Restrict to controlled substances by schedule (C1 through C5).
  • ๐Ÿ“‹ Marketing status filter: Filter by FDA application type, including NDA, ANDA, OTC monograph, and unapproved drugs.
  • ๐Ÿ“… Publication date filter: Only collect labels published or updated on or after a given date.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with DailyMed data

๐Ÿ“ˆ Monitor label changes for pharmacovigilance.

A drug safety team runs the Actor weekly with a publishedSince filter to detect new boxed warnings, updated adverse reactions, or revised indications across a portfolio of drugs.

๐Ÿ’Š Build a pharmacy formulary database.

A PBM extracts NDC codes, packaging configurations, and marketing status for every label from a set of manufacturers to populate their internal formulary system.

๐Ÿ”ฌ Gather structured data for clinical research.

A researcher searches by active ingredient to collect indications, dosage forms, and contraindications for all approved products containing a specific substance.

๐Ÿ›๏ธ Support regulatory compliance workflows.

A compliance officer filters by ANDA marketing status and manufacturer to audit generic drug labeling against the reference listed drug.

Why choose this scraper

What you get
No API key Reads the public DailyMed search and label pages directly, no registration or authentication required.
Structured SPL data Returns the full Structured Product Labeling content in a flat, consistent schema.
Flexible search Combine drug name, ingredient, NDC, manufacturer, schedule, and marketing status filters.
Scalable Collect up to a million labels per run, with automatic pagination and error handling.

How it compares

This Actor offers flexible search by drug name, ingredient, NDC, and manufacturer with DEA schedule and marketing status filters, while competitors vary in their filtering and data coverage.

Feature ParseForge DailyMed Drug Label Scraper - FDA SPL, NDC & Labeler Data DailyMed Drug Label Scraper DailyMed Drug Label Scraper (FDA/NLM)
Search by drug name Yes Yes Yes Yes
Search by NDC code Yes Yes Yes Not listed
Filter by active ingredient Yes Not listed Yes Not listed
Filter by manufacturer Yes Yes Not listed Not listed
Filter by DEA schedule Yes Not listed Not listed Not listed
Filter by marketing status Yes Not listed Not listed Not listed
Filter by publication date Yes Not listed Not listed Not listed

Configure the run

Drive the Actor with a drug name, active ingredient, NDC code, or manufacturer, alone or in combination, and filters run as each label is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "drugName": "ibuprofen"
}

A larger pull:

{
  "maxItems": 200,
  "drugName": "ibuprofen"
}

Pricing

Pay-per-result: $0.005 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.50
1,000 results $5.00
10,000 results $50.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the DailyMed FDA Drug Labels Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to DailyMed through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/dailymed-fda-labels-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your search terms are spelled correctly. Try broadening your search by removing optional filters like ingredient, NDC, or manufacturer. A drug name alone should return results if it exists in DailyMed.

Why are some labels missing fields?

Not all labels contain every SPL section. Some older or simpler labels may lack certain sections like boxed warnings or clinical pharmacology. This reflects the actual data submitted by the manufacturer.

The run is taking a long time. Is that normal?

Yes, especially with a high maxItems value. DailyMed's search pages can be slow to paginate. Try reducing maxItems or adding filters to narrow the result set.

I got an error about the publishedSince date format.

The publishedSince field requires the YYYY-MM-DD format exactly. For example, use 2024-01-15, not 1/15/2024 or January 15 2024.

Why does my NDC search return multiple labels?

A single NDC code can appear in multiple label versions or across different SPL document sets. The Actor returns all matching labels. Use additional filters like publishedSince to narrow results.

FAQ

Question Answer
What is DailyMed? DailyMed is the official website of the U.S. National Library of Medicine that provides the most current FDA-approved drug labeling (package inserts) submitted by manufacturers.
Do I need an API key or FDA account? No. This Actor reads the public DailyMed website directly. No registration, API key, or authentication is required.
What data does each label row contain? Each row returns the full Structured Product Labeling (SPL) content, including indications, dosage and administration, contraindications, warnings, adverse reactions, drug interactions, and packaging information.
Can I search by generic drug name? Yes. The drugName field accepts brand names, generic names, or partial matches. Searching for 'metformin' returns all labels with metformin in the name.
How do I filter by active ingredient? Use the ingredient field to specify an active substance like 'atorvastatin calcium'. This filters labels to only those containing that ingredient.
Can I look up a specific NDC code? Yes. Enter the full NDC code (e.g. 0093-1019-01) in the ndc field to retrieve the exact label for that packaged product.
What is the DEA schedule filter for? It restricts results to controlled substances by their schedule classification, from Schedule I through Schedule V. Leave it on 'Any' to include all schedules.
What does the marketing status filter do? It filters labels by their FDA application type, such as New Drug Application (NDA), Abbreviated NDA for generics, OTC monograph, or unapproved drugs.
How do I get only recently updated labels? Set the publishedSince field to a date in YYYY-MM-DD format. The Actor will only return labels published or revised on or after that date.
How many labels can I scrape in one run? You can set maxItems up to 1,000,000 labels per run. The Actor handles pagination automatically.
What output formats are supported? You can export your dataset to CSV, JSON, Excel, or XML directly from the Apify platform.
Is this legal to use? DailyMed is a public U.S. government website. This Actor accesses publicly available data. You are responsible for complying with the site's terms of service for your use case.

Related actors

  • fda-drug-approvals-scraper: Use this to scrape FDA drug approval records, including application numbers, approval dates, and review classifications, instead of the full label text.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. National Library of Medicine. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many drug labels to collect per run. 10
drugName string Search by brand name, generic name, or part of either (e.g. ibuprofen, lipitor, metformin). ibuprofen
ingredient string Filter by an active ingredient substance name. not set
ndc string National Drug Code (e.g. 0093-1019-01). not set
manufacturer string Labeler / manufacturer name (e.g. Pfizer, Mylan, Teva). not set
deaSchedule string (6 options) Controlled substance schedule. not set
marketingStatus string (8 options) Filter by FDA marketing status. not set
publishedSince string Only include labels published or updated on or after this date. not set

Pricing

from $3.75 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.00375 to $0.005

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~dailymed-fda-labels-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run DailyMed FDA Drug Labels Scraper on Apify All scrapers