accessdata.fda.gov APIwww.accessdata.fda.gov ↗
Search and retrieve FDA premarket approval (PMA) records for medical devices. Access approval details, supplements, applicant info, and product codes.
curl -X GET 'https://api.parse.bot/scraper/21ac37c7-dfa1-44a5-8cc3-d79df24d98b8/search_pma?limit=5&applicant=medtronic' \ -H 'X-API-Key: $PARSE_API_KEY'
Search the FDA PMA database by device name, product code, applicant, or PMA number. At least one search parameter (device_name, product_code, applicant, or pma_number) is required. Supports combining multiple filters and pagination.
| Param | Type | Description |
|---|---|---|
| skip | integer | Number of results to skip for pagination |
| sort | string | Sort field and direction (e.g., 'decision_date:desc') |
| limit | integer | Number of results per page (1-100) |
| applicant | string | Applicant/manufacturer name (e.g., 'medtronic', 'abbott') |
| pma_number | string | PMA number (e.g., 'P200049') |
| device_name | string | Device/trade name to search for (e.g., 'pacemaker', 'cardiac') |
| product_code | string | FDA product code (e.g., 'LWP', 'NGV') |
{
"type": "object",
"fields": {
"skip": "integer number of results skipped",
"limit": "integer page size used",
"total": "integer total count of matching records",
"results": "array of PMA record objects with pma_number, trade_name, applicant, decision_date, decision_code, product_code, and other fields"
},
"sample": {
"data": {
"skip": 0,
"limit": 5,
"total": 12708,
"results": [
{
"zip": "55112",
"city": "Mounds View",
"state": "MN",
"applicant": "Medtronic, Inc.",
"pma_number": "P240036",
"trade_name": "OmniaSecure MRI SureScan Lead Model 3930M",
"ao_statement": "removing a redundant inspection and manufacturing tolerance changes",
"generic_name": "Permanent defibrillator electrodes",
"product_code": "NVY",
"date_received": "2026-03-25",
"decision_code": "OK30",
"decision_date": "2026-04-24",
"supplement_type": "30-Day Notice",
"supplement_number": "S005",
"supplement_reason": "Process Change - Manufacturer/Sterilizer/Packager/Supplier",
"advisory_committee": "CV",
"expedited_review_flag": "N",
"advisory_committee_description": "Cardiovascular"
}
]
},
"status": "success"
}
}About the accessdata.fda.gov API
The FDA PMA API provides access to the full premarket approval database on accessdata.fda.gov through 2 endpoints covering thousands of medical device approval records. Use search_pma to query by device name, applicant, product code, or PMA number, and get_pma_details to retrieve a complete approval history — original approval plus all filed supplements — for any specific PMA number.
What the API Returns
The search_pma endpoint queries the FDA premarket approval database and returns paginated result sets. Each record in the results array includes fields such as pma_number, trade_name, applicant, decision_date, decision_code, and product_code. You can filter by any combination of device_name, applicant, pma_number, and product_code, and control result ordering with the sort parameter (e.g., decision_date:desc). The total field in the response lets you implement accurate pagination using the skip and limit parameters.
Approval Details and Supplements
The get_pma_details endpoint accepts a single pma_number and returns the original_approval object alongside a sorted supplements array. The original approval object includes trade_name, applicant, decision_date, and openfda metadata. Supplement records are sorted by supplement_number, making it straightforward to trace the full regulatory history of a device — from initial clearance through label changes, manufacturing updates, and post-approval studies. The total_records field gives the combined count of the original plus all supplements.
Scope and Source
This API reflects data from the FDA's public PMA database, which covers Class III medical devices requiring premarket approval — the most stringent regulatory pathway. Records span applicants ranging from large device manufacturers like Medtronic and Abbott to smaller companies. Product codes (e.g., LWP, NGV) map to specific device categories in the FDA classification system, enabling targeted queries across therapeutic areas.
- Track all PMA supplements filed by a specific manufacturer such as Medtronic or Abbott to monitor post-approval changes
- Look up the original decision date and decision code for a device by its PMA number for regulatory due diligence
- Filter approvals by product code to identify all cleared devices within a specific FDA device category
- Build a competitive landscape of Class III device approvals by querying by device type and sorting by decision date
- Retrieve the full supplement history of a device to assess manufacturing or labeling changes over time
- Cross-reference applicant names against approval volumes for market research on medical device companies
- Validate a specific PMA number and retrieve associated trade name and applicant for compliance checks
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does accessdata.fda.gov have an official developer API?+
What does `get_pma_details` return beyond what `search_pma` provides?+
search_pma returns summary-level fields per record, get_pma_details returns the original_approval object with full metadata including openfda fields, plus a complete sorted array of all supplement records for that PMA number. This gives you the full regulatory lifecycle of a device in one call rather than across multiple paginated queries.Does the API cover 510(k) clearances or De Novo device classifications?+
How should I handle large result sets from `search_pma`?+
total field in the response to determine how many records match your query, then paginate using skip and limit (max 100 per page). For example, to retrieve records 101–200, set skip=100 and limit=100. Combining filters like applicant and product_code narrows result sets before paginating.