# Korea Medical Device Approval Lookup (MFDS 의료기기 품목허가) (`kr-data/korea-medical-device-approval`) Actor

Is this medical device approved in South Korea? MFDS product approvals, certifications and notifications: approval number, date, risk class, license holder, manufacturer, models, status. Search by company, product, model or number, or list new approvals.

- **URL**: https://apify.com/kr-data/korea-medical-device-approval.md
- **Developed by:** [KR Data](https://apify.com/kr-data) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 device approval records

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

## Korea Medical Device Approval Lookup (MFDS 의료기기 품목허가)

Check **whether a medical device is approved, certified or notified for sale in South Korea**, using the official product approval list of the **Ministry of Food and Drug Safety** (식품의약품안전처, MFDS) — about 214,000 device records since 1998, updated daily. Each record gives:

- the **approval number and date**, and the regulatory **pathway** — approval (허가), certification (인증) or notification (신고) — plus whether the device is **made in Korea or imported** and whether it is an **in-vitro diagnostic**
- the Korean **risk class** (1-4) and MFDS **classification code**
- the **Korean license holder** (manufacturer or importer) and its business registration number
- the **legal manufacturer / brand owner** and the **manufacturing site** for imported and contract-made devices (usually in English, e.g. *Becton, Dickinson and Company*)
- the registered **models**, the **intended use**, and whether the approval is still **active**

Search by Korean company, business number, device name, model number or approval number — or leave every filter empty to get the **newest approvals** (a daily feed of what MFDS approved this week). **No API key or Korean account needed.**

### Typical uses

- **Regulatory affairs (RA) consultants and foreign manufacturers** — confirm that a competitor's or partner's device is registered in Korea, and under which class and pathway.
- **Distributors, hospitals and e-commerce platforms** — verify the approval number a seller quotes before listing or buying a device.
- **Market intelligence** — watch new Korean approvals by device type or company every week.
- **AI agents** — "Is Medtronic's model 8815642001 still registered in Korea?", "What medical devices did MFDS approve this week?"

### Input

| Field | Description |
|---|---|
| `companyName` | Part of the Korean license holder name, e.g. `메드트로닉` (Medtronic Korea). Spaces are ignored; leave out `(주)`/`(유)`. |
| `businessNumber` | 10-digit business registration number of the license holder, e.g. `120-86-07387`. |
| `productName` | Part of the Korean generic device name, e.g. `봉합사` (suture), `스텐트` (stent). |
| `modelName` | Part of a registered model name or catalogue number, e.g. `8815642001`. |
| `approvalNumber` | MFDS number, e.g. `제허 26-745 호` or `수인20-4327호` (spaces optional). |
| `approvedWithinDays` | Only approvals dated in the last N days. With no other filter: newest approvals, default 7, at most 365. With a filter: optional (all years). |
| `activeOnly` | `true` = leave out cancelled, withdrawn or lapsed approvals. Default `false`. |
| `maxResults` | Stop after this many records, newest approval first (1-1000). Default 50. |

Filters combine (AND). Examples:

```json
{ "companyName": "메드트로닉", "modelName": "8815642001" }
```

```json
{ "approvedWithinDays": 7, "maxResults": 300 }
```

### Output

One item per approval record, newest approval first:

```json
{
  "status": "active",
  "productName": "유세포분석용혈구검사시약",
  "approvalNumber": "체외 수인 26-4702 호",
  "approvalDate": "2026-10-08",
  "pathway": "certification",
  "pathwayKo": "인증",
  "origin": "imported",
  "inVitroDiagnostic": true,
  "riskClass": 2,
  "classificationCode": "J09040.01",
  "models": "664452",
  "intendedUse": "사람의 말초혈액(EDTA처리 전혈)에서 CD117 항원 발현세포의 백분율을 유세포분석법으로 정성하여 혈액성분분석에 도움을 주는 체외진단의료기기",
  "licenseHolder": "벡톤디킨슨코리아(주)",
  "businessNumber": "201-81-45458",
  "legalManufacturer": "Becton, Dickinson and Company, BD Biosciences",
  "manufacturingSite": "Becton Dickinson Caribe, Ltd.",
  "inactive": null,
  "itemSeq": "2026006972",
  "lastChanged": "2026-10-08",
  "source": "Ministry of Food and Drug Safety (식품의약품안전처) medical device product approval list, via data.go.kr 15057456",
  "checkedAt": "2026-10-12T13:40:11+00:00"
}
```

| `status` | Meaning |
|---|---|
| `active` | The approval is in force (billed). |
| `inactive` | The approval was cancelled, withdrawn or has lapsed; `inactive.code` and `inactive.date` say when (billed). |
| `lookup_failed` | The official list did not answer; retry later (free). |

An invalid input (malformed business or approval number, out-of-range numbers) stops the run with a message and is free. No match means an empty result and no charge.

Field notes:

- `pathway` and `origin` are read from the approval number: 제 = made in Korea, 수 = imported; 허 = approval (mostly class 3-4), 인 = certification (class 2), 신 = notification (class 1). Very old numbers without the 제/수 prefix give `origin: null`.
- `legalManufacturer` is the company that ordered the manufacture (제조의뢰자) — for imports usually the foreign brand owner; `manufacturingSite` is the producer (제조자). Both are empty for most devices made in Korea.
- `models` is the model list as published; long lists end with `외 N건` (= "and N more").

### Limits — what is not included

- **Search terms must be Korean** (company and device names), except model numbers and approval numbers. Foreign manufacturer names (e.g. "Medtronic") are returned but **cannot be searched** at the source — search the Korean importer (`메드트로닉`) or a model number instead.
- **Device names, intended use and company names are in Korean**, as published; field names and labels are English.
- **MFDS does not publish the meaning of the inactive codes** (`inactive.code` 1, 2, 5, 6), so the Actor reports them as-is rather than guessing between cancellation, withdrawal and expiry. In the data, code 5 records typically end exactly five years after approval (lapsed without renewal).
- Not included: UDI/barcodes, approval conditions and attached documents, change history, recalls (see [Korea Drug & Medical Device Recalls](https://apify.com/kr-data/korea-health-recalls)) and GMP certificates.
- A run reads at most 15,000 source rows; very broad searches (e.g. one letter of a device name) stop there — narrow the filters.

### Pricing

Pay per record returned: **$0.002 per device approval record** (`device-record`), active or inactive. Use `maxResults` to cap a run. Empty results, invalid inputs and failed lookups are free.

### Use as an MCP tool (Claude, Cursor, other AI agents)

Add the Apify MCP server with this Actor:

```
https://mcp.apify.com?tools=kr-data/korea-medical-device-approval
```

### Source and license

식품의약품안전처_의료기기 품목허가 정보 (data.go.kr 15057456), 이용허락범위 제한 없음. Data is passed through unchanged except for English field names and labels, the pathway/origin/IVD labels read from the approval number, and date and business-number formatting.

### More Korean data from KR Data

- [Korea Drug & Medical Device Recalls](https://apify.com/kr-data/korea-health-recalls) — recent MFDS recalls and sales suspensions
- [Korea HS Code Import Requirements](https://apify.com/kr-data/korea-hs-import-requirements) — customs permits and certificates per HS code
- [Korea Business Check (KYB)](https://apify.com/kr-data/korea-business-verify) — business registration status, company profile, financials
- [Korea Company Headcount](https://apify.com/kr-data/korea-company-headcount) — monthly National Pension headcount, hires and leavers
- [Korea Online Seller Registration Check](https://apify.com/kr-data/korea-ecommerce-seller-registry) — mail-order business registration (통신판매업) by business number
- [Korea Financial Company Lookup](https://apify.com/kr-data/korea-financial-institution-registry) — Korean banks, brokers and insurers with IDs and audit opinion
- [Korean Address to English](https://apify.com/kr-data/korea-address) — official English address and postal code
- [Korean Law in English](https://apify.com/kr-data/korea-law) — official English text of Korean statutes
- [Korea Flood-Damaged Car Check](https://apify.com/kr-data/korea-flood-car-check) — flood-damage insurance records by license plate

# Actor input Schema

## `companyName` (type: `string`):

Optional. The Korean company that holds the approval (manufacturer or importer), in Korean, e.g. 메드트로닉코리아 or 메드트로닉. Spaces are ignored; do not include (주) or (유). Foreign manufacturer names are not searchable at the source; search the Korean importer instead.

## `businessNumber` (type: `string`):

Optional. 10-digit Korean business registration number of the license holder, e.g. 120-86-07387.

## `productName` (type: `string`):

Optional. Korean generic device name (품목명) or part of it, e.g. 봉합사 (suture), 스텐트 (stent), 인공무릎관절 (knee prosthesis). Spaces are ignored.

## `modelName` (type: `string`):

Optional. Model name or catalogue number as registered, e.g. 8815642001. Matched as part of the model list.

## `approvalNumber` (type: `string`):

Optional. MFDS approval, certification or notification number, e.g. 제허 26-745 호 or 수인 20-4327 호. Spaces are optional.

## `approvedWithinDays` (type: `integer`):

Only approvals dated in the last N days. With no other filter this lists the newest approvals (default 7, at most 365). With a filter it is optional (default: all years).

## `activeOnly` (type: `boolean`):

Leave out approvals that were cancelled, withdrawn or have lapsed. Default false (they are returned with status inactive).

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

Stop after this many approval records (1-1000), newest approval first. Each record is billed. Default 50.

## Actor input object example

```json
{
  "activeOnly": false,
  "maxResults": 20
}
```

# Actor output Schema

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

One item per device approval record, newest approval first.

# 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 = {
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("kr-data/korea-medical-device-approval").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 = { "maxResults": 20 }

# Run the Actor and wait for it to finish
run = client.actor("kr-data/korea-medical-device-approval").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 '{
  "maxResults": 20
}' |
apify call kr-data/korea-medical-device-approval --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kr-data/korea-medical-device-approval"
        }
    }
}
```

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/1jJDtJma9gtIy6hYe/builds/hGhnqMUoPVNjPDnFB/openapi.json
