# Musinsa Scraper: 무신사 크롤러 (`getascraper/musinsa-scraper`) Actor

Scrape product listings, prices, discounts, brands, and reviews from Musinsa (musinsa.com), Korea's #1 online fashion marketplace.

- **URL**: https://apify.com/getascraper/musinsa-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.33 / 1,000 product records

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Musinsa Scraper: 무신사 크롤러

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FCE8F0;border:1px solid #F3C4D9;border-top:4px solid #D6336C;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Get Musinsa product data, prices, discounts, and brand details ready for your spreadsheet in minutes.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull live listings from 무신사 (Musinsa), Korea's #1 fashion marketplace, by category or search keyword. No login and no browser setup required.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F3C4D9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B02458">🏷️ Live pricing and discounts</span><br>
<span style="font-size:12px;color:#57534E">Current price, original price, and discount percent on every listing</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F3C4D9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B02458">⭐ Real review signals</span><br>
<span style="font-size:12px;color:#57534E">Review count and score for every product, straight from the listing</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F3C4D9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B02458">🏢 Verified seller details</span><br>
<span style="font-size:12px;color:#57534E">Legal business name, CEO, and registration number for each seller</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F3C4D9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B02458">🖼️ Full image galleries</span><br>
<span style="font-size:12px;color:#57534E">Thumbnail plus the complete product gallery with detail scraping on</span>
</td>
</tr>
</table>

Get structured data from **무신사** (Musinsa), Korea's largest online fashion marketplace. Give this Actor a category code or a search keyword and it returns one clean row per product: name (Korean and English), brand, current price, original price, discount percent, review count and score, and sold-out status. Turn on detail-page scraping and each product also gets its full category path, seller's registered business details, size information, and complete image gallery. Built for price monitoring, trend research, dropshipping sourcing, and any tool that needs clean, structured Korean fashion data without opening one product page at a time.

<table width="100%"><tr>
<td style="padding:12px 18px;background:#FCE8F0;border-left:4px solid #D6336C">
<span style="font-size:15px;color:#1C1917">⚡ <b>Most catalog scrapers stop at name and price.</b> This one also pulls each seller's registered business details and the full image gallery, ready for sourcing or compliance checks.</span>
</td>
</tr></table>

### 🔍 What does Musinsa Scraper do?

This Actor pulls product data from **Musinsa** (musinsa.com) by category code or search keyword.

Give it one or more category codes, such as `001002` for a shirts sub-category, or search keywords like "니트" (knit), and it returns every product Musinsa shows for that source: name, brand, current price, original price, discount percent, review count and score, sold-out status, and a thumbnail. Turn on detail-page scraping and each product also gets its full category breadcrumb, seller's registered business name, CEO, and registration number, size-system details, and the complete product image gallery. It runs on the Apify platform with scheduling, integrations (Make, Zapier, Google Sheets), and run monitoring built in.

This version returns the first batch of listings Musinsa serves per category or keyword (up to about 60 products per source). Run more categories or keywords in the same job to widen coverage.

### 💡 Why use Musinsa Scraper?

- **I am a dropshipping reseller** sourcing trending Korean fashion items to list on my own store, tracking price and discount changes so I know when to restock or drop a listing.
- **I am a trend researcher** tracking which K-fashion brands and styles are gaining traction on Musinsa, using review count and score as a proxy for real demand.
- **I am a competitive intelligence analyst** at a fashion brand monitoring rival sellers' pricing and stock status across Musinsa's marketplace to adjust my own pricing strategy.
- **I am a marketplace aggregator** building a catalog of Korean fashion products for my own storefront, pulling brand, imagery, and category data in bulk instead of copying it by hand.

### 🚀 How to use Musinsa Scraper

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FCE8F0;border:1px solid #F3C4D9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#D6336C;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick categories or keywords</span><br>
<span style="font-size:12px;color:#57534E">Add one or more Musinsa category codes and/or search keywords.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FCE8F0;border:1px solid #F3C4D9;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#D6336C;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Choose your depth</span><br>
<span style="font-size:12px;color:#57534E">Turn on detail-page scraping to also pull seller info, size data, and full image galleries.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FCE8F0;border:1px solid #F3C4D9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#D6336C;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run and export</span><br>
<span style="font-size:12px;color:#57534E">Download results as a spreadsheet or table, or pull them into your own tools.</span>
</td>
</tr>
</table>

### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `categoryCodes` | array of strings | No | Musinsa category codes to scrape, e.g. `001002` for a shirts sub-category. Returns the first batch of items (up to about 60) per category. |
| `searchKeywords` | array of strings | No | Keywords to search on Musinsa. Same coverage limit as categories. |
| `maxItems` | integer | No | Maximum number of products to return across all categories and keywords. Defaults to `100`. Use `0` for no limit, still bounded by the per-source coverage limit above. |
| `scrapeDetail` | boolean | No | When enabled, each product's page is also opened to collect the full category path, seller's registered business details, size information, and the complete image gallery. When disabled, only the faster listing data is collected. Defaults to enabled. |
| `proxyConfiguration` | object | No | Proxy settings used for every request. The default works for every Musinsa page this Actor visits, no special configuration needed. |

At least one of `categoryCodes` or `searchKeywords` is required for a run to return results.

### 📦 Output

Download the results as a spreadsheet, a table, or structured data ready for your own systems. Each product is one row:

```json
{
  "dataType": "product",
  "goodsNo": "6537050",
  "goodsName": "에센셜 워시드 코튼 크롭 셔츠 [아이보리]",
  "goodsNameEn": "Essential Washed Cotton Crop Shirt [Ivory]",
  "url": "https://www.musinsa.com/products/6537050",
  "brandName": "르아르",
  "brandNameEn": "LEIRE",
  "brandLinkUrl": "https://www.musinsa.com/brand/leire",
  "price": 32900,
  "normalPrice": 37000,
  "discountRate": 11,
  "reviewCount": 0,
  "reviewScore": 0,
  "isSoldOut": false,
  "thumbnail": "https://image.msscdn.net/images/goods_img/20260522/6537050/6537050_17822787563532_500.jpg",
  "gender": "남성",
  "categoryPath": "Clothing > 셔츠/남방 > 캐주얼 셔츠",
  "sourceCategoryCode": "001002",
  "sizeType": "20",
  "isUseSize": true,
  "companyName": "주식회사 에스엔엘컴퍼니",
  "companyCeo": "임동근",
  "companyBizRegNo": "3248802071",
  "companyAddress": "서울 성동구 무학로4길 2",
  "scrapedAt": "2026-07-11T00:47:42.176Z"
}
````

Every category run also returns one summary row with the total item count Musinsa reports for that category:

```json
{
  "dataType": "category_summary",
  "categoryCode": "001002",
  "url": "https://www.musinsa.com/category/001002/goods",
  "totalItemCount": 44159,
  "scrapedAt": "2026-07-11T00:47:39.594Z"
}
```

### 📊 Output data fields

| Field | Type | Description |
| --- | --- | --- |
| `dataType` | string | Row type: `product` or `category_summary`. |
| `goodsNo` | string | Musinsa's internal product ID. |
| `goodsName` | string | Product name in Korean. |
| `goodsNameEn` | string | Product name in English, when Musinsa provides one. |
| `url` | string | Direct link to the product page. |
| `brandName` | string | Brand name in Korean. |
| `brandNameEn` | string | Brand name in English. |
| `brandLinkUrl` | string | Link to the brand's storefront on Musinsa. |
| `price` | number | Current selling price, in Korean won. |
| `normalPrice` | number | Original price before discount, in Korean won. |
| `discountRate` | number | Discount percent off the original price. |
| `reviewCount` | number | Number of customer reviews. |
| `reviewScore` | number | Average customer satisfaction score. |
| `isSoldOut` | boolean | Whether the product is currently out of stock. |
| `thumbnail` | string | Listing thumbnail image URL. |
| `gender` | string | Target gender or demographic for the product. |
| `categoryPath` | string | Full category breadcrumb, collected when detail-page scraping is enabled. |
| `sourceCategoryCode` | string | The category code you searched, for rows sourced from a category run. |
| `sourceKeyword` | string | The keyword you searched, for rows sourced from a search run. |
| `sizeType` | string | Musinsa's internal size-system code, collected when detail-page scraping is enabled. |
| `isUseSize` | boolean | Whether the product uses Musinsa's size selector, collected when detail-page scraping is enabled. |
| `images` | array of strings | Full product image gallery, collected when detail-page scraping is enabled. |
| `companyName` | string | Seller's registered legal business name, collected when detail-page scraping is enabled. |
| `companyCeo` | string | Seller's registered CEO name, collected when detail-page scraping is enabled. |
| `companyBizRegNo` | string | Seller's business registration number, collected when detail-page scraping is enabled. |
| `companyAddress` | string | Seller's registered business address, collected when detail-page scraping is enabled. |
| `categoryCode` | string | Category code (category summary rows only). |
| `totalItemCount` | number | Total number of items Musinsa reports for the category (category summary rows only). |
| `scrapedAt` | string | When the row was collected. |

### 💰 Pricing

This Actor uses pay-per-result pricing: you pay for the products you actually get back, and nothing for an empty run. There is no subscription and no minimum spend. Use `maxItems` to control how many results a run returns, and turn `scrapeDetail` off when you only need listing-page pricing and brand data.

### ⭐ Enjoying Musinsa Scraper: 무신사 크롤러?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FCE8F0;border:1px solid #F3C4D9;border-left:5px solid #D6336C;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Sourcing Korean fashion trends without opening a hundred tabs?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other resellers and researchers tracking K-fashion find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#D6336C;border:1px solid #F3C4D9;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/musinsa-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips

- Turn off `scrapeDetail` for a faster, lighter run when you only need listing-page price, brand, and review data.
- Start with a low `maxItems` while testing a new category or keyword, then raise it once you know what it returns.
- Batch several category codes and search keywords into one run instead of starting a new run for each one.
- Re-run categories you care about on a schedule to catch new discounts as Musinsa posts them.
- This version returns the first batch of listings per category or keyword. Split a broad category into narrower sub-category codes to widen your coverage.

### ❓ FAQ, disclaimers, and support

##### 무신사 상품 데이터를 어떻게 수집하나요?

Add category codes or search keywords to the Actor's input and run it. It returns every product Musinsa shows for that source, with prices, discounts, brand, and review data.

##### 한 번에 몇 개의 상품을 가져올 수 있나요?

This version returns the first batch of listings per category or keyword, typically up to about 60 products. Add more categories or keywords in the same run to widen coverage.

##### Does it get blocked while scraping Musinsa?

Musinsa's public category, search, and product pages have shown no anti-bot friction in testing. The Actor's default proxy settings have run cleanly against all three page types.

##### Does it extract private customer data like phone numbers?

No. This Actor only collects public catalog data that Musinsa shows to any visitor. The one business-detail field it collects, the seller's registered company info, is the seller's own published business registration, not private customer data.

##### How fresh is the pricing and review data?

Every run fetches live pages at the time it runs, so prices, discounts, stock status, and review counts reflect what Musinsa shows that moment.

##### Do I need detail-page scraping turned on to get brand and discount data?

No. Brand, current price, original price, discount percent, review count, and review score all come back on the fast listing-only pass. Category path, seller business details, size info, and the full image gallery only come back when `scrapeDetail` is enabled.

##### Is scraping Musinsa product data legal?

This Actor collects publicly available product data. You are responsible for complying with Musinsa's Terms of Service and applicable laws in your use of the data.

##### Found a bug or need a field added?

Open an issue on the Actor's **Issues** tab. Custom solutions are available on request.

### 🔗 Other actors

- [Gmarket Korea Scraper](https://apify.com/getascraper/gmarket-scraper) ↗ - pulls product listings and pricing from Gmarket's Korean marketplace.
- [Poizon Scraper](https://apify.com/getascraper/poizon-scraper) ↗ - collects Poizon sneaker, apparel, and luxury resale listings.
- [Kakaku Scraper](https://apify.com/getascraper/kakaku-scraper) ↗ - extracts Japanese price comparison data from Kakaku.com.
- [Rakuten Price Monitor](https://apify.com/getascraper/rakuten-jp-price-monitor) ↗ - tracks live prices on Rakuten Ichiba in Japan.
- [11st products crawler](https://apify.com/getascraper/11st-products-crawler) ↗ - pulls Korean marketplace product pricing in KRW.

# Actor input Schema

## `categoryCodes` (type: `array`):

Musinsa category codes to scrape (the numeric code segment of https://www.musinsa.com/category/<code>/goods, e.g. '001002' for a tops sub-category). v1 returns the first ~60 items per category (SSR page 1 only -- see README for the pagination limitation).

## `searchKeywords` (type: `array`):

Keywords to search on Musinsa (hits https://www.musinsa.com/search/goods?keyword=<keyword>). Same 60-item, page-1-only limitation as categories.

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

Maximum number of products to scrape across all categories and keywords (0 = unlimited).

## `scrapeDetail` (type: `boolean`):

When enabled, each product's detail page (/products/<goodsNo>) is also fetched for richer data: full category path, seller/company registration info, size-system flags, and the full image gallery. When disabled, only listing-card data (name, price, discount, brand, review count/score, sold-out flag) is used for a much faster run.

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

Datacenter proxy is the default. Live testing during the feasibility pass found zero anti-bot friction (no TLS/JA3 gate, no signed params) on the category/search/product URLs this Actor hits from a non-Korean IP -- residential/KR-geo proxy is not required. Keep as datacenter unless you see repeated missing **NEXT\_DATA** warnings in the run log.

## Actor input object example

```json
{
  "categoryCodes": [
    "001002"
  ],
  "searchKeywords": [],
  "maxItems": 100,
  "scrapeDetail": true,
  "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 = {
    "categoryCodes": [
        "001002"
    ],
    "searchKeywords": [],
    "maxItems": 100,
    "scrapeDetail": true,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/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 = {
    "categoryCodes": ["001002"],
    "searchKeywords": [],
    "maxItems": 100,
    "scrapeDetail": True,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/musinsa-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categoryCodes": [
    "001002"
  ],
  "searchKeywords": [],
  "maxItems": 100,
  "scrapeDetail": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/musinsa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/musinsa-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Musinsa Scraper: 무신사 크롤러",
        "description": "Scrape product listings, prices, discounts, brands, and reviews from Musinsa (musinsa.com), Korea's #1 online fashion marketplace.",
        "version": "0.1",
        "x-build-id": "sLCy9uByLEwJg4RpR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~musinsa-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-musinsa-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getascraper~musinsa-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-musinsa-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getascraper~musinsa-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-musinsa-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "categoryCodes": {
                        "title": "Category codes",
                        "type": "array",
                        "description": "Musinsa category codes to scrape (the numeric code segment of https://www.musinsa.com/category/<code>/goods, e.g. '001002' for a tops sub-category). v1 returns the first ~60 items per category (SSR page 1 only -- see README for the pagination limitation).",
                        "default": [
                            "001002"
                        ]
                    },
                    "searchKeywords": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Keywords to search on Musinsa (hits https://www.musinsa.com/search/goods?keyword=<keyword>). Same 60-item, page-1-only limitation as categories.",
                        "default": []
                    },
                    "maxItems": {
                        "title": "Maximum products",
                        "minimum": 0,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of products to scrape across all categories and keywords (0 = unlimited).",
                        "default": 100
                    },
                    "scrapeDetail": {
                        "title": "Scrape product detail pages",
                        "type": "boolean",
                        "description": "When enabled, each product's detail page (/products/<goodsNo>) is also fetched for richer data: full category path, seller/company registration info, size-system flags, and the full image gallery. When disabled, only listing-card data (name, price, discount, brand, review count/score, sold-out flag) is used for a much faster run.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Datacenter proxy is the default. Live testing during the feasibility pass found zero anti-bot friction (no TLS/JA3 gate, no signed params) on the category/search/product URLs this Actor hits from a non-Korean IP -- residential/KR-geo proxy is not required. Keep as datacenter unless you see repeated missing __NEXT_DATA__ warnings in the run log.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
