# FDA 510(k) Scraper: Medical Device Clearances | $1/1K (`one_dollar_store/fda-510k-device-clearances`) Actor

$1 per 1,000 results, platform usage included. FDA 510(k) medical device clearances from openFDA: K number, device, applicant, decision, dates, product code, class, panel and address. Filter by device, applicant, code or date. No key.

- **URL**: https://apify.com/one_dollar_store/fda-510k-device-clearances.md
- **Developed by:** [One Dollar Store](https://apify.com/one_dollar_store) (community)
- **Categories:** Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## FDA 510(k) Scraper: medical device clearances with applicant and dates

**$1 per 1,000 clearances. Platform usage included. No rental, no minimum.**

The four most used FDA 510(k) actors on Apify Store charge $1.80 to $50.00 per 1,000 results (Store prices checked 20 October 2026). This actor returns the same kind of data for $1.

[Open it in Apify Console](https://console.apify.com/actors/Ln98rY81M7hOge2cP/input)

### What it costs

| Clearances | This actor | Most used FDA 510(k) actors on the Store |
|---|---|---|
| 1,000 | $1.00 | $1.80 to $50.00 |
| 10,000 | $10.00 | $18 to $500 |
| 100,000 | $100.00 | $180 to $5,000 |

Plus $0.001 per run. A weekly check for new clearances in one product code, about 20 rows a week, costs about $0.02 a run, or about $0.09 a month.

### Why use it

- **One flat price.** Compute is included, so the bill follows the number of clearances and nothing else.
- **Filters that match how people search.** Device name words, applicant words, product code, exact K numbers, decision codes and a decision date range, in any combination.
- **Up to 10,000 clearances in one run.** The actor reads 1,000 records per request and keeps to openFDA's published limits.
- **Review time included.** `reviewDays` is the number of days between the date FDA received the submission and the decision date.
- **No key, no login.** The data comes from the public openFDA service of the US Food and Drug Administration.

### Quick start

1. Open the actor, type a device name word such as `glucose`, press **Start**.
2. Or paste this input:

```json
{ "deviceName": "glucose", "decisionDateFrom": "2024-01-01", "sortOrder": "newest", "maxItems": 100 }
```

3. Download the results as JSON, CSV or Excel, or read them through the API.

### Use it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~fda-510k-device-clearances/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"deviceName": "glucose", "maxItems": 50}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("one_dollar_store/fda-510k-device-clearances").call(
    run_input={"deviceName": "glucose", "maxItems": 50}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["decisionDate"], item["kNumber"], item["applicant"], item["deviceName"])
```

### Use it from an AI assistant

Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:

```
https://mcp.apify.com?tools=one_dollar_store/fda-510k-device-clearances
```

Then ask, for example: "List the 20 newest FDA 510(k) clearances for glucose monitoring systems, with applicant and decision date."

### Switching from another FDA 510(k) actor

Most 510(k) actors take a device or company search and a result limit. Here they are `deviceName`, `applicant`, `productCode`, `kNumbers` and `maxItems`. The core fields are `kNumber`, `deviceName`, `applicant`, `decisionDate`, `productCode` and `url`.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `deviceName` | text | none | Words that must all appear in the device name, for example `glucose monitor`. |
| `applicant` | text | none | Words that must all appear in the applicant (manufacturer) name, for example `Medtronic`. |
| `productCode` | text | none | The three letter FDA product code, for example `NBW`. |
| `kNumbers` | list of text | none | Exact K numbers, one per line. `BK` and `DEN` numbers also work. |
| `decisionCodes` | list | none | Only these decisions: `SESE`, `SESK`, `SESP`, `SESD`, `SESU`, `SEKD`, `SESR` or `DENG`. |
| `decisionDateFrom`, `decisionDateTo` | text | none | Decision date range, written `YYYY-MM-DD`. |
| `sortOrder` | text | `newest` | `newest` or `oldest` by decision date. |
| `maxItems` | number | 100 | Most clearances to return (10 to 10,000). |

Leave every filter empty to get the newest clearances of all. Filters work together: a clearance must match all of them. Example:

```json
{
  "applicant": "Dexcom",
  "decisionDateFrom": "2024-01-01",
  "decisionDateTo": "2024-12-31",
  "decisionCodes": ["SESE"],
  "maxItems": 200
}
```

### Output fields

| Field | Meaning |
|---|---|
| `kNumber` | FDA submission number. `K` is a 510(k), `BK` a 510(k) cleared by CBER, `DEN` a De Novo request. |
| `deviceName`, `applicant` | Trade name of the device and the company that submitted it. |
| `decisionDate`, `decisionCode`, `decisionDescription` | The FDA decision and its date. `SESE` means substantially equivalent. |
| `dateReceived`, `reviewDays` | Date FDA received the submission, and whole days from that date to the decision. |
| `productCode`, `deviceClass`, `regulationNumber`, `medicalSpecialty` | How FDA classifies the device. |
| `clearanceType` | Submission route, for example Traditional, Special, Direct or Dual Track. |
| `advisoryCommittee`, `advisoryCommitteeDescription`, `reviewPanel` | Medical specialty panel codes and name. |
| `statementOrSummary` | Whether a 510(k) summary or a statement was filed. |
| `thirdPartyReview`, `expeditedReview` | FDA flags as openFDA gives them. `expeditedReview` is often empty. |
| `address1`, `address2`, `city`, `state`, `postalCode`, `countryCode` | The applicant's address. `state` is filled for US applicants. |
| `url` | The record in FDA's 510(k) database. |
| `source` | Where the record comes from. |

### Sample results

Real rows from a test run on 20 October 2026.

```json
[
  {"kNumber": "K260689", "deviceName": "CVS Advanced PLUS Blood Glucose Monitoring System", "applicant": "I-Sens, Inc.", "decisionDate": "2026-10-02", "decisionCode": "SESE", "decisionDescription": "Substantially Equivalent", "dateReceived": "2026-03-03", "reviewDays": 213, "productCode": "NBW", "clearanceType": "Special", "advisoryCommittee": "CH", "advisoryCommitteeDescription": "Clinical Chemistry", "reviewPanel": "CH", "statementOrSummary": "Summary", "thirdPartyReview": "N", "deviceClass": "2", "medicalSpecialty": "Clinical Chemistry", "address1": "Banpo-Daero 28 Gil, 43", "address2": "Seocho-Gu", "city": "Seoul", "postalCode": "06646", "countryCode": "KR", "url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K260689", "source": "openFDA 510(k) data, U.S. Food and Drug Administration (https://open.fda.gov/apis/device/510k/)"},
  {"kNumber": "DEN250049", "deviceName": "Libre Duo 10 Day Continuous Dual Glucose Ketone Monitoring System", "applicant": "Abbott Diabetes Care", "decisionDate": "2026-08-25", "decisionCode": "DENG", "decisionDescription": "Unknown", "dateReceived": "2025-09-29", "reviewDays": 330, "productCode": "SJD", "clearanceType": "Direct", "advisoryCommittee": "CH", "advisoryCommitteeDescription": "Clinical Chemistry", "reviewPanel": "CH", "thirdPartyReview": "N", "deviceClass": "2", "medicalSpecialty": "Clinical Chemistry", "address1": "1360 S. Loop Rd.", "city": "Alameda", "state": "CA", "postalCode": "94502", "countryCode": "US", "url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=DEN250049", "source": "openFDA 510(k) data, U.S. Food and Drug Administration (https://open.fda.gov/apis/device/510k/)"},
  {"kNumber": "K262472", "deviceName": "Stelo Glucose Biosensor System", "applicant": "Dexcom, Inc.", "decisionDate": "2026-08-11", "decisionCode": "SESE", "decisionDescription": "Substantially Equivalent", "dateReceived": "2026-07-17", "reviewDays": 25, "productCode": "SBH", "clearanceType": "Special", "advisoryCommittee": "CH", "advisoryCommitteeDescription": "Clinical Chemistry", "reviewPanel": "CH", "statementOrSummary": "Summary", "thirdPartyReview": "N", "deviceClass": "2", "medicalSpecialty": "Clinical Chemistry", "address1": "6340 Sequence Dr.", "city": "San Diego", "state": "CA", "postalCode": "92121", "countryCode": "US", "url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K262472", "source": "openFDA 510(k) data, U.S. Food and Drug Administration (https://open.fda.gov/apis/device/510k/)"}
]
```

### Limits

- The data is what openFDA publishes. FDA refreshes it on its own schedule, so it can run behind FDA's own 510(k) database. On 20 October 2026 the last update was 5 October 2026 and the newest decision in the data was dated 2 October 2026. The run summary (`RUN_SUMMARY` in the key-value store) shows `dataLastUpdated` and `matchingRecords`.
- Documents are not included. The 510(k) summary, predicate devices, indications for use and device description are not part of openFDA's 510(k) data. The `url` field opens FDA's own page for the record.
- openFDA without a key allows 240 requests a minute and 1,000 requests a day per IP address. The actor reads up to 1,000 clearances per request, pauses between requests and retries up to 3 times. If the daily allowance of the address is used up, the run ends with an error that says so; a later run works.
- One run returns at most 10,000 clearances. Split bigger pulls by decision date.
- Name filters match whole words, not parts of words. `gluc` does not find `glucose`.
- Contact person names are not returned. The applicant address is the company's address.
- `expeditedReview` is empty on most records, `state` is filled for US applicants only, and `statementOrSummary` is missing on some records.
- Some De Novo records (code `DENG`) carry the text `Unknown` in `decisionDescription`, as openFDA gives them.

### FAQ

**What is the cheapest FDA 510(k) scraper on Apify?**
This actor costs $1 per 1,000 clearances with platform usage included. The most used FDA 510(k) actors on the Store charged $1.80 to $50.00 per 1,000 when we checked on 20 October 2026.

**How much does it cost to scrape 10,000 FDA 510(k) clearances?**
$10, plus $0.001 for each run.

**Do I pay for compute or proxy on top?**
No. Platform usage is included in the $1 per 1,000 price. The actor needs no proxy.

**Where does the data come from?**
From openFDA, the public API of the US Food and Drug Administration (api.fda.gov, device 510(k) endpoint). No key is needed.

**Is it legal?**
The actor reads public data only, with no login. openFDA states that its content is in the public domain (CC0), so you may use it, including for business. Follow the law where you live and do not present the data as an FDA statement.

**Is this an official FDA product?**
No. It is an independent tool and is not affiliated with or endorsed by the FDA.

**Does a 510(k) clearance mean FDA approved the device?**
No. A 510(k) clearance means FDA found the device substantially equivalent to a device already on the market. Approval is a different route, called PMA.

**How do I watch for new clearances?**
Schedule a run with `decisionDateFrom` set to a recent date, and use `kNumber` to drop rows you already have.

**Do I need an Apify account?**
Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can [sign up here](https://www.apify.com?fpr=ymnoit). This is a referral link and it costs you nothing.

**Is there a limit on the free plan?**
Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.

### More from The One Dollar Store

Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store

**Health and science**

- [NPI Provider Search](https://apify.com/one_dollar_store/npi-providers-search): US healthcare providers from the NPI registry.
- [PubMed Articles Scraper](https://apify.com/one_dollar_store/pubmed-articles-scraper): Biomedical articles with abstracts and authors.
- [ClinicalTrials.gov Scraper](https://apify.com/one_dollar_store/clinical-trials-search): Clinical studies by condition, drug or sponsor.
- [Product Recalls Scraper](https://apify.com/one_dollar_store/consumer-product-recalls-cpsc): US consumer product recalls from the CPSC.
- [Crossref Scraper](https://apify.com/one_dollar_store/crossref-doi-metadata): Scholarly works by DOI, title or author.
- [EPA ECHO Scraper](https://apify.com/one_dollar_store/epa-echo-facility-compliance): US facility inspections and violations.
- [NIH RePORTER Scraper](https://apify.com/one_dollar_store/nih-reporter-grants): US NIH research grants and awards.
- [USGS Earthquakes Scraper](https://apify.com/one_dollar_store/usgs-earthquakes-scraper): Earthquake events with magnitude and place.
- [FDA Recalls Scraper](https://apify.com/one_dollar_store/fda-recalls-scraper): US FDA enforcement reports and recalls.
- [CMS Hospital Quality](https://apify.com/one_dollar_store/cms-hospital-quality-data): US hospital ratings and quality measures.

### Changelog

- October 2026: first release.

# Actor input Schema

## `deviceName` (type: `string`):

Words that must all appear in the device name, for example glucose monitor. Leave empty for no device filter.

## `applicant` (type: `string`):

Words that must all appear in the applicant (manufacturer) name, for example Medtronic.

## `productCode` (type: `string`):

The three letter FDA product code of the device category, for example NBW.

## `kNumbers` (type: `array`):

Look up exact clearances, one K number per line, for example K240001. BK and DEN numbers also work. Other filters are applied on top.

## `decisionCodes` (type: `array`):

Only these FDA decisions. Leave empty for all. SESE is the usual substantially equivalent decision. DENG is a granted De Novo request.

## `decisionDateFrom` (type: `string`):

Earliest decision date, written YYYY-MM-DD, for example 2024-01-01.

## `decisionDateTo` (type: `string`):

Latest decision date, written YYYY-MM-DD, for example 2024-12-31.

## `sortOrder` (type: `string`):

Newest decisions first, or oldest first.

## `maxItems` (type: `integer`):

The run stops after this many clearances. Minimum 10, maximum 10,000.

## Actor input object example

```json
{
  "deviceName": "glucose",
  "sortOrder": "newest",
  "maxItems": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "deviceName": "glucose",
    "sortOrder": "newest",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("one_dollar_store/fda-510k-device-clearances").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "deviceName": "glucose",
    "sortOrder": "newest",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("one_dollar_store/fda-510k-device-clearances").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "deviceName": "glucose",
  "sortOrder": "newest",
  "maxItems": 50
}' |
apify call one_dollar_store/fda-510k-device-clearances --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,one_dollar_store/fda-510k-device-clearances"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ln98rY81M7hOge2cP/builds/WBynjVXnMHD6XpLqG/openapi.json
