# Korea Drug Database API - MFDS Medicine Info 의약품 정보 (`elabstudio/korea-drug-database`) Actor

South Korean drug and medicine database from official MFDS (식품의약품안전처) open data: approved products, English ingredients, company, OTC or Rx, label text (efficacy, dosage, precautions), consumer info and images.

- **URL**: https://apify.com/elabstudio/korea-drug-database.md
- **Developed by:** [E:LAB STUDIO](https://apify.com/elabstudio) (community)
- **Categories:** Developer tools, Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 drug products

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 Drug Database API: MFDS Medicine Info (의약품 정보)

Look up **South Korean approved medicines** from the official database of the Ministry of Food and Drug Safety (MFDS, 식품의약품안전처) and get clean JSON / CSV / Excel: product name in Korean and English, company, **active ingredients in English**, OTC or prescription, approval date and status, plus the **approved label text** (efficacy, dosage, precautions), storage, shelf life, packaging, barcodes, official PDF documents, pill images and MFDS's plain-language consumer summary (e약은요: what it is for, how to take it, warnings, interactions, side effects).

Search by Korean product name (`타이레놀`), English ingredient (`Ibuprofen`), company (`한미약품`) or MFDS item code. No Korean account, API key or scraping: the data comes from the official MFDS open APIs on the Korean public data portal.

### What you can use it for

- **Pharma market research and competitive intelligence**: every product containing an ingredient in Korea, who makes it, OTC vs prescription, approval dates.
- **Regulatory and market-entry work**: check how a molecule is approved and labelled in Korea before registering your own product.
- **Drug databases, health apps and AI assistants**: map Korean product names and barcodes to English ingredients and official label text.
- **Travellers and expats**: find what a Korean pharmacy product contains (always check with a pharmacist).
- **Pharmacovigilance and research**: approval status, cancellations, label change history.

### Input

| Field | Example | Notes |
|---|---|---|
| `productNames` | `["타이레놀", "게보린"]` | Korean product names or parts of them. |
| `ingredients` | `["Ibuprofen", "Metformin Hydrochloride"]` | English ingredient names as registered at MFDS (INN). Returns every product that contains it. |
| `companies` | `["한미약품", "유한양행"]` | Korean company names. |
| `itemSeqs` | `["202106092"]` | 9-digit MFDS item codes (품목기준코드). |
| `drugType` | `otc` | `all`, `otc` (일반의약품) or `rx` (전문의약품). |
| `includeCancelled` | `false` | Include withdrawn or cancelled approvals. |
| `maxItemsPerQuery` / `maxItems` | `50` / `0` | Limits per search and in total (`0` = no limit). |
| `includeLabel` | `true` | Approved efficacy, dosage and precautions text, appearance, composition, storage, shelf life, packaging, barcodes, PDF links. |
| `includeIngredients` | `true` | Each active ingredient with English and Korean name, amount and unit. |
| `includeEasyInfo` | `true` | MFDS plain-language summary and pill image (available for common medicines). |

Example: every ibuprofen product sold over the counter in Korea

```json
{ "ingredients": ["Ibuprofen"], "drugType": "otc", "maxItemsPerQuery": 500 }
```

Example: all prescription products of one company, without label text (fast)

```json
{ "companies": ["한미약품"], "drugType": "rx", "includeLabel": false, "includeEasyInfo": false, "maxItemsPerQuery": 1000 }
```

### Output example

```json
{
  "query": "타이레놀",
  "query_type": "product_name",
  "item_seq": "202106092",
  "product_name_ko": "타이레놀정500밀리그람(아세트아미노펜)",
  "product_name_en": "Tylenol Tablet 500mg",
  "company_ko": "켄뷰코리아판매유한회사",
  "company_en": "Kenvue Korea Selling & Distribution LLC",
  "drug_type": "OTC",
  "drug_type_ko": "일반의약품",
  "category_ko": "해열.진통.소염제",
  "category_code": "01140",
  "ingredients_en": "Acetaminophen",
  "permit_date": "2021-08-23",
  "status": "active",
  "image_url": "https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/1OKRXo9l4D5",
  "mfds_url": "https://nedrug.mfds.go.kr/pbp/CCBBB01/getItemDetail?itemSeq=202106092",
  "appearance_ko": "흰색의 장방형 필름코팅정제",
  "efficacy_ko": "1. 주효능·효과\n감기로 인한 발열 및 동통(통증), 두통, 신경통, 근육통, 월경통, 염좌통(삔 통증)\n\n2. 다음 질환에도 사용할 수 있다.\n치통, 관절통, 류마티양 동통(통증)",
  "dosage_ko": "만 12세 이상 소아 및 성인:\n1회 1~2정씩 1일 3-4회 (4-6시간 마다) 필요시 복용한다. ...",
  "precautions_ko": "1. 경고\n1) 매일 세잔 이상 정기적으로 술을 마시는 사람이 ...",
  "storage_ko": "밀폐용기, 실온보관(1-30℃)",
  "shelf_life_ko": "제조일로부터 36 개월",
  "barcodes": ["8806469025705", "8806469025712"],
  "efficacy_pdf": "https://nedrug.mfds.go.kr/pbp/cmn/pdfDownload/202106092/EE",
  "active_ingredients": [{ "name_en": "Acetaminophen", "name_ko": "아세트아미노펜", "amount": "500", "unit_ko": "밀리그램", "ingredient_code": "M040353" }],
  "has_easy_info": true,
  "easy_efficacy_ko": "이 약은 감기로 인한 발열 및 동통(통증), 두통, ...에 사용합니다.",
  "easy_interactions_ko": "...",
  "easy_side_effects_ko": "...",
  "source": "MFDS (식품의약품안전처) via data.go.kr",
  "scraped_at": "2026-11-09T05:45:00.000Z"
}
```

Label and consumer texts are the official Korean texts published by MFDS (kept as is, so nothing is lost in translation). Use your own translation step if you need them in English; names, ingredients, companies and codes are already in English.

### Pricing

- **$3 per 1,000 drug products** ($0.003 each), including label details, ingredient breakdown and consumer info.
- Plus a tiny start fee ($0.00005). Set a maximum cost per run in Apify and the run stops when it is reached.

### FAQ

**Can I search by English ingredient?** Yes. Use the English (INN) name as registered in Korea, e.g. `Acetaminophen`, `Ibuprofen`, `Amoxicillin Hydrate`. Capitalisation is handled for you.

**Can I search by English brand name?** The official search works on Korean product names. Many products also carry a registered English name (`product_name_en`), but search with the Korean name or the ingredient.

**Why do some products have no consumer summary (e약은요)?** MFDS writes the plain-language summary for commonly used medicines only. The approved label text (`efficacy_ko`, `dosage_ko`, `precautions_ko`) is available for nearly all products.

**Does it include prices or reimbursement?** No, this is the approval and label database. `edi_code` (insurance code) is included when MFDS provides it.

**How fresh is the data?** Every run queries MFDS live.

**Is this medical advice?** No. This is reference data from the regulator for research and software. It is not medical advice; always follow a doctor's or pharmacist's guidance.

### Source and license

Data: Ministry of Food and Drug Safety (식품의약품안전처) open APIs on the Korean public data portal ([data.go.kr](https://www.data.go.kr)):

- 식품의약품안전처_의약품 제품 허가정보 (https://www.data.go.kr/data/15095677/openapi.do)
- 식품의약품안전처_의약품개요정보(e약은요) (https://www.data.go.kr/data/15075057/openapi.do)

Both are published with the usage scope "이용허락범위 제한 없음" (no restriction on use, commercial use allowed). Source: 식품의약품안전처, 공공데이터포털. This Actor is not affiliated with MFDS.

# Actor input Schema

## `productNames` (type: `array`):

Korean product names or parts of them, e.g. 타이레놀, 게보린, 아목시실린. Matches any product whose name contains the text.

## `ingredients` (type: `array`):

English ingredient names as registered at MFDS, e.g. Acetaminophen, Ibuprofen, Metformin Hydrochloride. Returns every product containing it.

## `companies` (type: `array`):

Korean company names, e.g. 한미약품, 유한양행, 종근당.

## `itemSeqs` (type: `array`):

9-digit MFDS item codes, e.g. 202106092.

## `drugType` (type: `string`):

Only OTC (일반의약품) or only prescription (전문의약품) products, or all.

## `includeCancelled` (type: `boolean`):

Products whose approval was cancelled, withdrawn or expired. Off by default.

## `maxItemsPerQuery` (type: `integer`):

Stop after this many products for each name, ingredient or company.

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

0 = no limit.

## `includeLabel` (type: `boolean`):

Approved efficacy, dosage and precautions text, appearance, composition, storage, shelf life, packaging, barcodes and links to the official PDF documents.

## `includeIngredients` (type: `boolean`):

Each active ingredient with English and Korean name, amount and unit.

## `includeEasyInfo` (type: `boolean`):

MFDS consumer summary for common medicines: what it is for, how to take it, warnings, interactions, side effects, storage and pill image.

## Actor input object example

```json
{
  "productNames": [
    "타이레놀"
  ],
  "drugType": "all",
  "includeCancelled": false,
  "maxItemsPerQuery": 50,
  "maxItems": 0,
  "includeLabel": true,
  "includeIngredients": true,
  "includeEasyInfo": true
}
```

# Actor output Schema

## `products` (type: `string`):

Product overview table.

## `label` (type: `string`):

Efficacy, dosage, warnings, interactions and side effects.

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

Input and result counts.

# 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 = {
    "productNames": [
        "타이레놀"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("elabstudio/korea-drug-database").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 = { "productNames": ["타이레놀"] }

# Run the Actor and wait for it to finish
run = client.actor("elabstudio/korea-drug-database").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 '{
  "productNames": [
    "타이레놀"
  ]
}' |
apify call elabstudio/korea-drug-database --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,elabstudio/korea-drug-database"
        }
    }
}
```

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/fT3QiogCl1FRh4ZbH/builds/XeQZvDIjklu5UBa8Z/openapi.json
