Japan Sell-Through Rate — Sold vs Listed on Mercari & Yahoo
Pricing
from $20.00 / 1,000 sell-through summaries
Japan Sell-Through Rate — Sold vs Listed on Mercari & Yahoo
Will it actually sell in Japan? The Mercari sell-through rate (sold vs listed), median days to sell, sell-through by price band, Yahoo! Auctions sales per day and the sold-vs-asking gap. Demand, not just price — for cross-border resellers, proxy buying and sourcing. From $0.02. 日本の中古の消化率を1コールで。
Pricing
from $20.00 / 1,000 sell-through summaries
Rating
0.0
(0)
Developer
h ichi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Before "what is it worth", the question is "does it sell". One call per keyword measures Japanese resale demand: what share of the listings have sold, how fast they sold, and what separates the prices that sold from the prices still sitting there.
| Market | What it can measure | Basis |
|---|---|---|
| Mercari Japan (メルカリ) | Sell-through rate — sold-out vs on-sale listings, days to sell, listing age, sell-through per price band | stock_ratio |
| Yahoo! Auctions Japan (ヤフオク) | Sales per day, days since the last sale, realized prices, bid competition, instant-buy take rate | sold_flow |
| PayPay Flea Market (PayPayフリマ) | Competing supply — live listings and what they ask | supply_only |
The one thing to read first: demandBasis
The three markets do not publish the same kind of evidence, so their headline numbers are not interchangeable:
stock_ratio(Mercari) — a share of the current listing stock. Unit: a fraction.sold_flow(Yahoo! Auctions) — sales per day. Unit: 1/day.supply_only(PayPay) — no demand measurement at all.
A share and a rate-per-day cannot be averaged, so no field ever blends them. Every key in demand names the market it came from.
Yahoo! Auctions cannot produce a sell-through rate, and this Actor does not pretend it can. Yahoo's closed-auction index (closedsearch, 落札相場) serves auctions that sold — measured 2026-08-07 over 200 auctions across four unrelated keywords, the minimum bid count served was 1. Ended-without-a-bid auctions are simply not indexed, so any "Yahoo sell-through rate" is 1.0 by construction. sellThroughRate is therefore null there, with the reason attached, and soldPerDay is used instead.
What you get
demand.mercariSellThroughRate 0.5515 sold / (sold + on sale), from Mercari's own hit countsdemand.mercariRateBound "exact" exact | lower_bound | upper_bound | unknowndemand.mercariMedianDaysToSell 6 how fast the sold half moveddemand.mercariMedianListingAgeDays 6 how long the unsold half has been sittingdemand.mercariSoldMedianJpy 14250 the price that actually sellsdemand.mercariOnSaleMedianJpy 8350 what live sellers are askingdemand.mercariAskPremiumPct -41.4 ask vs realizeddemand.yahooSoldPerDay 5.52 completed auctions per daydemand.yahooDaysSinceLastSale 0.76 staleness: nothing sold for N days = no demanddemand.yahooSoldAuctionsIndexed 1102 how many completed sales Yahoo has on filedemand.paypayLiveListings 589 supply you would compete with on a second platform
Plus, per market, the full distributions (min / p25 / median / p75 / max / average) for sold prices, asking prices, days to sell, listing age, bid counts and likes — and the price-band table below.
Sell-through by price band
Does the cheap end clear faster, or is it clogged with parts nobody wants? Measured for 象印 圧力IH炊飯器 on 2026-08-07:
| Band | Sold (sampled) | On sale (sampled) | Sell-through |
|---|---|---|---|
| ≤ ¥6,000 | 23 | 32 | 46.9% |
| ¥6,000–¥11,000 | 18 | 30 | 42.5% |
| ¥11,000–¥19,000 | 31 | 22 | 63.4% |
| > ¥19,000 | 28 | 16 | 68.3% |
Here the expensive bands clear better. Below ¥6,000 the keyword catches spare parts (内ブタ, 内鍋, 雑穀フィルター), damaged units ("内釜剥がれあり") and older non-pressure models — not the machine most buyers came for. That is also why askPremiumPct came out negative: the sold pool and the on-sale pool hold different products. The band table is the fix for that composition effect, and it is why this Actor has no price filter (see Notes & limits).
Pricing — from $0.02 per keyword, no subscription
| Event | Price | When |
|---|---|---|
| Keyword analyzed | $0.02 | Per keyword, whatever the number of markets |
| Individual listing | $0.002 | Only if you enable Include individual listings |
A default run (1 keyword, 3 markets, summary only) costs $0.02 and took 8.8 seconds measured. Apify's $5 monthly free credit covers about 250 keywords at that rate. No subscription.
A keyword is only charged when at least one market actually measured demand — a sell-through rate, a sales-per-day figure, or a sold-vs-listed price gap. A run that could only count live listings measured supply, not demand, and is free.
Input
| Field | Example | Notes |
|---|---|---|
keywords | ["象印 圧力IH炊飯器"] | Japanese matches far more listings. Narrow keywords give sharper rates. $0.02 each |
markets | ["mercari","yahoo_auction","paypay_flea"] | All three by default. The price per keyword does not change |
maxItemsPerMarket | 100 | 30–300 sampled per side. Does not affect the headline rate or the listing counts |
includeIndividualItems | false | Enable to also get every sampled listing, +$0.002 each |
convertToUsd | true | Adds USD stats at the current rate (one FX lookup per run) |
Output example (type: "sell_through_summary", abridged, measured 2026-08-07)
{"type": "sell_through_summary","keyword": "象印 圧力IH炊飯器","demand": {"mercariSellThroughRate": 0.5515, "mercariSellThroughPct": 55.1,"mercariRateBound": "exact","mercariSoldListings": 2274, "mercariOnSaleListings": 1849,"mercariMedianDaysToSell": 6, "mercariMedianListingAgeDays": 6,"mercariSoldMedianJpy": 14250, "mercariOnSaleMedianJpy": 8350,"mercariAskPremiumPct": -41.4,"yahooSoldPerDay": 5.52, "yahooSoldAuctionsIndexed": 1102,"yahooDaysSinceLastSale": 0.76, "yahooSoldMedianJpy": 6708,"yahooMedianBids": 6,"paypayLiveListings": 589, "paypayAskMedianJpy": 12675,"note": "mercariSellThroughRate is a share of listing stock and yahooSoldPerDay is a flow per day — different units, never average them."},"markets": {"mercari": {"demandBasis": "stock_ratio","soldListings": 2274, "onSaleListings": 1849,"sellThroughRate": 0.5515, "rateBound": "exact","countsCapped": {"sold": false, "onSale": false},"soldPriceJpy": {"min": 2900, "p25": 7375, "median": 14250, "p75": 20500, "max": 67999, "average": 16757},"onSalePriceJpy": {"min": 500, "p25": 5500, "median": 8350, "p75": 14999, "max": 97900, "average": 11774},"priceGap": {"soldMedianJpy": 14250, "onSaleMedianJpy": 8350, "askPremiumJpy": -5900, "askPremiumPct": -41.4,"sellingBandJpy": {"p25": 7375, "median": 14250, "p75": 20500},"unsoldSide": "open_ask"},"speed": {"medianDaysToSell": 6, "soldWithinDays": 7, "soldWithinDaysPct": 57.0,"daysToSell": {"p25": 3, "median": 6, "p75": 14, "max": 262},"medianListingAgeDays": 6, "olderThan30DaysPct": 17.0},"priceBands": [{"label": "≤ ¥6,000", "soldSampled": 23, "onSaleSampled": 32, "sellThroughPct": 46.9, "basis": "sampled_scaled"},{"label": "> ¥19,000", "soldSampled": 28, "onSaleSampled": 16, "sellThroughPct": 68.3, "basis": "sampled_scaled"}]},"yahoo_auction": {"demandBasis": "sold_flow","sellThroughRate": null,"sellThroughRateNote": "Yahoo! Auctions' closedsearch index contains auctions that sold …","soldAuctionsIndexed": 1102, "sampledAuctions": 100,"soldPerDay": 5.52, "sampleWindowDays": 17.94,"newestSoldAt": "2026-08-06T21:55:21+09:00", "daysSinceLastSale": 0.76,"soldPriceJpy": {"p25": 3675, "median": 6708, "p75": 18150, "max": 93000},"bidCount": {"p25": 1, "median": 6, "p75": 15, "max": 50},"instantBuy": {"auctionsWithInstantBuyPrice": 15, "closedAtInstantBuyPct": 26.7,"medianPriceToInstantBuyPct": 79.7}},"paypay_flea": {"demandBasis": "supply_only", "sellThroughRate": null,"liveListings": 589, "askPriceJpy": {"median": 12675}, "listingsWithLikesPct": 82.0}},"marketsWithDemandSignal": ["mercari", "yahoo_auction"],"definitions": { "sellThroughRate": "…", "soldPerDay": "…", "askPremiumPct": "…" },"checkedAt": "2026-08-07T07:03:40+00:00"}
With includeIndividualItems: true you additionally get one record per sampled listing, tagged with market and side (sold / listed).
Use cases
- Sourcing decisions — a 70% sell-through with a 6-day median is a product you can buy; a 20% sell-through with 200-day-old listings is dead stock whatever the price says
- Pricing to actually sell —
priceGap.sellingBandJpyis the p25–p75 of what changed hands, andpriceBandsshows where the rate falls off - Deciding where to list — Mercari's rate and Yahoo's
soldPerDaydescribe two different sales mechanics;paypayLiveListingsis the competition on a third - Inventory triage — schedule the Actor over your SKU list and watch
sellThroughRateanddaysSinceLastSalemove - Demand research — how does sell-through vary by price band and category across the Japanese resale market
Notes & limits — how the statistics are defined
These are sample-based statistics, not a census. Read this before quoting a number.
sellThroughRateis a stock ratio, not a conversion rate. It issold-out listings / (sold-out + on-sale listings)from Mercari's own hit counts for the keyword — a snapshot of the listing population, not "N% of listings sell within X days". It is not comparable with Yahoo'ssoldPerDay.- Mercari caps its hit count at 15,000, so a rate built from a capped count is a bound and
rateBoundsays which:lower_bound(sold side capped),upper_bound(on-sale side capped), orunknown— in which case the rate isnull, because two capped counts force exactly 0.5 by construction. Measured:nintendo switchreturns 15000/15000 and gets no rate;ライカ M6returns 396/297 and gets an exact 57.1%. soldPerDayis measured over the sampled window, so always readsampleWindowDaysbeside it. On a huge keyword 30 samples can span 0.03 days and the extrapolated rate is instantaneous, not a daily average. RaisemaxItemsPerMarketto widen the window.- Price, speed and bid statistics come from a sample of up to
maxItemsPerMarketlistings per side, taken in each site's default result order. The listing counts and the sell-through rate do not. priceBandsis an estimate. Each band weights its sampled sold and on-sale counts back up by that side's total listing count, because the two sides are sampled at different rates.soldSampled/onSaleSampledare published so a band resting on three listings is visible as such. Mercari's own hit count could not be used here: measured 2026-08-07, adding a price ceiling makes it repeatably non-monotone (the sold side answered 1,604 for≤¥3,000but 1,101 for≤¥6,000), so a ladder of ceilings cannot be differenced into band counts.- This Actor deliberately has no price filter. A client-side price window would filter the sample but not the site's hit counts, silently breaking the rate it is supposed to support. The price-band table answers the same question without corrupting anything.
- Mercari's
daysToSellisupdated - created, which also moves on price edits, so it skews low — a liquidity signal, not an exact time-to-sale. The age of a live listing usescreatedand the wall clock instead, so an edit cannot make a stale listing look fresh. - A negative
askPremiumPctusually means product mix, not a bargain: the on-sale pool holds accessories and parts that the sold pool does not. UsepriceBands. - Yahoo's
instantBuyexcludes fixed-price listings, whereprice == buyNowPriceby definition and a "take rate" would be meaningless. - A market that fails does not fail the run: it comes back as
available: falsewith anerror, and the other markets still report. Only a keyword where no market measured demand fails the run. - Read-only, no login, no browser. Requests 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件につき、日本の中古市場の「売れ行き(消化率)」を1レコードで返す Actor です。「いくらか」ではなく「そもそも売れているのか」に答えます。
- メルカリ:
sellThroughRate= 売り切れ件数 /(売り切れ+販売中)。メルカリ自身の検索ヒット件数から算出します。加えて売れるまでの日数、売れ残りの掲載日数、価格帯別の消化率を返します。 - ヤフオク: 落札率は返しません。ヤフオクの「落札相場」は落札済みのみを収録しており(2026-08-07 実測: 4キーワード200件すべて入札1件以上)、そこから消化率を出すと必ず 1.0 になるためです。代わりに1日あたりの落札件数・最終落札からの経過日数・落札価格分布・入札数・即決価格の到達率を返します。
- PayPayフリマ: 売却済みを公開していないため供給(出品件数と提示価格)のみです。
- 数値の性質が市場ごとに違います(
demandBasis)。メルカリは「在庫に対する割合」、ヤフオクは「1日あたりの件数」で単位が異なるため、平均してはいけません。全フィールドが市場名を含む形で分かれています。 - メルカリのヒット件数は 15,000 で頭打ちになります。両側が頭打ちだと比率が必ず 0.5 になるので、その場合は
rateBound: "unknown"として数値を出しません(実測:nintendo switchは 15000/15000 で非公開、ライカ M6は 396/297 で 57.1%)。 - 料金: キーワード1件 $0.02(市場を何個選んでも同額)、個別明細は $0.002/件(既定 OFF なので既定実行は $0.02 固定)。どの市場も需要を測れなかったキーワードには課金しません。サブスクリプション不要です。
- 注意: 価格・日数・入札数の統計は各サイトの既定並び順から最大
maxItemsPerMarket件の標本です(全数ではありません)。消化率と件数のみサイトのヒット件数由来です。価格帯別の消化率は標本を母数で重み付けした推定値です(メルカリのヒット件数は価格上限を付けると単調でなくなることを実測したため、件数の差分では計算できません)。ブラウザ不使用・ログイン不要・1.5秒に1リクエスト、ヤフオクと PayPayフリマは同一基盤のため逐次取得しています。個人情報は取得しません。