FDA 510(k) Clearances Scraper | 11 Fields, No API Key
Pricing
from $0.60 / 1,000 clearance scrapeds
FDA 510(k) Clearances Scraper | 11 Fields, No API Key
Scrape FDA 510(k) medical device clearances by company, device, or product code. Returns applicant, decision date, decision type & panel for medtech competitive intel and regulatory affairs. No API key. Use it as an MCP server in Claude, ChatGPT & AI agents.
Pricing
from $0.60 / 1,000 clearance scrapeds
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
2 hours ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors. This actor ranks #2 for "fda 510k" in Apify Store search.
Search the FDA's 510(k) premarket notification decisions by company, device name, product code, decision type and date, and get one clean row per decision, newest first: K number, applicant, device name, product code, decision code and its meaning, decision date, review panel, advisory committee and a direct link to the FDA database entry. It reads the official openFDA device API, so there is no API key, no login and no browser.
Why choose this actor?
- Every filter works together, newest first. Combine applicant, device name, product code, decision type and a start date in one search. In our 2 October test, Medtronic decisions since 2020 matched 185 records in openFDA, and the 25 newest came back in 4 seconds.
- All 11 fields on every row, review panel included. 190 of 190 rows in our tests carried
review_panel(such asCVfor cardiovascular) andadvisory_committee, plus a workingurlto the FDA's own record for each K number. - Pay only for decisions delivered. From $0.60 per 1,000 on Gold. A search that matches nothing costs only the $0.005 start fee, and the run's summary row tells you how many records matched and the exact query sent, so an empty result is never a mystery.
Part of The Mine Works Science, health and government data family: CourtListener Scraper, Socrata Open Data Scraper, Academic Research MCP, OpenAlex Scraper, Crossref Scraper, PubMed Scraper.
Try it in one minute
Paste this into the JSON tab of the input page and press Start (it is also what the Console form fills in for you):
{"applicant": "Medtronic","decisionType": "SE","dateFrom": "2020-01-01","maxResults": 25}
You get Medtronic's 25 most recent cleared 510(k)s since 2020 in a few seconds.
Every filter is optional, and the ones you fill in must all match. Give a company in applicant (whole words, so Medtronic also finds "Medtronic Xomed, Inc."), words from the device name in deviceName, FDA's three letter code in productCode (DQY, upper or lower case), the outcome in decisionType (SE for any cleared decision, DENG for De Novo, or exact codes), and a first decision date in dateFrom (YYYY-MM-DD). Leave them all empty to get the newest decisions of any kind.
Apify's free plan includes $5 of credit every month, which covers about 4,700 decisions at this actor's Free plan price ($0.001 a decision plus the $0.005 start fee, in runs of 100).
Copy to your AI assistant
themineworks/fda-510k-device-clearances on Apify. Searches FDA 510(k) premarket notification decisions through the public openFDA API and returns one row per decision, newest first, with k_number, applicant, device_name, product_code, decision_code, decision_description, decision_date, review_panel, advisory_committee, url and scraped_at. Call ApifyClient("TOKEN").actor("themineworks/fda-510k-device-clearances").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: nothing (no filters returns the newest decisions). Optional, all combined with AND: applicant (company, whole words), deviceName (words in the device name, as a phrase), productCode (3 letter FDA code, any case), decisionType ("SE" = any substantially equivalent decision, "DENG" or "De Novo", or exact codes such as "SESE, SESK"; openFDA has no NSE decisions), dateFrom (YYYY-MM-DD, decisions on or after), maxResults (1 to 2000, default 100). The _type "summary" row gives openfda_search, matching_in_openfda and a note when nothing matched; summary and info rows are never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~fda-510k-device-clearances/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
Key features
- 11 fields per decision:
k_number,applicant,device_name,product_code,decision_code,decision_description,decision_date,review_panel,advisory_committee,urlandscraped_at. - 5 filters, combined with AND.
applicant,deviceName,productCode,decisionTypeanddateFromcan be used alone or together. Product codes are matched in any case, and quotes typed into a filter are ignored instead of breaking the search. - Decision types the way FDA records them.
SEcovers all ten "substantially equivalent" codes in openFDA (175,734 decisions on 2 October 2026),DENGor "De Novo" covers the 489 De Novo grants, and exact codes can be listed with commas (SESE, SESK). - Newest first, up to 2,000 per run. Results are sorted by
decision_date, read 100 per request, so a run of 2,000 makes 20 requests. - A summary you can check. Every run ends with the exact openFDA query (
openfda_search), how many records matched it (matching_in_openfda) and, when nothing came back, anotesaying why. - Nothing to set up. The openFDA API is public: no key, no login, no proxy and no browser.
How to use it
Basic: one company
{"applicant": "Boston Scientific","maxResults": 50}
Several filters at once
{"applicant": "Abbott","deviceName": "glucose","decisionType": "SE","maxResults": 100}
In our test this matched 55 Abbott glucose devices cleared as substantially equivalent.
Competitor watch: new clearances for a company
{"applicant": "Boston Scientific","decisionType": "SE","dateFrom": "2024-01-01","maxResults": 200}
51 matches on 2 October 2026. Save it as a task and schedule it weekly (for example 0 8 * * 1), then keep only k_number values you have not seen before.
Category map: everyone cleared in one product code
{"productCode": "DQY","maxResults": 500}
DQY (percutaneous catheters) had 896 decisions in openFDA on 2 October. Group the rows by applicant to see who is active in the category and how recently.
Find the product code from a device name
{"deviceName": "glucose","dateFrom": "2022-01-01","maxResults": 100}
Device names are matched as whole words, so a long phrase such as "continuous glucose monitor" found nothing in our test while "glucose" found 65. Read the product_code values in the results, then run a category search on the code you need.
De Novo grants
{"decisionType": "De Novo","dateFrom": "2025-01-01","maxResults": 100}
52 De Novo grants since 1 January 2025. Their k_number starts with DEN.
Feed of the newest decisions
{"dateFrom": "2026-01-01","maxResults": 1000}
With no company or device filter, the date alone returns everything decided since then, newest first (2,428 decisions in 2026 by 2 October).
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
applicant | string | none (form prefill: Medtronic) | Company that submitted the 510(k), matched on whole words. |
deviceName | string | none | Words in the device name, matched as a phrase. Short terms work best (glucose, catheter). |
productCode | string | none | FDA's three letter product code, such as DQY or FRN. Upper or lower case. |
decisionType | string | none (form prefill: SE) | SE for any substantially equivalent decision, DENG or De Novo for De Novo grants, or exact codes (SESE, SESK, SESU, SESD, SESP, SEKD, SN, ST, PT, SI), several separated by commas. NSE returns nothing, with a note, because openFDA does not publish those decisions. |
dateFrom | string | none (form prefill: 2020-01-01) | Only decisions on or after this date, written YYYY-MM-DD (YYYY/MM/DD and YYYYMMDD also work). A value that is not a date stops the run with a note and no charge. |
maxResults | integer (1 to 2,000) | 100 (form prefill: 25) | Most decisions to return, newest first. |
All filters you fill in are combined with AND. "Form prefill" values fill the Console form for you but are not defaults: a run started from the untouched form returns Medtronic's 25 newest substantially equivalent decisions since 2020.
Run options. The default memory is 512 MB and the default timeout is 300 seconds, plenty for 2,000 decisions: a run of 150 took 3 seconds in our test.
What data do you get?
One row per 510(k) decision, newest first.
The submission: k_number (the 510(k) number, such as K262913; De Novo grants start with DEN), applicant, device_name, url (the FDA's own database page for that number).
The device class: product_code (FDA's three letter classification), review_panel (the two letter code of the FDA panel that reviewed it, such as CV cardiovascular, OR orthopedic, SU general and plastic surgery), advisory_committee (the committee's name, such as Cardiovascular).
The decision: decision_code (such as SESE), decision_description (such as Substantially Equivalent), decision_date (YYYY-MM-DD).
When it was read: scraped_at.
Values come from openFDA unchanged. openFDA itself writes Unknown as the decision_description of several codes (the De Novo grants and SESK decisions we checked, for example) and sometimes as advisory_committee, and in our tests one of 190 records had an empty product_code. A field openFDA leaves out entirely is left out of the row.
Each run ends with a _type: "summary" row: clearances (rows delivered), openfda_search (the exact query), matching_in_openfda (how many records matched, of which the run took the newest maxResults), and a note when nothing came back, such as "No 510(k) decisions match these filters". A _type: "info" row follows with a short message. Neither is a decision and neither is ever charged. Skip rows that have a _type field when you load decisions.
Stable fields for automations
All 11 fields were present in every row we sampled (190 different decisions from seven runs of this build on 2 October 2026):
| Field | What it holds |
|---|---|
k_number | 510(k) or De Novo number; the key for deduplication across runs |
applicant | Submitting company |
device_name | Device name as submitted |
product_code | Three letter FDA product code |
decision_code | FDA decision code, such as SESE or DENG |
decision_description | Meaning of the code, or Unknown where openFDA has none |
decision_date | Decision date, YYYY-MM-DD |
review_panel | Two letter review panel code |
advisory_committee | Advisory committee name |
url | FDA database page for the number |
scraped_at | Time of the read, ISO timestamp |
We will not rename these fields. New fields may be added over time; existing ones keep their names.
Output examples
Real rows from our tests of this build on 2 October 2026.
The newest Medtronic clearance from the Console example (applicant Medtronic, decisionType SE, dateFrom 2020-01-01):
{"k_number": "K262913","applicant": "Medtronic, Inc.","device_name": "Protégé EverFlex Self-expanding Peripheral Stent System","product_code": "FGE","decision_code": "SESE","decision_description": "Substantially Equivalent","decision_date": "2026-09-17","review_panel": "GU","advisory_committee": "Gastroenterology, Urology","url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K262913","scraped_at": "2026-10-02T16:46:05.836Z"}
A company plus product code search (applicant Medtronic, productCode DTE, 13 matches):
{"k_number": "K201011","applicant": "Medtronic, Inc.","device_name": "Medtronic Model 5392 External Pulse Generator (EPG)","product_code": "DTE","decision_code": "SESE","decision_description": "Substantially Equivalent","decision_date": "2020-05-13","review_panel": "CV","advisory_committee": "Cardiovascular","url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K201011","scraped_at": "2026-10-02T16:46:46.815Z"}
A De Novo grant (decisionType De Novo), where openFDA writes Unknown for the description and committee:
{"k_number": "DEN250044","applicant": "Powerful Medical, Inc.","device_name": "STEMI AI ECG Model","product_code": "SHS","decision_code": "DENG","decision_description": "Unknown","decision_date": "2026-09-03","review_panel": "CV","advisory_committee": "Unknown","url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=DEN250044","scraped_at": "2026-10-02T17:07:40.978Z"}
The summary row of a search with no match (Medtronic, "pacemaker", product code FRN, SE, since 2020), so you know the search ran and simply found nothing:
{"_type": "summary","clearances": 0,"openfda_search": "applicant:\"Medtronic\" AND device_name:\"pacemaker\" AND product_code:\"FRN\" AND decision_code:(SESE SESD SESK SESP SESU SEKD SN ST PT SI) AND decision_date:[20200101 TO 99991231]","matching_in_openfda": 0,"note": "No 510(k) decisions match these filters (openFDA: no matches found).","scraped_at": "2026-10-02T16:45:36.295Z"}
Pricing
Pay per event: you pay for each decision delivered to your dataset, plus a small start fee per run.
| Event | Free | Bronze | Silver | Gold and above |
|---|---|---|---|---|
clearance-scraped, per decision | $0.001 | $0.0009 | $0.00075 | $0.0006 |
clearance-scraped, per 1,000 decisions | $1.00 | $0.90 | $0.75 | $0.60 |
apify-actor-start, per run | $0.005 per GB of run memory, minimum one event | same | same | same |
The start fee, exactly. Apify's apify-actor-start event is charged once when a run starts, at $0.005 for each GB of memory the run uses, with a minimum of one event. This actor runs on 512 MB by default, so a default run pays one event: $0.005.
Worked examples. The Console example (25 decisions) on the Free plan: $0.025 plus $0.005. A weekly competitor watch of 200 decisions on Gold: $0.12 plus $0.005. The 2,000 decision maximum on Gold: $1.20 plus $0.005.
Never charged: a search that matches nothing, a decisionType of NSE or a dateFrom that is not a date (the run stops before asking openFDA), failed requests and their retries, and the summary and info rows. A run that delivers nothing pays only the start fee.
There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your plan; if it and this table ever differ, the Pricing tab is right.
FAQ
What is a 510(k)? A premarket notification in which a company shows the FDA that a new device is substantially equivalent to one already legally on the US market. It is the route most Class II medical devices take to market. The FDA's decision on each one is public.
What does the actor read?
The FDA's public openFDA API for 510(k) decisions (api.fda.gov/device/510k.json), 100 records per request, sorted by decision date with the newest first. It sends the filters you give as one openFDA search, and the summary row shows that search exactly.
How many decisions can I get?
Up to 2,000 per run. When a search matches more (the summary row's matching_in_openfda tells you), narrow it with a product code or company, or move dateFrom later, and run again.
How fresh is the data? As fresh as openFDA, which refreshes this dataset in batches. On 2 October 2026 openFDA's copy was last updated on 21 September and its newest decision was dated 19 September, so expect a lag of days to a few weeks behind the FDA's own database. Every run reads openFDA live; nothing is cached.
Why did my search return nothing?
Read the summary row's note and openfda_search. The usual reasons: the filters together match no record (each filter must match), a long device phrase (search glucose rather than "continuous glucose monitor"), a company name written differently from FDA's records (search Boston Scientific, not "BSC"), or NSE as the decision type. You pay only the $0.005 start fee for an empty search.
What do the decision codes mean?
SESE is the standard "Substantially Equivalent" clearance and covers almost every record. openFDA describes SN as substantially equivalent for some indications, ST as substantially equivalent and subject to tracking regulations, PT as subject to tracking and postmarket surveillance, and SI as cleared to market after inspection. It gives no description (Unknown) for SESK, SESU, SEKD, SESD and SESP, which are also substantially equivalent decisions, or for DENG, a De Novo grant. decisionType: "SE" covers all ten SE codes.
Does it include NSE decisions or PMA approvals? No. openFDA's 510(k) data holds cleared and De Novo decisions only, so there are no "not substantially equivalent" records to return, and PMA approvals are a different FDA database that this actor does not read.
Do I need an openFDA API key, an account or a proxy? No. The actor uses openFDA's public access, with no login and no proxy.
Can I monitor new clearances on a schedule?
Yes. Save your input as a task, then in Apify Console go to Schedules, Create new, and pick a time or a cron expression such as 0 8 * * 1 for Monday mornings. Use a recent dateFrom and keep only k_number values you have not seen. The actor keeps no memory between runs, so each run is charged for every decision it returns.
How do I export the data?
From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. Drop rows that have a _type field if you want decisions only.
Can I use it from Claude, ChatGPT or another AI assistant?
- Connector URL:
https://mcp.apify.com/?tools=themineworks/fda-510k-device-clearances. - Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http fda-510k-device-clearances "https://mcp.apify.com/?tools=themineworks/fda-510k-device-clearances".
Is it legal to use this data? Yes, 510(k) decisions are public records that the FDA publishes through openFDA, and the actor reads only that public API. openFDA asks users not to rely on its data for decisions about medical care and to treat results as unvalidated, and its terms are at open.fda.gov/terms. You are responsible for how you use the data, including openFDA's terms and data protection laws such as GDPR and CCPA. This is general information, not legal advice. This actor is independent and not affiliated with the FDA.
Integrations
- Google Sheets: export a run to a sheet, or use Apify's Google Sheets integration to append each scheduled run's new clearances.
- Make, Zapier and n8n: use the Apify app or node to start a run and post new clearances to Slack, email or your CRM.
- Webhooks: have Apify call your URL when a run succeeds, then read the dataset.
- API and client libraries: start runs and read datasets from Python, JavaScript or any HTTP client. The "Copy to your AI assistant" block above has the exact call.
- MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code can call the actor as a tool through
https://mcp.apify.com.
Building a medtech picture? Pair it with FDA Recalls Scraper for recalls by the same companies, ClinicalTrials.gov Scraper for their device trials, and USPTO Patents Scraper for the patents behind them.
More from The Mine Works
Science, health and government data
- CourtListener Scraper
- Socrata Open Data Scraper
- Academic Research MCP
- OpenAlex Scraper
- Crossref Scraper
- PubMed Scraper
- arXiv Scraper
- ClinicalTrials.gov Scraper
- FDA Recalls Scraper
- CMS Hospital Quality Scraper
- OpenCitations Scraper
- NPI Registry Scraper
Social media and video
Leads and business directories
Marketing, SEO and reviews
Real estate
Jobs and hiring
Company and business data
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a search that returns something unexpected, or need a field we do not return yet? Open an issue on the Issues tab of this page with your input and the run ID, and we will reply there. To ask for a new source, email dmineworks@gmail.com. A guide for this actor also lives at themineworks.com.
FDA 510(k) Clearances Scraper turns openFDA's 510(k) decisions into clean, filterable rows with the review panel and an FDA link on each, from $0.60 per 1,000 and no API key.

