Anime Figure & Gunpla Price — Japan Resale Value vs Retail avatar

Anime Figure & Gunpla Price — Japan Resale Value vs Retail

Pricing

from $20.00 / 1,000 figure/kit valued across markets

Go to Apify Store
Anime Figure & Gunpla Price — Japan Resale Value vs Retail

Anime Figure & Gunpla Price — Japan Resale Value vs Retail

What is an anime figure or Gunpla kit worth in Japan vs its retail price? One call returns HobbyLink Japan retail, Mandarake/BookOff shop-used and Yahoo Auctions/Mercari sold medians, plus the resale premium. Every number tagged retail/shop_used/c2c. From $0.02, no subscription. 定価比プレミアムを1コールで。

Pricing

from $20.00 / 1,000 figure/kit valued across markets

Rating

0.0

(0)

Developer

h ichi

h ichi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

What does this figure or model kit cost new in Japan, and what is it actually selling for second-hand right now? One call per keyword returns both sides and the number in between: premium, the resale median as a ratio of the retail price.

Measured 2026-08-07, RG Nu Gundam, default settings, 6.3 seconds:

retail ¥4,500 (HobbyLink Japan, in stock) → sold ¥8,141 (Yahoo! Auctions + Mercari) = +80.9 %

ChannelSourceWhat you getpriceKind
retailHobbyLink JapanNew stock: current price and Japanese list price (定価), plus stock statelist
shop_usedMandarake (まんだらけ)In-stock and sold-out used stock, by branchasking + sold
shop_usedBookOff (ブックオフ)Used stock, population quartilesasking
c2cYahoo! Auctions (ヤフオク)Closed auctions with at least one bidsold
c2cMercari Japan (メルカリ)Sold-out and/or on-sale listingssold / asking
c2cPayPay Flea MarketLive listingsasking

Nobody else on the Store carries the retail anchor. Sold comps for Japanese hobby goods are easy to find; the price the thing costs new is what turns them into a premium.

Two tags on every number, because they are two different questions

  • priceBasiswho is selling: retail (a shop selling new) / shop_used (a second-hand chain reselling at its own fixed price) / c2c (a private seller).
  • priceKindwhat the number is: list / asking (nobody has agreed to it) / sold (somebody paid it).

They are kept orthogonal, never collapsed. Mandarake sells at fixed prices, so a sold-out Mandarake listing is a realized price while an in-stock one is an ask — the same product, two different quantities, so they come back as two blocks (mandarake_sold_out, mandarake_in_stock), never one blended median.

Entries are then grouped into pools keyed <priceBasis>_<priceKind>retail_list, c2c_sold, shop_used_asking, … — so each pool is homogeneous on both axes, and every premium is stamped with the pair it came from (basis: "c2c_sold_vs_retail_best_match"). A pool's median is the median of its sources' medians, not a median over pooled prices: sample sizes differ by an order of magnitude between sources, and pooling raw rows would silently weight the answer by whichever site returned the most.

The retail anchor (read this before comparing runs)

HLJ's catalogue mixes ¥500 decal sheets, ¥900 magazines and ¥4,000 art books in with the kits, and its search matches all of them. Measured on RG Nu Gundam: 273 hits, 24 sampled, catalogue median ¥500 — 20 of the 24 rows are decals — while rank 1 is the actual kit at ¥4,500.

So the anchor is an explicit input, never a silent threshold:

retailAnchorAnchorRG Nu Gundam premium
best_match (default)HLJ's top relevance-ranked priced hit — one product, one price, nothing averaged¥4,500 → +80.9 %
catalog_medianMedian of the whole HLJ sample. Right when the keyword names a category ("nendoroid")¥500 → +1528.2 %

Both are always reported in premium.byAnchor, so one run shows you what the other choice would have said. A top-N median was tried and rejected: it repairs RG Nu Gundam but breaks PG Unleashed RX-78-2, where three books outvote the kit (¥25,000 → ¥3,300).

Retail is also reported twice on purpose: retailMedianJpy is what HLJ charges today (an importer's real acquisition cost) and msrpMedianJpy is the Japanese list price 定価 before any HLJ discount — premium.vsMsrp divides by that one.

Pricing — from $0.02 per keyword, no subscription

EventPriceWhen
Keyword analyzed$0.02Per keyword, whatever the number of sources
Individual listing$0.002Only if you enable Include individual listings

A default run (1 keyword, 4 sources, summary only) costs $0.02 and took 6.3 s measured. All six sources, three keywords, summaries only: $0.06, 24.1 s.

Apify's $5 monthly free credit covers about 250 default runs. No subscription, no minimum.

A keyword is only charged when at least two of the selected sources actually returned data (or the single one, if you selected only one). A "retail vs resale" record with one source in it is not a comparison, so it is free. The two Mandarake blocks are one source and cannot satisfy that on their own.

Input

FieldExampleNotes
keywords["RG Nu Gundam"]The keyword is the join key across all sources — best when it names one product. Japanese matches more second-hand listings. $0.02 each
sources["hlj","mandarake","yahoo_auction","mercari"]Default four = one per channel plus the sold-comp leg. bookoff and paypay_flea are opt-in depth. Price per keyword is unchanged
retailAnchor"best_match"best_match (a product keyword) or catalog_median (a category keyword). Both always reported
mercariStatus"sold_out"sold_out (realized, default) / on_sale (asking) / both (two blocks, one extra request)
maxItemsPerSource6020–240 listings sampled per source (and per Mercari status)
priceMinJpy / priceMaxJpy4000Optional window, applied identically to every source. Cuts parts, stickers and bulk lots
includeIndividualItemsfalseEnable to also get every sampled listing, +$0.002 each
convertToUsdtrueAdds USD stats at the current rate (one FX lookup per run)

Output example (type: "resale_value_summary", abridged, measured 2026-08-07)

{
"type": "resale_value_summary",
"keyword": "RG Nu Gundam",
"premium": {
"retailAnchor": "best_match", "retailAnchorUsed": "best_match",
"retailMedianJpy": 4500, "msrpMedianJpy": 4500,
"retailBestMatch": {
"relevanceRank": 1, "id": "BANH578426-UP", "title": "RG NU Gundam",
"priceJpy": 4500, "listPriceJpy": 4500, "stockStatusCode": "instock",
"releaseDate": "October 2025",
"url": "https://www.hlj.com/1-144-scale-rg-nu-gundam-banh578426-up"
},
"resalePool": "c2c_sold", "resaleMedianJpy": 8141,
"resaleSources": ["yahoo_auction", "mercari_sold"],
"basis": "c2c_sold_vs_retail_best_match",
"premiumJpy": 3641, "premiumPct": 80.9, "ratio": 1.809, "aboveRetail": true,
"byPool": {
"shop_used_sold": {"medianJpy": 4500, "premiumPct": 0.0, "sources": ["mandarake_sold_out"]},
"shop_used_asking": {"medianJpy": 6650, "premiumPct": 47.8, "sources": ["mandarake_in_stock"]},
"c2c_sold": {"medianJpy": 8141, "premiumPct": 80.9, "sources": ["yahoo_auction", "mercari_sold"]}
},
"byAnchor": {
"best_match": {"retailJpy": 4500, "msrpJpy": 4500, "premiumPct": 80.9},
"catalog_median": {"retailJpy": 500, "msrpJpy": 500, "premiumPct": 1528.2}
},
"retailMedianUsd": 28.44, "resaleMedianUsd": 51.46, "premiumUsd": 23.01,
"note": "Premium is a realized resale median over a retail median… It is gross — Japanese marketplace fees (~10%), shipping and proxy/export costs are not deducted."
},
"identity": {
"joinKey": "keyword", "retailListingsFound": 273,
"retailPriceDispersionRatio": 8.25, "dispersionThreshold": 2.0,
"looksLikeOneProduct": false,
"note": "The retail hits span a wide price range… every resale median is keyword-wide."
},
"pools": {
"retail_list": {"priceBasis": "retail", "priceKind": "list", "medianJpy": 500, "aggregation": "single_source"},
"shop_used_sold": {"priceBasis": "shop_used", "priceKind": "sold", "medianJpy": 4500, "aggregation": "single_source"},
"shop_used_asking": {"priceBasis": "shop_used", "priceKind": "asking", "medianJpy": 6650, "aggregation": "single_source"},
"c2c_sold": {"priceBasis": "c2c", "priceKind": "sold", "medianJpy": 8141,
"sourceMediansJpy": {"yahoo_auction": 6580, "mercari_sold": 9702},
"aggregation": "median_of_source_medians"}
},
"resaleSpread": {
"available": true, "pool": "c2c_sold",
"cheapestSource": "yahoo_auction", "cheapestMedianJpy": 6580,
"priciestSource": "mercari_sold", "priciestMedianJpy": 9702,
"spreadJpy": 3122, "spreadPct": 47.4
},
"sources": {
"hlj_retail": {
"priceBasis": "retail", "priceKind": "list", "available": true,
"totalListingsFound": 273, "sampledListings": 24, "pricedListings": 24,
"priceJpy": {"min": 500, "p25": 500, "median": 500, "p75": 4125, "max": 60000, "average": 4596},
"statisticsBasis": "sample",
"signals": {"stockBreakdown": {"instock": 15, "backorder": 9},
"inStockRatioSampled": 0.625, "releaseYearTop": [[2025, 11], [2021, 8]]}
},
"mandarake_in_stock": {"priceKind": "asking", "totalListingsFound": 10, "priceJpy": {"median": 6650},
"statisticsBasis": "exact", "signals": {"shopTop": [["Kokura", 2]]}},
"mandarake_sold_out": {"priceKind": "sold", "totalListingsFound": 9, "priceJpy": {"median": 4500},
"signals": {"shopTop": [["Complex", 3], ["Grandchaos", 2]]}},
"yahoo_auction": {"priceKind": "sold", "totalListingsFound": 2, "priceJpy": {"median": 6580},
"signals": {"sellThroughRatioSampled": 1.0, "bidCount": {"median": 4}}},
"mercari_sold": {"priceKind": "sold", "totalListingsFound": 32, "priceJpy": {"median": 9702},
"signals": {"medianDaysToSell": 12}}
},
"channelsWithData": ["retail", "shop_used", "c2c"],
"checkedAt": "2026-08-07T06:56:00+00:00"
}

With includeIndividualItems: true you additionally get one record per listing (type: "listing"), each tagged with source, sourceEntry, priceBasis and priceKind.

Use cases

  • Flipping and proxy buyingpremium.premiumPct on the c2c_sold pool is the gross spread between buying new and selling used. resaleSpread says which marketplace pays more for the same item
  • Preorder decisions — a kit already trading above list price (aboveRetail: true) while HLJ still shows instock is a kit to buy now; signals.stockBreakdown and releaseYearTop say how long that window is
  • Export and reselling outside JapanretailMedianUsd is landed-cost input, resaleMedianUsd is the Japanese ceiling you are arbitraging against
  • Collection valuation — schedule the Actor over your want list and watch ratio move
  • Deciding where to listtotalListingsFound is the supply you would compete with, signals.sellThroughRatioSampled (Yahoo) and signals.medianDaysToSell (Mercari) are the liquidity

Notes & limits

  • The keyword is the join key — there is no name matching. identity.retailPriceDispersionRatio (retail p75/p25) and looksLikeOneProduct tell you whether that held. When it is false, best_match still pins the retail side to one product but every resale median is keyword-wide; narrow the keyword or set priceMinJpy / priceMaxJpy
  • The premium is gross. Japanese marketplace fees (~10 %), shipping, and proxy/export costs are not deducted
  • sold beats asking: the headline uses c2c_sold when it exists and falls back to c2c_asking with a different note — an asking-based premium is an upper bound, not a margin
  • Check pricedListings before trusting a median. A narrow keyword can leave a source with two or three listings; totalListingsFound is what each site reports and is never rewritten by the client-side price window
  • statisticsBasis says how each block's quartiles were produced: exact (the whole result set was read), population_quantiles (read out of BookOff's price-sorted result set), sample, or stratified_sample (a price window was applied on top of BookOff's spread sample)
  • BookOff is media-first. It carries art books, magazines, discs and games — measured, it returns 0 hits for most kit keywords and its Gundam hits are books. Useful for anime/hobby media, not for kits; it is off by default
  • PayPay Flea Market can never return sold prices — they are not server-rendered. Nothing here pretends otherwise
  • An out-of-print item may have no retail anchor at all. premium.available: false with a reason, rather than a division by a made-up number — and that absence is itself why a premium exists
  • A source that fails does not fail the run: it comes back as available: false with an error, and the remaining sources are still compared. Only a keyword where every source failed fails the run
  • Read-only, no login, no browser. Requests to one host are throttled to one per 1.5 s, and Yahoo! Auctions and PayPay Flea Market are queried sequentially because they share one backend
  • No personal data is collected — sellers are excluded from every record

日本語: フィギュア・ガンプラの「定価に対するプレミアム」を1コールで返します(HLJ の新品価格を基準に、まんだらけ/ブックオフの店頭中古とヤフオク落札/メルカリ/PayPay の個人間実売を比較。全数値に retail/shop_used/c2clist/asking/sold のタグ付き、キーワード1件 $0.02・既定 OFF の個別明細のみ $0.002/件)。

中文: 一次调用即可得到日本手办与高达模型的「相对定价的溢价」(以 HLJ 新品价为基准,对比万代书店/BookOff 的店铺二手与雅虎拍卖/煤炉/PayPay 的个人成交价,每个关键词 $0.02,无订阅)。