# Mandarake 만다라케 Japan Collectibles Price & Stock Stats (`jpmarketdata/mandarake-market-kr`) Actor

일본 애니·만화·피규어·동인지 구매대행과 리셀 필수: 키워드 하나로 만다라케(Mandarake / まんだらけ — 일본 최대의 중고 서브컬처 체인)의 시세를 받습니다 — 판매중 가격의 중앙값과 사분위, 품절 가격(정찰제라 품절가 ≒ 실제 거래가), 재고/품절 구성비, 재고 보유 점포 순위, 달러 환산 포함. 일본 피규어 시세 확인과 구매대행 견적에 그대로 씁니다. From $0.02 per keyword, no subscription.

- **URL**: https://apify.com/jpmarketdata/mandarake-market-kr.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 keyword market summaries

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/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

## Japan Collectibles Price & Stock Stats — for Korean-Speaking Buyers

**한국어 · English · 日本語** —— 키워드 하나만 넣으면 만다라케(まんだらけ / Mandarake) 통신판매의 시세를 한 번의 호출로 받습니다: 판매중 가격, 품절 가격, 재고/품절 구성비, 어느 점포가 물건을 갖고 있는지.

***

### 한국어

#### 누구를 위한 Actor 인가 (Who this is for)

**일본 서브컬처 — 애니·만화·피규어·동인지·카드 — 의 한국 시장은 크고, 그리고 중화권 시장과는 완전히 별개의 시장입니다.** 구매대행으로 일본에서 사 오는 쪽도, 국내에서 리셀하는 쪽도, 가격을 매기는 기준은 결국 하나입니다: 이 물건이 일본 내수 시세로 얼마인가. 그리고 그 기준점이 **만다라케**(まんだらけ / Mandarake — 30개가 넘는 실물 점포가 하나의 웹 카탈로그를 공유하는, 일본 최대의 중고 서브컬처 체인)입니다. 전 세계 일본 컬렉터블의 참조 가격이면서, 공개 API가 없습니다.

이 Actor 는 그것을 견적서에 바로 넣을 수 있는 시세 레코드로 바꿔 줍니다:

- **판매중(호가) 시세** —— 지금 살 수 있는 상품 전체의 중앙값 / 사분위 / 최저 / 최고.
- **품절(실거래) 시세** —— **만다라케는 정찰제 판매**이므로, 품절된 상품의 표시 가격이 곧 실제로 팔린 가격입니다. 일본 컬렉터블 소매에서 공개적으로 얻을 수 있는 것 중 **실거래가(sold comps)** 에 가장 가까운 데이터입니다.
- **재고 구성** —— 판매중과 품절이 각각 몇 건인지 (시장 깊이와 소진 속도의 신호).
- **점포 순위** —— 물건이 어느 점포에 있는지 (나카노, 시부야, Sahra, Grandchaos…).
- 선택: 표본으로 잡은 상품 각각(제목, 가격, 점포, 재고 상태, 상품 링크).

가격은 엔화로 제공되며, 선택적으로 달러 환산이 붙습니다. 데이터는 만다라케의 공개 통신판매 페이지에서 요청 시점에 가져오며, 로그인이 필요 없고 실행 사이에 아무것도 저장하지 않습니다.

이 Actor 는 영문판 [Mandarake Japan Collectibles](https://apify.com/jpmarketdata/mandarake-market-checker) 의 **한국어 언어 패키지**입니다. 수집 로직과 통계 산출 기준은 완전히 동일하고, 제목·스토어 설명·문서·입력 항목 라벨만 한국어로 다시 썼습니다.

#### 개요 Overview

키워드마다 **`market_summary` 요약 레코드 1건**을 반환합니다: 판매중 가격 통계, 품절 가격 통계, 총 검색 건수, 판매중 총수, 품절 총수, 표본 건수, 재고 보유 점포 Top 5, 환율. 개별 상품 출력을 켜면 표본으로 잡은 상품마다 레코드를 추가로 반환합니다.

#### 입력 Input

| 필드 | 예시 | 설명 |
|---|---|---|
| `keywords` | `["ガンダム"]` | 일본어 키워드가 가장 잘 맞습니다. 상품명이 대체로 일·영 병기라 영어도 대개 통합니다. 키워드당 $0.02 |
| `categoryCode` | `"02"` | 선택 카테고리 필터: 11=만화/라이트노벨, 12=굿즈, 02=완구/피규어, 05=카드/스티커, 04=애니메이션, 03=동인, 01=서적, 10=잡지, 06=영상/게임, 07=아이돌/성우… 비워 두면 전체 |
| `maxItemsPerKeyword` | `120` | 키워드당 최신 상품을 몇 건 표본으로 삼을지 (30–360, 120 = 결과 1페이지) |
| `includeIndividualItems` | `false` | 켜면 상품마다 레코드를 출력합니다 (+$0.002/건) |
| `convertToUsd` | `true` | 현재 환율로 달러 통계를 함께 표시 |

```json
{
    "keywords": ["ガンダム", "ポケモンカード"],
    "categoryCode": null,
    "maxItemsPerKeyword": 120,
    "includeIndividualItems": false,
    "convertToUsd": true
}
```

카탈로그가 일본어이므로 자주 쓰는 키워드 대조표: 건담 = `ガンダム` / 포켓몬 카드 = `ポケモンカード` / 세일러문 = `セーラームーン` / 에반게리온 = `エヴァンゲリオン` / 피규어 = `フィギュア` / 동인지 = `同人誌` / 셀화 = `セル画`.

#### 출력 Output

필드명은 영어 그대로입니다. API 인터페이스이기 때문입니다:

```json
{
  "type": "market_summary",
  "keyword": "ガンダム",
  "totalListingsFound": 71934,
  "inStockTotal": 22848,
  "soldOutTotal": 49086,
  "sampledListings": 120,
  "sampledInStock": 78,
  "sampledSoldOut": 42,
  "askPriceJpy": {"min": 250, "p25": 1200, "median": 4000, "p75": 7000, "max": 45000, "average": 5480},
  "askPriceUsd": {"median": 25.48, "...": "..."},
  "soldPriceJpy": {"min": 250, "median": 1800, "max": 12000, "...": "..."},
  "shopTop": [["Nakano", 34], ["Sahra", 21], ["Grandchaos", 12]],
  "exchangeRateJpyUsd": 0.00637
}
```

읽는 법: `askPriceJpy.median` 은 **지금 그것을 사려면 얼마가 드는지**이고, `soldPriceJpy.median` 은 **그것이 실제로 팔렸을 때의 가격**입니다(만다라케는 정찰제이므로 품절가가 곧 실거래가). 이 둘 사이의 간격이 일본 쪽에서의 매입 여지입니다. `inStockTotal` 과 `soldOutTotal` 의 비율은 소진 신호입니다. 품절 비중이 높은데 판매중 물량이 얇다면 그 장르는 지금 잘 팔리고 있다는 뜻입니다.

#### 각 통계의 산출 근거 (basis)

- **`totalListingsFound` 은 품절 상품을 포함합니다.** 지금 실제로 살 수 있는 수량은 `inStockTotal`(별도의 필터 카운트에서 가져오는 정확한 값)입니다.
- **`askPriceJpy` / `soldPriceJpy` 는 표본 통계입니다.** 모수는 `sampledListings`(그리고 그중 `sampledInStock` / `sampledSoldOut`)이며, 최신 등록 순으로 표본을 잡습니다. 분포를 더 안정적으로 만들려면 `maxItemsPerKeyword` 를 올리세요.
- **`shopTop` 도 표본 통계입니다.** 표본으로 잡은 상품들의 점포 분포이지, 사이트 전체 재고의 점포 분포가 아닙니다.

#### 이 Actor 가 하지 않는 것

- **거래 일시를 제공하지 않으므로 시계열 분석을 할 수 없습니다.** 품절 상품에는 판매 날짜가 없습니다. 제공할 수 있는 신호는 「판매중/품절 구성」과 「두 개의 가격 분포」이지, 가격 추이 곡선이 아닙니다.
- **전체 카탈로그 크롤러가 아닙니다.** 키워드 단위로 표본을 잡아 통계를 돌려줄 뿐, 카탈로그 전체를 덤프하지 않습니다.
- **구매대행·주문·배송을 하지 않습니다.** 공개 페이지를 읽기만 합니다.
- **개인정보를 다루지 않습니다.** 만다라케는 자사 판매(퍼스트파티) 소매점이라 판매자 개인정보가 존재하지 않습니다.
- **실물 점포 재고와 일치한다고 보장하지 않습니다.** 웹 카탈로그와 점포 현물이 항상 같지는 않습니다.

#### 가격 Pricing — 키워드당 $0.02 부터, 구독 없음

| 과금 이벤트 | 가격 | 발생 시점 |
|---|---|---|
| 키워드 시세 요약 (`keyword-analyzed`) | **$0.02** | 키워드 1건을 분석할 때마다 |
| 개별 상품 레코드 (`item-scraped`) | **$0.002** | 「개별 상품 출력」을 켠 경우에만 |

기본 실행(키워드 1건, 요약만)은 **$0.02** 입니다. **결과가 0건인 키워드에는 절대 과금되지 않습니다.** 개별 상품 출력은 기본값이 꺼짐입니다. 구독은 필요 없습니다. Apify 는 매월 $5 무료 크레딧을 제공합니다.

#### 주의사항 Notes & limits

- 성인 지정 상품도 건수에 포함되며, 개별 레코드에서는 `isAdult` 로 표시됩니다.
- 읽기 전용이며 속도 제한이 있습니다(약 1요청 / 1.5초). 로그인 불필요, 개인정보 없음, 실행 사이 저장 없음.
- 주식회사 만다라케와는 아무런 제휴 관계가 없습니다. 데이터는 시장 조사용이며, 큰 금액의 거래 전에는 직접 확인하세요.
- 페이지 구조가 바뀌면 정상인 척 빈 결과를 돌려주지 않고 **명시적으로 오류를 냅니다.**

#### 활용 사례 Use cases

- **소싱과 차익거래** —— 구매대행으로 주문하기 전에 만다라케의 판매중 가격과 eBay / 메루카리의 실거래가를 맞대어 봅니다.
- **내 재고 가격 매기기** —— 품절 가격 분포는 판매자의 희망가가 아니라 일본 시장이 실제로 지불한 가격입니다.
- **컬렉션과 장르 추적** —— 특정 시리즈나 캐릭터의 시장 깊이와 가격 수위를 한 번의 호출로 파악합니다.

***

### English

#### Overview

Price and availability statistics for any keyword on Mandarake — Japan's biggest secondhand store for anime, manga, figures, doujinshi, toys and trading cards (30+ physical shops, one web catalog). One call per keyword returns in-stock ask prices, sold-out (realized) prices, the stock split and the top shops, plus optionally every sampled item.

This listing is the **Korean-language package** of our English Actor [Mandarake Japan Collectibles](https://apify.com/jpmarketdata/mandarake-market-checker). The scraping and the statistics are identical; the documentation, store copy and input labels are written for Korean-speaking collectors, proxy buyers (구매대행) and resellers (리셀).

#### Input

| Field | Example | Notes |
|---|---|---|
| `keywords` | `["ガンダム"]` | Japanese keywords match best; English often works. $0.02 per keyword |
| `categoryCode` | `"02"` | Optional category filter (11=Comics, 12=Goods, 02=Toys, 05=Cards, 04=Anime, 03=Doujins…) |
| `maxItemsPerKeyword` | `120` | Newest listings sampled per keyword (30–360) |
| `includeIndividualItems` | `false` | Enable to get each item as a record (+$0.002 each) |
| `convertToUsd` | `true` | Adds USD stats at the current exchange rate |

#### Output

One `type: "market_summary"` record per keyword (`askPriceJpy`, `soldPriceJpy`, `totalListingsFound`, `inStockTotal`, `soldOutTotal`, `sampledListings`, `shopTop`, USD conversion) — see the JSON example in the Korean section — plus optionally one `item` record per sampled listing. Mandarake sells at fixed prices, so a sold-out item's listed price is the price it actually sold at (pseudo sold comps).

#### Pricing

| Event | Price |
|---|---|
| Keyword market summary (`keyword-analyzed`) | **$0.02** |
| Individual item record (`item-scraped`) | **$0.002** each |

Individual items are OFF by default, so a default run is a flat **$0.02** per keyword. Keywords with zero listings are never charged. No subscription.

#### Notes & limits

- `totalListingsFound` includes sold-out items; `inStockTotal` (exact, from a separate filtered count) is what you can buy now.
- Sold-out listings carry no sale date, so no time series is possible — the split and the two price distributions are the signal.
- `askPriceJpy`, `soldPriceJpy` and `shopTop` are **sample** statistics over `sampledListings`.
- Not a full-catalog crawler; no proxy buying, ordering or shipping; no personal data; and no guarantee that the web catalog matches physical shop stock.
- Adult-flagged items are included in counts and marked `isAdult` on individual records.
- Read-only and throttled (~1 request / 1.5 s). No login, no personal data, nothing stored between runs. Not affiliated with Mandarake Inc.

***

### 日本語

#### 概要 Overview

まんだらけ通販の相場をキーワード単位で1コールで返します。販売中商品の価格統計、**売切商品の価格統計**（まんだらけは定価販売のため売切価格≒実売価格）、在庫/売切の件数内訳、在庫を持つ店舗トップ5。韓国語圏の利用者（구매대행 / 리셀 / 피규어 시세）向けに韓国語で書き直したパッケージで、英語版は [Mandarake Japan Collectibles](https://apify.com/jpmarketdata/mandarake-market-checker)（取得・統計処理は同一）。

#### 入力 Input

`keywords`（日本語推奨）／`categoryCode`（任意、02=おもちゃ・05=カード類 など）／`maxItemsPerKeyword`（既定 120、30〜360）／`includeIndividualItems`（既定 OFF）／`convertToUsd`（既定 ON）。

#### 出力 Output

キーワードごとに `market_summary` を1件（`askPriceJpy` / `soldPriceJpy` / `totalListingsFound` / `inStockTotal` / `soldOutTotal` / `sampledListings` / `shopTop` / USD換算）。`includeIndividualItems` が ON のときは、取得した各商品の明細（タイトル・価格・店舗・在庫状況・商品URL）も出力します。

#### 料金 Pricing

キーワードサマリー（`keyword-analyzed`）**$0.02**／個別商品レコード（`item-scraped`）**$0.002 / 件**。個別明細は**既定 OFF** なので既定実行はキーワードあたり $0.02 固定です。**0件のキーワードには課金されません。** サブスクリプション不要。

#### 注意 Notes

売切商品には販売日時が無いため**時系列分析はできません**（在庫/売切の構成と2本の価格分布が信号です）。`totalListingsFound` は売切を含み、いま買えるのは `inStockTotal` です。価格統計・店舗内訳は**サンプル基準**（母数は `sampledListings`）。全件クロールではなく、代理購入・注文・配送は行わず、個人情報も扱いません。通販カタログと実店舗の在庫が一致する保証はありません。アダルト商品は件数に含まれ、個別レコードでは `isAdult` で示します。リクエストは約1.5秒間隔、ログイン不要・実行間の保存なし。株式会社まんだらけとは無関係です。

# Actor input Schema

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

하나 이상의 검색 키워드(일본어가 가장 잘 맞고, 상품명이 대체로 일·영 병기라 영어도 대개 통합니다). 예: ガンダム(건담), セーラームーン(세일러문), ポケモンカード(포켓몬 카드), Gundam MG, Evangelion figure.

## `categoryCode` (type: `string`):

검색을 만다라케의 특정 카테고리로 한정합니다. 자주 쓰는 코드: 00=전체, 11=만화/라이트노벨, 12=굿즈, 01=서적, 10=잡지, 02=완구/피규어, 03=동인, 06=영상/게임, 07=아이돌/성우, 05=카드/스티커, 04=애니메이션. 비워 두면 전체 카테고리입니다.

## `maxItemsPerKeyword` (type: `integer`):

키워드마다 최신 상품을 몇 건 표본으로 삼을지 정합니다. 120 = 결과 1페이지. 표본이 많을수록 통계가 안정적입니다. '개별 상품 출력'을 켠 경우에만 비용에 영향을 줍니다(+$0.002/건).

## `includeIndividualItems` (type: `boolean`):

기본값 꺼짐: 실행 1회당 키워드 요약이 $0.02 정액입니다. 켜면 표본으로 잡은 상품마다(제목, 가격, 점포, 재고/품절, 상품 링크) 레코드를 추가로 출력하며 건당 +$0.002가 부과됩니다.

## `convertToUsd` (type: `boolean`):

현재 환율(open.er-api.com)로 엔화 통계 옆에 달러 통계를 함께 표시합니다.

## Actor input object example

```json
{
  "keywords": [
    "ガンダム"
  ],
  "maxItemsPerKeyword": 120,
  "includeIndividualItems": false,
  "convertToUsd": true
}
```

# 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": [
        "ガンダム"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/mandarake-market-kr").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": ["ガンダム"] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/mandarake-market-kr").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 '{
  "keywords": [
    "ガンダム"
  ]
}' |
apify call jpmarketdata/mandarake-market-kr --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aV6rF59qrcFbulWE7/builds/KdUc422kTBN2cBMTd/openapi.json
