OTHERAI

FDA PMA Medical Device Approval Search

Search the FDA's database of **55,000+ Premarket Approval (PMA) records** for Class III medical devices — the most stringent pathway for high-risk devices like implantable defibrillators, heart valves, hip implants, and cochlear implants. Filter by device name, company, product code, advisory committee, PMA number, decision code, supplement type, or date range. Each result includes computed days-to-decision timelines not available in the raw FDA data.

Try on Apify Store
$0.03per event
0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.03
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

result-returneds
Estimated cost:$3.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
result-returnedCharged per result returned. Includes data transformation and structured output.$0.03

Example: 100 events = $3.00 · 1,000 events = $30.00

Documentation

Search the FDA's database of 55,000+ Premarket Approval (PMA) records for Class III medical devices — the most stringent pathway for high-risk devices like implantable defibrillators, heart valves, hip implants, and cochlear implants. Filter by device name, company, product code, advisory committee, PMA number, decision code, supplement type, or date range. Each result includes computed days-to-decision timelines not available in the raw FDA data.

No API key required. Just enter a device name like defibrillator or a company like Medtronic and get structured approval data in seconds.

Why Use FDA PMA Medical Device Approval Search?

The PMA pathway is reserved for Class III medical devices that "support or sustain human life, are of substantial importance in preventing impairment of human health, or present a potential unreasonable risk of illness or injury." Finding PMA data means navigating the FDA's AccessData interface or constructing complex openFDA queries. This actor handles query construction, pagination (up to 1,000 results), date normalization, decision code mapping, address merging, and computation of days-to-decision — giving you clean, structured JSON ready for analysis pipelines.

Features

  • Device name search — find approvals by trade name or generic name (e.g., "defibrillator", "hip implant", "heart valve", "cochlear implant")
  • Company lookup — search by applicant company (e.g., "Medtronic", "Boston Scientific", "Edwards Lifesciences", "Stryker")
  • Product code filtering — use FDA's three-letter classification codes (e.g., "NKE" for pacemakers, "DTB" for hip prostheses)
  • PMA number lookup — retrieve all supplements/amendments for a specific PMA (e.g., "P070008")
  • Advisory committee filter — narrow by FDA specialty area (20 committees from Anesthesiology to Toxicology)
  • Decision code filter — filter by outcome: Approved, 30-Day Notice Accepted, Approvable (Letter), Approved (Withdrawn)
  • Supplement type filter — Original PMA, Panel Track, Real-Time, 180-Day, 30-Day Notice, or Special
  • Date range filtering — search by decision date range in YYYY-MM-DD format
  • Days-to-decision computation — calculates elapsed time from FDA receipt to decision, a metric not in the raw API
  • Approval order statement — includes the FDA's official approval order statement describing what was approved
  • Summary statistics — automatic decision breakdown, committee distribution, supplement type tallies, and avg/min/max review timelines
  • Retry with backoff — built-in exponential backoff for API rate limits and transient errors

How to Use

  1. Enter search criteria — provide at least one filter: device name, applicant, product code, PMA number, advisory committee, decision code, supplement type, or date range.

  2. Set the result limit — choose how many records to return (1–1,000). The default is 100. The openFDA API caps results at 1,000 per query.

  3. Run and download — click "Start" and wait for the run to complete (typically 5–30 seconds). Download the structured JSON dataset.

  4. Review summary stats — check the run log for automatic summary statistics including avg days-to-decision, decision breakdown, and supplement type distribution.

Input Parameters

ParameterTypeRequiredDefaultDescription
deviceNameStringNo*Device name search — searches both trade name and generic name
applicantStringNo*Company/applicant name (e.g., "Medtronic", "Edwards Lifesciences")
productCodeStringNo*FDA three-letter product code (e.g., "NKE", "DTB")
pmaNumberStringNo*Specific PMA number (e.g., "P070008") — returns all supplements
advisoryCommitteeSelectNoAllFDA advisory committee code (20 options)
decisionCodeSelectNoAllApproval decision: Approved, 30-Day Notice, etc.
supplementTypeSelectNoAllOriginal PMA, Panel Track, Real-Time, 180-Day, 30-Day Notice, Special
decisionDateFromStringNoStart of decision date range (YYYY-MM-DD)
decisionDateToStringNoEnd of decision date range (YYYY-MM-DD)
maxResultsIntegerNo100Maximum records to return (1–1,000)

*At least one search parameter is required.

Input Examples

Find all pacemaker PMA approvals:

{
    "deviceName": "pacemaker",
    "maxResults": 100
}

Look up all supplements for a specific PMA:

{
    "pmaNumber": "P070008",
    "maxResults": 200
}

Medtronic cardiovascular approvals in 2024:

{
    "applicant": "Medtronic",
    "advisoryCommittee": "CV",
    "decisionDateFrom": "2024-01-01",
    "decisionDateTo": "2024-12-31",
    "maxResults": 500
}

All orthopedic device approvals since 2023:

{
    "advisoryCommittee": "OR",
    "decisionDateFrom": "2023-01-01",
    "maxResults": 1000
}

Original PMA approvals only (not supplements):

{
    "supplementType": "Original",
    "decisionDateFrom": "2020-01-01",
    "maxResults": 500
}

Approved (Withdrawn) PMA records:

{
    "decisionCode": "APWD",
    "maxResults": 100
}

Hip implant approvals by product code:

{
    "productCode": "DTB",
    "decisionDateFrom": "2023-01-01",
    "maxResults": 200
}

Input Tips

  • Use pmaNumber to retrieve the full regulatory history of a specific PMA, including all supplements and amendments.
  • Combine advisoryCommittee + date range to analyze approval trends in a specialty area over time.
  • Set supplementType to "Original" to find only initial PMA approvals (excludes the many supplements that make up the bulk of records).
  • decisionCode: "APWD" finds approvals that were later withdrawn — useful for identifying devices pulled from the market.
  • For large result sets, partition your search using date ranges to stay within the 1,000 result limit.
  • Device name searches match both trade_name and generic_name fields.

Output

Each PMA record includes:

{
    "pmaNumber": "P070008",
    "supplementNumber": "S070",
    "applicant": "Biotronik, Inc.",
    "address": "6024 Jean Rd.",
    "city": "Lake Oswego",
    "state": "OR",
    "zipCode": "97035",
    "genericName": "Pulse generator, pacemaker, implantable, with cardiac resynchronization (CRT-P)",
    "tradeName": "COROX OTW 75 BP & 85 BP; COROX OTW-L 75 BP & 85 BP",
    "productCode": "NKE",
    "advisoryCommittee": "CV",
    "advisoryCommitteeDescription": "Cardiovascular",
    "supplementType": "Normal 180 Day Track",
    "supplementReason": "Change Design/Components/Specifications/Material",
    "expeditedReview": false,
    "dateReceived": "2015-12-23",
    "decisionDate": "2016-05-02",
    "daysToDecision": 131,
    "docketNumber": "",
    "decisionCode": "APPR",
    "decisionDescription": "Approved",
    "aoStatement": "Approval for full body scanning of the ProMRI CRT-D System.",
    "deviceClass": "3",
    "regulationNumber": null,
    "openfdaDeviceName": "Pulse Generator, Pacemaker, Implantable, With Cardiac Resynchronization (Crt-P)",
    "openfdaSpecialty": "Unknown"
}

Output Fields

FieldTypeDescription
pmaNumberStringPMA application number (e.g., "P070008")
supplementNumberStringSupplement/amendment number (e.g., "S070", "" for originals)
applicantStringCompany that submitted the PMA
addressStringApplicant street address
cityStringApplicant city
stateStringApplicant state (US two-letter code)
zipCodeStringApplicant ZIP code
genericNameStringGeneric device name
tradeNameStringCommercial trade/brand name
productCodeStringFDA three-letter product classification code
advisoryCommitteeStringTwo-letter advisory committee code
advisoryCommitteeDescriptionStringFull name of the advisory committee
supplementTypeStringType of submission (Original, 180-Day, 30-Day Notice, etc.)
supplementReasonStringReason for the supplement (e.g., design change, labeling, manufacturing)
expeditedReviewBooleanWhether the submission received expedited review
dateReceivedStringDate FDA received the submission (YYYY-MM-DD)
decisionDateStringDate of FDA decision (YYYY-MM-DD)
daysToDecisionInteger / nullComputed days from receipt to decision (not in raw API)
docketNumberStringFederal Register docket number
decisionCodeStringFDA decision code (APPR, OK30, APWD, APRL)
decisionDescriptionStringHuman-readable decision (e.g., "Approved", "30-Day Notice Accepted")
aoStatementStringFDA Approval Order statement describing what was approved
deviceClassString / nullFDA device classification (always "3" for PMA devices)
regulationNumberString / nullCFR regulation number
openfdaDeviceNameString / nullStandardized device name from openFDA enrichment
openfdaSpecialtyString / nullMedical specialty description from openFDA

Decision Codes

CodeMeaningCount
APPRApproved28,022
OK3030-Day Notice Accepted26,989
APWDApproved (Withdrawn)393
APRLApprovable (Letter)339

Supplement Types

TypeDescription
OriginalInitial PMA application for a new device
Panel TrackSupplement requiring advisory panel review
Real-Time ProcessExpedited review for minor changes
Normal 180 Day TrackStandard supplement review (180-day timeline)
135 Review Track For 30-Day Notice30-day notice with 135-day review track
30-Day NoticeMinor manufacturing/labeling changes
Special (Immediate Track)Expedited for urgent safety-related changes

Use Cases

  • Medical device companies tracking competitor PMA approvals to identify new market entrants and regulatory strategy shifts
  • Regulatory affairs teams benchmarking FDA review timelines by product code and supplement type to set realistic submission expectations
  • Healthcare investors researching a company's approved device portfolio for due diligence before funding or acquisition decisions
  • Regulatory consultants analyzing PMA approval histories to advise clients on supplement strategies and review track selection
  • Patent attorneys cross-referencing PMA approvals with patent filings to establish prior art and identify licensing opportunities
  • Market research firms mapping the Class III medical device landscape by advisory committee, applicant, and approval date
  • Quality and compliance auditors verifying that marketed Class III devices have valid PMA approvals
  • Academic researchers studying FDA regulatory science — approval timelines, supplement patterns, and market access trends

How to Use the API

Python

import requests
import time

run = requests.post(
    "https://api.apify.com/v2/acts/ryanclinton~fda-pma-approvals/runs",
    params={"token": "YOUR_APIFY_TOKEN"},
    json={
        "applicant": "Medtronic",
        "advisoryCommittee": "CV",
        "decisionDateFrom": "2024-01-01",
        "maxResults": 100
    },
    timeout=30,
).json()

run_id = run["data"]["id"]
while True:
    status = requests.get(
        f"https://api.apify.com/v2/actor-runs/{run_id}",
        params={"token": "YOUR_APIFY_TOKEN"},
        timeout=10,
    ).json()
    if status["data"]["status"] in ("SUCCEEDED", "FAILED", "ABORTED"):
        break
    time.sleep(3)

dataset_id = status["data"]["defaultDatasetId"]
items = requests.get(
    f"https://api.apify.com/v2/datasets/{dataset_id}/items",
    params={"token": "YOUR_APIFY_TOKEN"},
    timeout=30,
).json()

for item in items:
    print(f"{item['pmaNumber']}/{item['supplementNumber']} | {item['tradeName']} | {item['applicant']} | {item['daysToDecision']} days")

JavaScript

const response = await fetch(
    "https://api.apify.com/v2/acts/ryanclinton~fda-pma-approvals/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN",
    {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({
            applicant: "Medtronic",
            advisoryCommittee: "CV",
            decisionDateFrom: "2024-01-01",
            maxResults: 100,
        }),
    }
);

const approvals = await response.json();
approvals.forEach(a =>
    console.log(`${a.pmaNumber}/${a.supplementNumber} | ${a.tradeName} | ${a.daysToDecision} days`)
);

cURL

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~fda-pma-approvals/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "applicant": "Medtronic",
    "advisoryCommittee": "CV",
    "decisionDateFrom": "2024-01-01",
    "maxResults": 100
  }'

How It Works

Input (deviceName, applicant, productCode, pmaNumber, committee, dates, filters)
  |
  v
+--------------------------------------------------+
|  Step 1: Build Search Query                      |
|  Construct openFDA Lucene-style query string     |
|  from input parameters. Device name searches     |
|  both trade_name and generic_name with OR.       |
|  Date ranges converted to YYYYMMDD for API.      |
|  Terms joined with +AND+ conjunction.            |
+--------------------------------------------------+
  |
  v
+--------------------------------------------------+
|  Step 2: Paginated Fetch                         |
|  Fetch up to 100 results per request using       |
|  skip/limit pagination. Continue until           |
|  maxResults reached or no more results.          |
|  Retry with exponential backoff on 429/errors.   |
+--------------------------------------------------+
  |
  v
+--------------------------------------------------+
|  Step 3: Transform & Enrich                      |
|  Normalize field names to camelCase.             |
|  Format dates from YYYYMMDD to YYYY-MM-DD.       |
|  Merge address fields. Convert Y/N to boolean.   |
|  Map decision codes to human-readable names.     |
|  Extract openFDA enrichment (class, regulation). |
+--------------------------------------------------+
  |
  v
+--------------------------------------------------+
|  Step 4: Compute Days to Decision                |
|  Calculate elapsed days between dateReceived     |
|  and decisionDate for each PMA record.           |
|  This metric is NOT in the raw openFDA data.     |
+--------------------------------------------------+
  |
  v
+--------------------------------------------------+
|  Step 5: Summary Statistics                      |
|  Compute avg/min/max daysToDecision.             |
|  Tally decision codes, advisory committees,      |
|  and supplement types. Log to run output.        |
+--------------------------------------------------+
  |
  v
Structured PMA approval records pushed to dataset

Data Sources

SourceAPI EndpointAuth RequiredRecords
FDA openFDA PMAhttps://api.fda.gov/device/pma.jsonNo55K+

Advisory Committee Reference

CodeSpecialtyCodeSpecialty
ANAnesthesiologyMIMicrobiology
CHClinical ChemistryNENeurology
CVCardiovascularOBObstetrics/Gynecology
DEDentalOPOphthalmic
ENEar, Nose & ThroatOROrthopedic
GUGastroenterology/UrologyPAPathology
HOGeneral HospitalPMPhysical Medicine
HEHematologyRARadiology
IMImmunologySUGeneral/Plastic Surgery
TXClinical Toxicology

Common Product Codes (Class III)

CodeDevice CategoryCodeDevice Category
NKEPacemakers (CRT-P)DTBHip Prostheses
LWSDefibrillators (ICD)NIQKnee Prostheses
DXYHeart ValvesMGBIntraocular Lenses
QBJTAVR SystemsLZGCochlear Implants
MAFCoronary StentsLYZNeurostimulators

How Much Does It Cost?

ScenarioResultsEst. TimeEst. Cost
Single PMA number lookup1–2003–10 sec< $0.01
Company search (100 results)10010 sec< $0.01
Full committee + year (1,000 results)1,00030 sec~$0.02

The actor uses 256 MB memory and makes lightweight API calls with no browser rendering. The Apify free tier covers thousands of runs per month.

Tips

  • Use product codes for precision — device name searches return broad matches. Product codes target exact categories. Look up codes in the FDA Product Classification Database.
  • Filter to "Original" for new device approvals — most PMA records are supplements to existing approvals. Set supplementType to "Original" to find only initial device approvals.
  • PMA number returns full history — searching by pmaNumber returns the original approval plus all subsequent supplements, giving you the complete regulatory lifecycle of a device.
  • Check daysToDecision for timeline planning — if your company is preparing a PMA submission, filter by your product code and check average review times across supplement types.
  • APWD = withdrawn approvals — search decisionCode: "APWD" to find devices that were approved but later had their approval withdrawn — critical intelligence for safety and competitive analysis.
  • Partition large searches by date — the openFDA API caps at 1,000 results per query. Use yearly date ranges for comprehensive data.
  • Cross-reference with MAUDE data — use the pmaNumber from MAUDE adverse event reports to look up the original approval record.

Limitations

  • 1,000 result cap — the openFDA API limits results to 1,000 per query. Use date range partitioning for larger datasets.
  • Supplements dominate results — most records are supplements (30-Day Notices, 180-Day supplements), not original PMAs. Use the supplementType filter to narrow results.
  • No clinical trial data — PMA records include the approval decision and supplement details, but not the underlying clinical trial data submitted to the FDA.
  • No predicate/comparison device — unlike 510(k), PMA records do not reference predicate devices.
  • openFDA enrichment gapsdeviceClass, regulationNumber, and openfdaDeviceName come from the openFDA enrichment layer and may be null for some records.
  • Supplement type search is exact match — the supplement type must match the exact string in the database. Use the provided select options for best results.
  • Rate limiting — the openFDA API enforces rate limits. The actor handles this with exponential backoff, but rapid sequential runs may experience delays.

Responsible Use

  • All data is public domain — FDA PMA data is published by the US government and is freely available without restrictions.
  • Respect openFDA rate limits — the actor includes built-in retry with backoff. Avoid launching dozens of concurrent runs.
  • Use for legitimate purposes — designed for regulatory intelligence, market research, due diligence, competitive analysis, and academic research.
  • Verify critical decisions — for regulatory submissions, always verify PMA data against the official FDA PMA Database.

FAQ

Is an API key required? No. The openFDA API is free and requires no authentication.

How current is the data? The openFDA database is updated regularly. New PMA decisions typically appear within days to weeks.

What is the difference between PMA and 510(k)? PMA is the most stringent FDA pathway, required for Class III (highest-risk) medical devices. It requires clinical trial evidence. 510(k) is for lower-risk devices that can demonstrate substantial equivalence to a predicate device. PMAs take longer and cost more but are required for devices like pacemakers, heart valves, and hip implants.

Why do most results show a supplement number? After a PMA is originally approved, any change to the device (design, labeling, manufacturing, materials) requires a PMA supplement. A single PMA can accumulate hundreds of supplements over its lifetime. Use supplementType: "Original" to find only initial approvals.

What does the aoStatement field contain? The Approval Order Statement is the FDA's official description of what was approved in that specific submission. For supplements, it describes the specific change (e.g., "Approval for full body scanning of the ProMRI CRT-D System").

How is daysToDecision calculated? It is the number of calendar days between dateReceived (when FDA received the submission) and decisionDate (when FDA issued its decision). This is computed by the actor — not available in the raw API.

Can I find which devices had their approvals withdrawn? Yes. Set decisionCode to "APWD" (Approved, Withdrawn) to find PMA approvals that were later withdrawn from the market.

How far back does the data go? The PMA database contains records from the 1970s to present — the entire history of the PMA program since it was established by the Medical Device Amendments of 1976.

Integrations

  • Apify API — trigger runs programmatically for regulatory intelligence pipelines
  • Zapier — automatically search for new PMA approvals when a competitor is added to your list
  • Make (Integromat) — build workflows that monitor new approvals in your advisory committee weekly
  • Google Sheets — export PMA data directly for regulatory strategy analysis and timeline benchmarking
  • Webhooks — receive approval data as soon as the run completes
  • Scheduled Runs — run weekly or monthly to track new PMA approvals in your product category

Related Actors

ActorWhat it doesUse with FDA PMA
FDA 510(k) Device Clearance SearchSearch 174K+ 510(k) clearancesCompare 510(k) vs PMA pathways for similar devices
FDA Device Adverse Event Search (MAUDE)Search 24M+ adverse eventsCross-reference PMA devices with their safety history
FDA Medical Device Recall SearchSearch FDA device recallsFind recalls for PMA-approved devices
openFDA Drug Event MonitorFDA drug adverse eventsCompanion for combination drug/device products
Clinical Trial TrackerClinicalTrials.gov searchFind clinical trials supporting PMA submissions
SEC EDGAR Filing AnalyzerSEC filing analysisResearch financial impact of PMA approvals on public companies

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try FDA PMA Medical Device Approval Search?

Start for free on Apify. No credit card required.

Open on Apify Store