# FDA 510(k) Premarket Clearances Scraper (`scrapers_lat/fda-510k-clearances-scraper`) Actor

Scrape FDA 510(k) premarket clearances from the official openFDA database. Filter by device, applicant, product code, medical specialty, state, country, clearance type and decision date. Enrich with device class and regulation. Export JSON, CSV, Excel.

- **URL**: https://apify.com/scrapers\_lat/fda-510k-clearances-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![FDA 510(k) Premarket Clearances Scraper](https://scrapers.lat/banners/fda-510k-clearances-scraper.png)](https://apify.com/scrapers_lat/fda-510k-clearances-scraper)

## FDA 510(k) Premarket Clearances Scraper

Here is one real result, with every field the actor returns:

```json
{
  "kNumber": "K252812",
  "deviceName": "UniPearls® Embolic Microspheres",
  "applicant": "Suzhou Haowei Medical Technology Co., Ltd.",
  "contact": "Jinyan Shi",
  "addressLine1": "Rm. 304, Bldg. 4, Tianyun Sq., 111 Wusongjiang Ave.",
  "addressLine2": "Wuzhong District",
  "city": "Suzhou",
  "state": null,
  "postalCode": "215124",
  "countryCode": "CN",
  "decisionCode": "SESE",
  "decisionDescription": "Substantially Equivalent",
  "decisionDate": "2026-07-31",
  "dateReceived": "2025-09-04",
  "reviewDays": 330,
  "productCode": "KRD",
  "advisoryCommittee": "CV",
  "advisoryCommitteeDescription": "Cardiovascular",
  "clearanceType": "Traditional",
  "thirdPartyReview": false,
  "expeditedReview": false,
  "statementOrSummary": "Summary",
  "deviceClass": "2",
  "genericDeviceName": "Device, Vascular, For Promoting Embolization",
  "medicalSpecialtyDescription": "Cardiovascular",
  "regulationNumber": "870.3300",
  "feiNumber": null,
  "registrationNumber": null,
  "clearanceUrl": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252812",
  "applicantTotalClearances": 3,
  "applicantRecentClearances": [
    { "kNumber": "K252812", "deviceName": "UniPearls® Embolic Microspheres", "decisionDate": "2026-07-31", "decisionDescription": "Substantially Equivalent", "productCode": "KRD" }
  ],
  "applicantRecallCount": 0,
  "applicantRecentRecalls": [],
  "aiSummary": "UniPearls Embolic Microspheres are tiny beads used by cardiovascular specialists to block blood flow in targeted vessels during a procedure. The FDA cleared the device in July 2026, finding it substantially equivalent to devices already on the market.",
  "observedAt": "2026-08-16T06:25:23.757Z",
  "error": null
}
```

The `applicantTotalClearances`, `applicantRecentClearances`, `applicantRecallCount`, `applicantRecentRecalls` and `aiSummary` fields are populated only when you enable the optional paid add-ons described in [Billing and limits](#billing-and-limits); otherwise they are `null`.

Every medical device cleared for the US market goes through a 510(k) premarket notification. This FDA 510(k) clearance scraper returns those medical device clearance records with the applicant company, device name, decision, product classification and location, then enriches each one with device class, CFR regulation number and medical specialty. Use it for medical device competitive intelligence, FDA regulatory monitoring, supplier due diligence, and building clean applicant lead lists. Two optional paid add-ons go further: an applicant regulatory profile (same-company clearance track record plus linked device recalls) and an AI plain-English clearance summary for non-expert buyers.

**📥 [Input](https://apify.com/scrapers_lat/fda-510k-clearances-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/fda-510k-clearances-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/fda-510k-clearances-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/fda-510k-clearances-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-United%20States-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Table of contents

- [What it does](#what-it-does)
- [Use cases](#use-cases)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing and limits](#billing-and-limits)
- [FAQ and troubleshooting](#faq-and-troubleshooting)

### What it does

The actor queries the official FDA 510(k) premarket notification database, applies whichever filters you pass as input, paginates through the matching clearances, and writes one normalized record per clearance to the run's dataset. Dates are normalized to `YYYY-MM-DD`, missing source values are returned as `null`, and each record is enriched from the FDA device classification so you get `deviceClass`, `regulationNumber`, `genericDeviceName` and `medicalSpecialtyDescription` without a second lookup. Two derived fields are added on top: `reviewDays` (calendar days from submission to decision) and `clearanceUrl` (a direct link to the official 510(k) database entry).

Coverage is the full US 510(k) clearance database (well over 175,000 records going back decades). This is the premarket clearance dataset, which is distinct from device adverse events, device recalls and device establishment registrations.

### Use cases

- **Medical device competitive intelligence**: track new 510(k) clearances by a competitor, product code or medical specialty to see what devices are entering the US market.
- **FDA regulatory monitoring**: watch a device category or advisory committee for fresh clearances and monitor review timelines with the derived `reviewDays` field.
- **Medical device sales leads**: build applicant lead lists with company name, contact and address, filtered by state, country or device type.
- **Supplier and vendor due diligence**: enable the applicant regulatory profile add-on to check a manufacturer's clearance track record and any linked device recalls before sourcing.
- **Market entry and regulatory strategy**: benchmark clearance types (Traditional, Special, Abbreviated) and review times for a product code before planning a submission.
- **Investor and M\&A research**: screen a target company's FDA clearance history and recall exposure to support diligence.
- **Plain-English clearance briefs**: enable the AI summary add-on to turn technical clearance records into buyer-friendly briefs for non-expert stakeholders.
- **Academic and journalist research**: analyze trends in device clearances by specialty, country of origin or decision over time.

### Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 most recent cardiovascular device clearances decided since 2023.

```json
{
  "advisoryCommittee": "Cardiovascular",
  "decisionFrom": "2023-01-01",
  "maxResults": 10
}
```

### Input reference

All inputs are optional. Set any combination of filters and they are combined with AND. Leave everything empty to pull the most recent clearances.

| Field | Type | Description |
| --- | --- | --- |
| `deviceName` | string | Match the cleared device trade / brand name, for example `insulin pump`. Exact phrase match. |
| `applicant` | string | Match the submitting company, for example `Medtronic`. Exact phrase match. |
| `productCode` | string | FDA three-letter product code, for example `DQY`. |
| `advisoryCommittee` | string | Medical specialty. A description such as `Cardiovascular`, or a two-letter code such as `CV`. |
| `state` | string | Two-letter US state code of the applicant, for example `CA`. |
| `countryCode` | string | Two-letter ISO country code of the applicant, for example `US`, `DE`, `CN`. |
| `clearanceType` | string | Review track, for example `Traditional`, `Special`, `Abbreviated`. |
| `decisionFrom` | string | Only clearances with a decision date on or after this date (`YYYY-MM-DD`). |
| `decisionTo` | string | Only clearances with a decision date on or before this date (`YYYY-MM-DD`). |
| `expeditedOnly` | boolean | Only clearances that went through expedited review. |
| `thirdPartyOnly` | boolean | Only clearances reviewed by an accredited third-party organization. |
| `searchQuery` | string | Advanced: a raw FDA search expression combined (AND) with the filters above, for example `decision_code:SESE`. |
| `withApplicantProfile` | boolean | Paid add-on (default off). Build each applicant's regulatory profile: total and recent same-company 510(k) clearances plus linked device recalls. $0.012 per clearance, billed only when built. Disabled for free plans. |
| `withAiSummary` | boolean | Paid add-on (default off). Add an AI plain-English summary of each clearance. $0.012 per clearance, billed only on a usable summary. Disabled for free plans. |
| `sort` | string | Sort expression. Defaults to `decision_date:desc` (newest first). |
| `maxResults` | integer | Maximum clearances to collect. Free Apify plans are capped at 10 per run. |
| `proxyConfiguration` | object | Optional proxy. The source is an open API and needs no proxy. |

### Output reference

One record per clearance. Fields:

| Field | Description |
| --- | --- |
| `kNumber` | 510(k) number, for example `K252812`. |
| `deviceName` | Device trade / brand name. |
| `applicant` | Company that submitted the 510(k). |
| `contact` | Named contact person at the applicant. |
| `addressLine1`, `addressLine2` | Applicant street address. |
| `city`, `state`, `postalCode`, `countryCode` | Applicant location. |
| `decisionCode` | FDA decision code, for example `SESE`. |
| `decisionDescription` | Plain-language decision, for example `Substantially Equivalent`. |
| `decisionDate` | Date of the clearance decision. |
| `dateReceived` | Date the submission was received. |
| `reviewDays` | Derived: calendar days from `dateReceived` to `decisionDate`. |
| `productCode` | FDA three-letter product code. |
| `advisoryCommittee` | Two-letter advisory committee code. |
| `advisoryCommitteeDescription` | Medical specialty of the committee. |
| `clearanceType` | Review track. |
| `thirdPartyReview` | True if reviewed by an accredited third party. |
| `expeditedReview` | True if the review was expedited. |
| `statementOrSummary` | Whether a statement or a summary is on file. |
| `deviceClass` | Enrichment: FDA device class (`1`, `2` or `3`). |
| `genericDeviceName` | Enrichment: generic device name from the classification. |
| `medicalSpecialtyDescription` | Enrichment: medical specialty from the classification. |
| `regulationNumber` | Enrichment: CFR regulation number. |
| `feiNumber` | Enrichment: FDA Establishment Identifier, when present. |
| `registrationNumber` | Enrichment: FDA registration number, when present. |
| `clearanceUrl` | Derived: link to the official 510(k) database entry. |
| `applicantTotalClearances` | Add-on: total 510(k) clearances by the same applicant. `null` unless `withApplicantProfile` is on. |
| `applicantRecentClearances` | Add-on: up to 5 most recent clearances by the same applicant. `null` unless `withApplicantProfile` is on. |
| `applicantRecallCount` | Add-on: number of linked device recalls for the applicant firm. `null` unless `withApplicantProfile` is on. |
| `applicantRecentRecalls` | Add-on: up to 5 most recent device recalls for the applicant firm. `null` unless `withApplicantProfile` is on. |
| `aiSummary` | Add-on: AI plain-English summary of the clearance. `null` unless `withAiSummary` is on. |
| `observedAt` | ISO timestamp when the record was collected. |
| `error` | `null` on success. |

### Run via API and CLI

Run with the Apify CLI:

```bash
apify call scrapers_lat/fda-510k-clearances-scraper --input='{"applicant":"Medtronic","decisionFrom":"2023-01-01","maxResults":50}'
```

Start a run via the REST API:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~fda-510k-clearances-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"advisoryCommittee":"Cardiovascular","decisionFrom":"2023-01-01","maxResults":50}'
```

### Fetch results

Download the dataset as JSON, CSV or Excel:

```bash
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv" > clearances.csv
```

Replace `DATASET_ID` with the `defaultDatasetId` returned when the run starts.

### Billing and limits

This actor is billed pay per result: you are charged one `result` event per clearance record written to the dataset, and nothing when a run finds no matches or fails. Free Apify plans are capped at 10 results per run; upgrade for larger pulls. Very large filtered sets are paginated up to the source ceiling, so for bulk exports narrow by date range or another filter and page through.

Two optional add-on events are available, both off by default and disabled for free plans:

- **`applicant_profile` ($0.012 per clearance)**: enabled with `withApplicantProfile`. Makes extra FDA lookups to build the applicant's regulatory profile (same-company clearance track record plus linked device recalls). Charged only when the profile is built.
- **`ai_summary` ($0.012 per clearance)**: enabled with `withAiSummary`. Uses AI to produce a concise plain-English summary of the clearance for non-expert buyers. Charged only when a usable summary is produced, never on an empty or failed AI response.

Both add-ons respect your `maxTotalChargeUsd` spend limit.

### FAQ and troubleshooting

**Which database is this?** The FDA 510(k) premarket notification (clearance) database, covering devices cleared for the US market. It is separate from device adverse events, recalls, and establishment registrations.

**A run returned zero results.** Your filters matched no clearances. That is a normal, non-billable outcome, not an error. Loosen a filter or widen the date range.

**Why is my clearance count capped at 10?** Free Apify plans are capped at 10 results per run. Upgrade your plan for more.

**Can I search by company?** Yes, set `applicant`. It matches the submitting company name. Combine it with `decisionFrom` / `decisionTo` to get a company's recent clearances.

**How current is the data?** It reflects the latest FDA data refresh, typically updated weekly.

**Do I need a proxy or an API key?** No. The actor needs no key and no proxy. A proxy option is available if you prefer to route requests through one.

# Actor input Schema

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

Match the cleared device trade / brand name, for example insulin pump or catheter. Matched as an exact phrase against the 510(k) device name.

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

Match the company that submitted the 510(k), for example Medtronic or Abbott. Matched as an exact phrase against the applicant name.

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

FDA three-letter product code, for example DQY or LWS. Identifies the device type / classification.

## `advisoryCommittee` (type: `string`):

Medical specialty. Enter a specialty description such as Cardiovascular, Orthopedic or Radiology, or a two-letter committee code such as CV or OR.

## `state` (type: `string`):

Two-letter US state code of the applicant, for example CA or MA.

## `countryCode` (type: `string`):

Two-letter ISO country code of the applicant, for example US, DE or CN.

## `clearanceType` (type: `string`):

510(k) review track, for example Traditional, Special or Abbreviated.

## `decisionFrom` (type: `string`):

Only include clearances with a decision date on or after this date (YYYY-MM-DD).

## `decisionTo` (type: `string`):

Only include clearances with a decision date on or before this date (YYYY-MM-DD).

## `expeditedOnly` (type: `boolean`):

Only include clearances that went through expedited review.

## `thirdPartyOnly` (type: `boolean`):

Only include clearances reviewed by an accredited third-party review organization.

## `searchQuery` (type: `string`):

Power users: a raw openFDA search expression that is combined (AND) with the filters above, for example decision\_code:SESE or applicant:Boston.

## `withApplicantProfile` (type: `boolean`):

Opt-in paid add-on. For each clearance, makes extra openFDA calls to build the applicant's regulatory profile: total and 5 most recent 510(k) clearances by the same company, plus any linked device recalls (count and 5 most recent). Adds supplier due-diligence value. Billed at $0.012 per clearance, only when the profile is built. Disabled for free Apify plans.

## `withAiSummary` (type: `boolean`):

Opt-in paid add-on that uses AI to write a concise plain-English summary of each clearance (what the device is, its intended use and specialty, and the decision) for non-expert buyers. Billed at $0.012 per clearance, only when a usable summary is produced. Disabled for free Apify plans.

## `sort` (type: `string`):

openFDA sort expression. Defaults to newest decisions first.

## `maxResults` (type: `integer`):

Maximum number of clearances to collect. openFDA paginates with skip up to 25000, so for very large pulls narrow the filters or the date range. Free Apify plans are capped at 10 per run.

## `proxyConfiguration` (type: `object`):

Optional. openFDA is an open API and needs no proxy, but you can route requests through an Apify proxy if you prefer.

## Actor input object example

```json
{
  "expeditedOnly": false,
  "thirdPartyOnly": false,
  "withApplicantProfile": false,
  "withAiSummary": false,
  "sort": "decision_date:desc",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "sort": "decision_date:desc",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/fda-510k-clearances-scraper").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 = {
    "sort": "decision_date:desc",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/fda-510k-clearances-scraper").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 '{
  "sort": "decision_date:desc",
  "maxResults": 50
}' |
apify call scrapers_lat/fda-510k-clearances-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/9Wm79QKr38QXzOXPV/builds/rrEZX4rgl2m61pRNr/openapi.json
