Discover/FDA API
live

FDA APIaccessdata.fda.gov

Search and retrieve FDA Premarket Approval (PMA) records for medical devices, including approval details, supplements, applicant info, and decision dates.

Endpoint health
verified 2d ago
search_pma
get_pma_details
2/2 passing latest checkself-healing
Endpoints
2
Updated
21d ago

What is the FDA API?

This API exposes 2 endpoints for querying the FDA Premarket Approval (PMA) database at accessdata.fda.gov, covering original approvals and all associated supplement records. Use search_pma to filter PMA records by device name, product code, applicant, or PMA number, and get_pma_details to retrieve a complete approval history — including every supplement — for a specific PMA number. Each result includes structured fields such as trade_name, applicant, decision_date, decision_code, and product_code.

Try it
Number of results to skip for pagination
Sort field and direction (e.g., 'decision_date:desc')
Number of results per page (1-100)
Applicant/manufacturer name (e.g., 'medtronic', 'abbott')
PMA number (e.g., 'P200049')
Device/trade name to search for (e.g., 'pacemaker', 'cardiac')
FDA product code (e.g., 'LWP', 'NGV')
api.parse.bot/scraper/21ac37c7-dfa1-44a5-8cc3-d79df24d98b8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/21ac37c7-dfa1-44a5-8cc3-d79df24d98b8/search_pma?skip=0&sort=decision_date%3Adesc&limit=5&applicant=medtronic' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace accessdata-fda-gov-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""FDA PMA Database: search approvals, drill into details, handle errors."""
from parse_apis.fda_premarket_approval_pma_database_api import FdaPma, PmaNotFound

client = FdaPma()

# Search for recent pacemaker-related PMA records
for record in client.pmarecords.search(device_name="pacemaker", limit=3):
    print(record.trade_name, record.decision_date, record.applicant)

# Drill into the full approval history for a specific PMA
approval = client.pmaapprovals.get(pma_number="P200049")
print(approval.pma_number, approval.total_records)
print(approval.original_approval.trade_name, approval.original_approval.decision_date)

# Browse supplements on the approval
for supp in approval.supplements[:3]:
    print(supp.supplement_number, supp.supplement_type, supp.decision_date)

# Typed error handling for a non-existent PMA
try:
    missing = client.pmaapprovals.get(pma_number="P999999")
except PmaNotFound as exc:
    print(f"PMA not found: {exc.pma_number}")

print("exercised: pmarecords.search / pmaapprovals.get / PmaApproval.supplements / PmaNotFound")
All endpoints · 2 totalmissing one? ·

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. Returns paginated results sorted by the specified field.

Input
ParamTypeDescription
skipintegerNumber of results to skip for pagination
sortstringSort field and direction (e.g., 'decision_date:desc')
limitintegerNumber of results per page (1-100)
applicantstringApplicant/manufacturer name (e.g., 'medtronic', 'abbott')
pma_numberstringPMA number (e.g., 'P200049')
device_namestringDevice/trade name to search for (e.g., 'pacemaker', 'cardiac')
product_codestringFDA product code (e.g., 'LWP', 'NGV')
Response
{
  "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 FDA API

Searching PMA Records

The search_pma endpoint accepts at least one of four filter parameters: device_name, product_code, applicant, or pma_number. Filters can be combined — for example, searching for a specific applicant like medtronic alongside a product code like LWP. Results are paginated via limit (1–100 per page) and skip, and can be sorted using the sort parameter (e.g., decision_date:desc). Each result object in the results array includes pma_number, trade_name, applicant, decision_date, decision_code, and product_code, along with additional fields. The response also returns total — the count of all matching records — which is useful for building pagination logic.

Retrieving Full PMA Approval History

The get_pma_details endpoint takes a single required pma_number (e.g., P200049) and returns the complete regulatory history for that device. The response includes an original_approval object with fields such as trade_name, applicant, decision_date, and openfda metadata, plus a supplements array sorted by supplement_number covering every post-approval change filed with the FDA. The total_records field gives the combined count of the original approval and all supplements, making it straightforward to track how a device's approval has evolved over time.

Data Coverage and Source

The FDA PMA database covers Class III medical devices that require the most rigorous premarket review. Records span decades of approvals and include both original PMAs and supplements for label changes, manufacturing changes, design modifications, and more. The decision_code field distinguishes approval outcomes, and the openfda object within original_approval provides normalized identifiers that can be used to cross-reference other FDA datasets.

Reliability & maintenanceVerified

The FDA API is a managed, monitored endpoint for accessdata.fda.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when accessdata.fda.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official accessdata.fda.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track all PMA supplements filed by a specific manufacturer like Abbott or Medtronic using the applicant filter
  • Monitor new Class III medical device approvals by sorting search_pma results by decision_date:desc
  • Look up the complete regulatory history of a device using get_pma_details with a known PMA number
  • Identify all devices approved under a specific FDA product code using the product_code filter
  • Build a competitive intelligence dataset of approved cardiac or orthopedic devices by filtering on device_name
  • Count post-approval supplements for a device via total_records to assess how frequently a manufacturer has modified an approved product
  • Cross-reference openfda identifiers from PMA records with other FDA datasets for regulatory research
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does the FDA provide an official developer API for PMA data?+
Yes. The FDA publishes the openFDA API at https://open.fda.gov/apis/device/pma/, which provides structured access to PMA records. This Parse API surfaces the same underlying data with a simplified interface focused on search and full approval history retrieval.
What does `get_pma_details` return beyond the original approval?+
It returns an original_approval object with fields including trade_name, applicant, decision_date, and openfda metadata, plus a supplements array sorted by supplement_number. Each supplement record captures post-approval changes such as labeling updates or design modifications. The total_records field covers the original plus all supplements.
Does `search_pma` return advisory committee meeting details?+
The search results include core fields like pma_number, trade_name, applicant, decision_date, decision_code, and product_code. Advisory committee meeting details are not currently surfaced as distinct structured fields in the search results. You can fork this API on Parse and revise it to add an endpoint that exposes advisory committee data.
Is there a limit on how many results `search_pma` returns per request?+
The limit parameter accepts values from 1 to 100 results per page. Use skip in combination with total from the response to paginate through larger result sets. Searches with very broad terms may match thousands of records, so filtering by multiple parameters together will narrow results to manageable pages.
Does the API cover 510(k) clearances or only PMA approvals?+
Both endpoints cover only FDA Premarket Approval (PMA) records, which apply to Class III devices. 510(k) premarket notifications, De Novo classifications, and HDE (Humanitarian Device Exemption) records are not currently included. You can fork this API on Parse and revise it to add endpoints for those approval pathways.
Page content last updated . Spec covers 2 endpoints from accessdata.fda.gov.
Related APIs in Government PublicSee all →
open.fda.gov API
Search FDA food recall and enforcement actions to find safety information about specific products or manufacturers, and look up adverse events reported to the CFSAN Adverse Event Reporting System (CAERS). Filter, sort, and aggregate data by various fields to analyze food safety trends and monitor enforcement activity.
drugs.com API
Search for drugs and pill identifications, get detailed information about FDA approvals and drug interactions, and find medications by condition or letter. Look up side effects, dosages, and potential drug interactions to make informed health decisions.
clinicaltrials.gov API
Search and retrieve comprehensive information about clinical trials worldwide, including study details, eligibility criteria, locations, and outcomes data. Access structured metadata and statistics to find relevant research studies matching your specific medical conditions or research interests.
pharmdata.co.uk API
Search UK pharmacies, access NHS service statistics, and retrieve pharmacy dispensing data to compare performance across regions. Monitor MHRA drug safety alerts and view LPC rankings to make informed decisions about pharmacy services and medications.
pmc.ncbi.nlm.nih.gov API
Search millions of full-text biomedical research articles and access their metadata, citations, and related papers from PubMed Central. Find articles by topic, discover similar research, explore journal collections, and retrieve detailed citation information to support your literature review and research.
ncbi.nlm.nih.gov API
Search and retrieve biomedical literature from NCBI databases including PubMed, PubMed Central, and MeSH. Supports full-text extraction, metadata lookup, and research filtering.
insights.apmiindia.org API
Access comprehensive financial data on Indian PMS providers and investment approaches, including AUM breakdowns, industry dashboards, and detailed provider information. Search and compare investment strategies, view discretionary AUM details, and generate insight reports to analyze the PMS market landscape.
pubmed.ncbi.nlm.nih.gov API
Search and retrieve biomedical literature from PubMed and NCBI databases. Supports keyword search, advanced field-tag queries, clinical filters, citation matching, date filtering, publication type filtering, and direct E-utilities access.