# Musinsa Scraper — K-Fashion Rankings & Reviews \[💰 $2/1K] (`cocomoon/musinsa-scraper`) Actor

Scrape Musinsa (musinsa.com), Korea's #1 fashion platform: keyword search, official best-seller rankings by category, gender and age, and every review with size fit plus reviewer height and weight. Prices, discounts, ratings, likes and English brand names as clean JSON. No login.

- **URL**: https://apify.com/cocomoon/musinsa-scraper.md
- **Developed by:** [PARK MOONNAM](https://apify.com/cocomoon) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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

## Musinsa Scraper — K-Fashion Products, Rankings & Reviews

Scrape **Musinsa (musinsa.com)** — Korea's #1 online fashion platform, where Korean streetwear, K-fashion brands and global labels like Nike, Adidas and Arc'teryx compete for Gen Z shoppers. Search any keyword, pull the official **best-seller ranking** by category, gender, age group and period, or collect **every customer review** of a product — including size fit and the reviewer's **height and weight**. Clean JSON, no login, no browser.

### Why this data is special

- 🏆 **The real K-fashion best-seller list** — Musinsa's own ranking, filterable by category (outerwear, sneakers, denim, beauty…), gender, age band (teens, 20–24, 25–29 …) and period (real-time, daily, weekly, monthly)
- 📏 **Size-fit reviews with body data** — every review carries structured answers ("정사이즈 / true to size", "작아요 / runs small") plus the reviewer's height (cm) and weight (kg) when shared. This is gold for sizing models and fit analytics
- ❤️ **Demand signals beyond price** — likes (wishlist) count, review count, rating, discount depth, "N people viewing now" live stats and "급상승 / rising fast" labels
- 🌐 **English brand names & categories** — each product is enriched with the English brand name, style number, brand country, season year and a 3-level category

### ⚡ Try it in 30 seconds (free)

1. Click **Try for free** — the input is pre-filled with the keyword `가디건` (cardigan).
2. Click **Start**. 50 products with full details take about 10 seconds.
3. Open **Output** and sort by `likeCount` or `reviewCount`. Export as JSON, CSV or Excel.

Want the best-seller list instead? Set **Mode** to *Best-seller ranking*, keep category `000` (all) and run again.

Apify's free plan includes $5 of monthly credit, no card required.

### 📊 What the data shows (September 2026 sample)

I ran this Actor in ranking mode — all categories, **weekly** ranking, top 100 products — on 16 September 2026:

| # | Brand | Product | Price | Discount | Likes |
| --- | --- | --- | --- | --- | --- |
| 1 | DEUS EX MACHINA | Seoul College Address Zip Hoodie | ₩178,000 | 0% | 2,872 |
| 2 | TRILLION | Essential crop long-sleeve tee, 7 colors | ₩19,990 | 49% | 14,429 |
| 3 | NEW BALANCE | NB Rover sandal | ₩139,000 | 0% | 1,705 |
| 4 | ARC'TERYX | Squamish hoody (men) | ₩294,500 | 5% | 390 |
| 5 | ADIDAS | Classic track top, pink | ₩105,000 | 0% | 203 |
| 6 | DIMITRI BLACK | Comfortemp mid-weight padding | ₩79,900 | 40% | 6,854 |
| 7 | THE NORTH FACE | Novelty Olema EX jacket | ₩188,000 | 0% | 989 |
| 8 | ALYSS | Denim layered crop knit | ₩66,600 | 10% | 6,158 |

Findings from one run:

- **Outerwear already owns September** — 43 of the top 100 are jackets, zip hoodies and light padding; tops are 22
- **Korean brands dominate** — 59 of 100 are Korean labels, followed by US (15), Canadian (8) and German (8) brands
- **58 of 100 are Musinsa-exclusive products**, and 78 are discounted (22% average discount among those)
- Median price is **₩98,910 (~$70)**; most-represented brands are Adidas (8), Arc'teryx (7) and Musinsa Standard Woman (7)

That is the kind of answer you get from one 10-second run — for any category, gender or age group, any day.

### What you can do with it

- 🔍 **Trend & brand tracking** — schedule the weekly ranking per category and watch which brands rise
- 👕 **Sizing & fit analytics** — build size recommendation models from reviews with height, weight and "runs small / large" answers
- 💰 **Price & discount monitoring** — normal price, sale price, coupon price and final price per product
- 🌏 **K-fashion market entry research** — see which price points, categories and brands win with Korean Gen Z
- 🤖 **Feed AI agents & dashboards** — clean JSON for Sheets, BI tools, RAG pipelines or MCP agents

### Modes

#### 1. Search mode (`mode: "search"`)

Search products by keyword (Korean or English: `가디건`, `cardigan`, `나이키`, `denim jacket`). Sort by recommended, newest, price, discount, review count, or **best-selling over 1 day / 1 week / 1 month / 3 months / all time**. Filter by gender. Paginates automatically through all results.

#### 2. Ranking mode (`mode: "ranking"`)

Musinsa's official best-seller ranking. Choose category codes, gender (`A`/`M`/`F`), age band and period.

Main category codes: `000` all · `001` tops · `002` outerwear · `003` pants · `100` dresses & skirts · `103` shoes · `004` bags · `120` hats · `101` accessories · `104` beauty · `026` underwear & homewear · `017` sports & leisure · `102` digital & life · `106` kids.

Popular sub-categories: `002020` cardigans · `002022` zip hoodies · `002027` light padding · `002012` short padding · `001005` sweatshirts · `001006` knitwear · `001010` long-sleeve tees · `003002` denim pants · `003004` jogger pants · `003008` slacks · `103004` sneakers · `103002` boots · `104001` skincare · `104015` lip makeup.

#### 3. Reviews mode (`mode: "reviews"`)

Collect customer reviews for products (goods numbers such as `6957177` or product URLs). Returns every review — there is no artificial cap unless you set one — with text, 1–5 star rating, date, purchased option (size/color), structured survey answers (size fit, color vs screen, quality, width, comfort…), reviewer gender, height and weight, helpful count and photo URLs. Sort by newest, most helpful, highest or lowest rating; optionally photo reviews only.

### Example input

```json
{ "mode": "search", "keywords": ["가디건", "denim jacket"], "sortBy": "SALE_ONE_WEEK_COUNT", "maxItems": 200 }
```

```json
{ "mode": "ranking", "rankingCategories": ["002", "103004"], "gender": "F", "rankingAgeBand": "AGE_BAND_20", "rankingPeriod": "WEEKLY", "maxItems": 200 }
```

```json
{ "mode": "reviews", "products": ["https://www.musinsa.com/products/6957177"], "reviewSort": "new", "maxItems": 5000 }
```

### Output fields

#### Products (search & ranking)

| Field | Description |
| --- | --- |
| `goodsNo` | Musinsa goods number (use it for reviews mode) |
| `name` / `nameEnglish` | Product name (Korean/original) and English name when provided |
| `brand` / `brandName` / `brandNameEnglish` | Brand slug, Korean brand name, English brand name |
| `url`, `image` | Product page and thumbnail URL |
| `normalPrice`, `salePrice`, `couponPrice`, `finalPrice` | Prices in KRW |
| `discountRate`, `finalDiscountRate` | Discount % (sale / including coupon) |
| `rating`, `reviewScore100`, `reviewCount` | Rating on a 5-point scale, Musinsa's 0–100 score, number of reviews |
| `likeCount` | Wishlist "likes" |
| `position` / `rank` | Position in search results / best-seller rank |
| `category1`, `category2`, `category3`, `categoryCode` | Category path |
| `gender`, `styleNo`, `brandCountry`, `seasonYear` | Target gender, style number, brand origin, season year |
| `isSoldOut`, `isAd`, `isPlusDelivery`, `isMusinsaExclusive` | Flags |
| `labels`, `liveStats` | Ranking badges ("급상승" = rising fast) and live stats ("1.2천명이 보는 중" = 1.2K viewing now) |

#### Reviews

| Field | Description |
| --- | --- |
| `reviewId`, `goodsNo`, `productName`, `brandNameEnglish`, `totalReviews` | Review and product identifiers |
| `rating`, `text`, `date`, `reviewType` | 1–5 stars, review text, ISO date, general/style/photo review |
| `purchasedOption` | Option the reviewer bought, e.g. `M`, `270`, `BLACK / L` |
| `size`, `colorVsScreen`, `attributes` | Size fit answer, color accuracy answer, all survey answers |
| `reviewerGender`, `reviewerHeightCm`, `reviewerWeightKg` | Body profile when the reviewer shared it |
| `helpfulCount`, `commentCount`, `images` | Helpful votes, comments, photo URLs |

### Example output (ranking)

```json
{
    "rank": 1,
    "goodsNo": 7091307,
    "name": "Seoul College Address Zip Hoodie_Black",
    "brandName": "데우스 엑스 마키나",
    "brandNameEnglish": "DEUS EX MACHINA",
    "url": "https://www.musinsa.com/products/7091307",
    "normalPrice": 178000,
    "finalPrice": 178000,
    "discountRate": 0,
    "currency": "KRW",
    "rating": 5,
    "reviewCount": 6,
    "likeCount": 2872,
    "labels": ["급상승"],
    "liveStats": ["1.2천명이 보는 중"],
    "category1": "아우터",
    "category2": "후드 집업",
    "categoryCode": "002022",
    "styleNo": "D261UZH910099",
    "brandCountry": "AUSTRALIA",
    "gender": "남성/여성",
    "isSoldOut": false
}
```

### Example output (review)

```json
{
    "goodsNo": 6957177,
    "productName": "패스트 앤 프리 하프 타이츠 8inch *업데이트 디자인  BLK BLK",
    "brandName": "룰루레몬",
    "brandNameEnglish": "LULULEMON",
    "reviewId": 87506457,
    "totalReviews": 106,
    "rating": 5,
    "text": "구형 대비해서 더 부드랍고 수납력이 좋아져서 대 만족 합니다",
    "date": "2026-09-15T17:31:09.000+09:00",
    "purchasedOption": "Black · S",
    "reviewerGender": "남성",
    "reviewerHeightCm": 170,
    "reviewerWeightKg": 58,
    "images": ["https://image.msscdn.net/data/estimate/6957177_0/ef4c4931eaad4ca998b4d9eb56043621.jpg"]
}
```

Survey answers (`size`, `attributes` such as size fit, width, comfort) are filled when Musinsa asks them for that product category — for example shoes return `"size": "정사이즈"` and `[{ "name": "발볼 넓이", "answer": "보통" }, …]`. Reviewer height/weight are filled when the reviewer saved a body profile (40/40 on the product above).

### Q\&A

**How do I get Musinsa data as JSON?**
Run this Actor with a keyword, a ranking category or a product number. Every result is stored in an Apify dataset you can download as JSON, CSV or Excel, or fetch from the Apify API (`/datasets/{id}/items?format=json`). You can also call it from Python, JavaScript, Make, Zapier, n8n or an MCP-enabled AI agent.

**Does it need a Korean IP?**
No. Musinsa's public product, ranking and review data is reachable with the default Apify proxy (tested September 2026). If you ever get blocked, switch the proxy to Residential with country `KR`.

**Do I need a Musinsa account?**
No. The Actor uses only public data — no login, no cookies, no CAPTCHA solving.

**How much does it cost?**
You pay per result (see the Pricing tab). Runs are lightweight HTTP requests with no headless browser, so they are fast — about 100 fully enriched products in 10 seconds.

**Does it get all reviews?**
Yes — reviews paginate until the last page. Use `maxReviewsPerProduct` or `maxItems` if you only want a sample.

**Are the prices in USD?**
Prices are in KRW exactly as shown on Musinsa. Multiply by the current exchange rate (≈ ₩1,400 per USD) if needed.

**Can I schedule it?**
Yes — use Apify Schedules for daily or weekly ranking snapshots and send the dataset to Google Sheets, S3, a webhook or your AI agent.

**Is this legal?**
The Actor collects publicly available product listings and reviews. Reviewer IDs and nicknames are not collected. You are responsible for using the data in compliance with applicable laws and Musinsa's terms.

### Why this Actor

- **Built by a Korean marketing practitioner** — I work with Korean e-commerce and fashion brands daily, so fields are labeled the way the platform actually works
- **Three modes in one Actor** — search, rankings and reviews share the same product IDs, so you can go from "what's trending" to "what buyers say about fit" in two runs
- **Fast and affordable** — Musinsa's own JSON endpoints, no headless browser

### More Korean data Actors by me

- [Olive Young Scraper](https://apify.com/cocomoon/oliveyoung-scraper) — K-beauty product search with prices, ratings and review counts.
- [Olive Young Reviews Scraper](https://apify.com/cocomoon/oliveyoung-review-scraper) — K-beauty customer reviews with skin type/tone/concern profiles and repurchase flags.
- [Daiso Korea Scraper](https://apify.com/cocomoon/daiso-scraper) — Daiso products with real total units sold, prices and reviews.

Something broken or missing? Open an issue on this Actor — I respond quickly.

***

*Keywords: Musinsa scraper, musinsa.com API, Musinsa ranking, Musinsa reviews, K-fashion data, Korean fashion scraper, Korean streetwear trends, size fit reviews, 무신사 크롤러, 무신사 랭킹, 무신사 리뷰 수집*

# Actor input Schema

## `mode` (type: `string`):

What to scrape: <b>search</b> — products by keyword (prices, discounts, rating, review count, likes, category); <b>ranking</b> — Musinsa best-seller ranking by category, gender, age group and period; <b>reviews</b> — all customer reviews of specific products (text, stars, size fit, reviewer height/weight, photos).

## `keywords` (type: `array`):

Search mode: keywords to search. Korean and English both work — e.g. <code>가디건</code>, <code>cardigan</code>, <code>나이키</code>, <code>denim jacket</code>.

## `sortBy` (type: `string`):

Search mode: sort order of results. The best-selling options rank by units sold in that window.

## `gender` (type: `string`):

Search and ranking modes: all, men or women products.

## `rankingCategories` (type: `array`):

Ranking mode: Musinsa category codes. <code>000</code> all, <code>001</code> tops, <code>002</code> outerwear, <code>003</code> pants, <code>100</code> dresses/skirts, <code>103</code> shoes, <code>004</code> bags, <code>120</code> hats, <code>101</code> accessories, <code>104</code> beauty, <code>026</code> underwear/homewear, <code>017</code> sports, <code>102</code> digital/life, <code>106</code> kids. Sub-categories use 6 digits, e.g. <code>002020</code> cardigans, <code>003002</code> denim pants, <code>103004</code> sneakers, <code>104001</code> skincare. Full list in the README.

## `rankingPeriod` (type: `string`):

Ranking mode: time window of the ranking.

## `rankingAgeBand` (type: `string`):

Ranking mode: shopper age group.

## `products` (type: `array`):

Reviews mode: Musinsa goods numbers (e.g. <code>6957177</code>) or product URLs (e.g. <code>https://www.musinsa.com/products/6957177</code>). Get goods numbers from a search or ranking run (<code>goodsNo</code> field).

## `reviewSort` (type: `string`):

Reviews mode: order in which reviews are collected.

## `photoReviewsOnly` (type: `boolean`):

Reviews mode: collect only reviews that include photos.

## `maxReviewsPerProduct` (type: `integer`):

Reviews mode: cap per product. <code>0</code> = no cap (every review, limited only by Max items).

## `includeDetails` (type: `boolean`):

Search and ranking modes: also fetch each product's detail data — English brand name, English product name, category, style number, brand country, season and exact rating. Slightly slower; turn off for maximum speed.

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

Maximum number of results in total (products or reviews) across all keywords, categories or products.

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

Proxies to use. The default Apify proxy works in most cases.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "가디건"
  ],
  "sortBy": "POPULAR",
  "gender": "A",
  "rankingCategories": [
    "000"
  ],
  "rankingPeriod": "REALTIME",
  "rankingAgeBand": "AGE_BAND_ALL",
  "products": [
    "6957177"
  ],
  "reviewSort": "new",
  "photoReviewsOnly": false,
  "maxReviewsPerProduct": 0,
  "includeDetails": true,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "keywords": [
        "가디건"
    ],
    "rankingCategories": [
        "000"
    ],
    "products": [
        "6957177"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("cocomoon/musinsa-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 = {
    "keywords": ["가디건"],
    "rankingCategories": ["000"],
    "products": ["6957177"],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("cocomoon/musinsa-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 '{
  "keywords": [
    "가디건"
  ],
  "rankingCategories": [
    "000"
  ],
  "products": [
    "6957177"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call cocomoon/musinsa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cocomoon/musinsa-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/ddMgmkE7Zs4uVqOmv/builds/i9RGX2EmDQueNxcuk/openapi.json
