Yahoo, Mercari & PayPay Japan — Same Item, 3 Prices
Pricing
from $20.00 / 1,000 keyword analyzed across markets
Yahoo, Mercari & PayPay Japan — Same Item, 3 Prices
Price one keyword on Yahoo! Auctions (sold), Mercari (sold and asking) and PayPay Flea Market (asking). Returns each site's median price, the cheapest and priciest site and the gap (cross-market), labelled sold or asking. $0.02 per keyword, charged only when two sites return data. Unofficial.
Pricing
from $20.00 / 1,000 keyword analyzed across markets
Rating
0.0
(0)
Developer
h ichi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What it does: Prices one keyword on Yahoo! Auctions, Mercari and PayPay Flea Market in one go and returns the three prices side by side with the gap between them.
You enter: keywords, e.g. nintendo switch (Japanese matches more); optionally which sites and a price window
You get: median price per site in yen and US dollars (Mercari comes as two, sold and asking), listings found per site, cheapest and priciest site, gap in yen and %, each labelled sold or asking, from up to 100 sampled listings each. Optionally every sampled listing.
Price: $0.02 per keyword, however many sites. +$0.002 per listing if you also want the list. Charged only when at least two sites return data.
Example: enter nintendo switch → median ¥4,540 on Yahoo! Auctions (sold) · ¥4,775 on Mercari (sold) · ¥14,200 on PayPay (asking) · measured on 50 sampled auctions of the 229,986 Yahoo found (a broad keyword — narrow it or set a minimum price for a fairer comparison)
Unofficial — not affiliated with Yahoo! Auctions, Mercari or PayPay Flea Market. Reads public pages only.
Why the priceBasis labels matter more than the numbers
A closed Yahoo! auction is a realized sale price. A live PayPay listing is an asking price — what a seller hopes for, which nobody has agreed to yet. PayPay does not publish sold listings at all, so the asking price is the only thing that market can honestly supply.
Subtract those two medians without noticing and your "arbitrage margin" is fiction. So:
- every market block carries
priceBasis(sold/asking) and a plain-EnglishpriceBasisLabel - every entry of
comparison.pairsis taggedbasis:sold_vs_sold,sold_vs_askingorasking_vs_asking, plus a booleansameBasis - when Mercari is queried with both statuses it is returned as two separate blocks (
mercari_sold,mercari_on_sale) rather than one blended median — a single number may only ever have one basis comparison.mixedBasisandcomparison.notesay out loud when the headline spread crosses bases
sold_vs_sold (Yahoo ↔ Mercari sold out) is the pair you can act on. asking_vs_asking (Mercari on sale ↔ PayPay) tells you where to buy today. sold_vs_asking is context, not margin.
Pricing — $0.02 per keyword
| Event | Price | When |
|---|---|---|
| Keyword analyzed across markets | $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 takes about 10 seconds.
A keyword is only charged when at least two of the selected markets actually returned data (or the single one, if you selected only one). A record with only one site in it is not a comparison across sites, so it is free.
A keyword nobody is selling is an answer, not a failure. Measured 2026-08-18: a made-up product name is answered normally by Yahoo! Auctions, Mercari and PayPay Flea Market — each with 0 listings. That record ships with totalListingsFound: 0 on every market, the run ends normally, and it costs $0.00. A failed run means the sites could not be read at all.
Input
| Field | Example | Notes |
|---|---|---|
keywords | ["nintendo switch"] | Japanese usually matches more listings than English. Each keyword costs $0.02 |
markets | ["yahoo_auction","mercari","paypay_flea"] | Multi-select, all three by default. The price per keyword does not change |
mercariStatus | "both" | both / sold_out (sold prices) / on_sale (asking prices) |
maxItemsPerMarket | 100 | 30–300 listings sampled per market (and per Mercari status) |
priceMinJpy / priceMaxJpy | 15000 | Optional price window, applied identically to all markets client-side |
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: "cross_market_summary", abridged)
Measured on 2026-07-26 (real run)
{"type": "cross_market_summary","keyword": "nintendo switch","markets": {"yahoo_auction": {"market": "yahoo_auction","marketName": "Yahoo! Auctions Japan (closed auctions)","priceBasis": "sold","priceBasisLabel": "Sold — winning bid of an ended auction (bidCount >= 1)","available": true,"totalListingsFound": 229986,"sampledListings": 50,"pricedListings": 50,"priceJpy": {"min": 980, "p25": 3405, "median": 4540, "p75": 6520, "max": 62000, "average": 9026},"signals": {"soldListings": 50, "unsoldListings": 0, "sellThroughRatioSampled": 1.0,"bidCount": {"min": 1, "median": 1, "max": 1}},"sourceUrl": "https://auctions.yahoo.co.jp/closedsearch/closedsearch?p=nintendo+switch&n=50&b=1"},"mercari_sold": {"priceBasis": "sold", "priceJpy": {"median": 4775}, "signals": {"medianDaysToSell": 0}},"mercari_on_sale": {"priceBasis": "asking", "priceJpy": {"median": 3474}},"paypay_flea": {"priceBasis": "asking", "priceJpy": {"median": 14200},"signals": {"likeCount": {"median": 4}}}},"comparison": {"marketsCompared": ["yahoo_auction", "mercari_sold", "mercari_on_sale", "paypay_flea"],"medianJpy": {"yahoo_auction": 4540, "mercari_sold": 4775, "mercari_on_sale": 3474, "paypay_flea": 14200},"listingsFound": {"yahoo_auction": 229986, "mercari_sold": 15000, "mercari_on_sale": 15000, "paypay_flea": 149999},"comparable": true,"cheapestMarket": "mercari_on_sale", "priciestMarket": "paypay_flea","spreadJpy": 10726, "spreadPct": 308.8, "spreadBasis": "asking_vs_asking","mixedBasis": true,"pairs": [{"from": "yahoo_auction", "to": "mercari_sold", "basis": "sold_vs_sold", "sameBasis": true,"diffJpy": 235, "diffPct": 5.2, "cheaperMarket": "yahoo_auction"},{"from": "mercari_on_sale", "to": "paypay_flea", "basis": "asking_vs_asking", "sameBasis": true,"diffJpy": 10726, "diffPct": 308.8, "cheaperMarket": "mercari_on_sale"}],"note": "Bases are mixed. …"},"marketsWithData": ["mercari", "paypay_flea", "yahoo_auction"],"checkedAt": "2026-07-26T06:21:11+00:00"}
With includeIndividualItems: true you additionally get one record per listing, each tagged with market, marketEntry and priceBasis.
Use cases
- Sourcing across sites — buy on the cheapest market, sell on the dearest; the
sold_vs_soldpair is the one with a realized price on both ends - Proxy buying & export — quote a Japanese client a defensible price band per marketplace in one request
- Repricing — schedule the Actor and watch the median per market move over time
- Deciding where to list —
listingsFoundis the supply you would compete with,signals.sellThroughRatioSampled(Yahoo) andsignals.medianDaysToSell(Mercari) are the liquidity - Market research — how big is the asking-vs-sold premium in Japan, per category
Notes & limits
- A broad keyword compares different products, not different markets. "nintendo switch" matched a console-heavy mix on PayPay and an accessory-heavy mix on Mercari, which is why the measured spread above is 308% — that number is real, but it is a product-mix artifact, not arbitrage. Narrow the keyword, or set
priceMinJpy/priceMaxJpy; with a ¥15,000 floor the four medians tighten to ¥16,990–¥31,000, which is the actual console band - Check
pricedListingsbefore trusting a median: a tight price window can leave a market with very few listings totalListingsFoundis what each site reports for the keyword and is never rewritten by the client-side price window; each site also counts differently (Mercari caps its hit count at 15,000)- PayPay Flea Market can never return sold prices — they are not server-rendered. Nothing in this Actor pretends otherwise
- Yahoo's sold filter is
bidCount >= 1; ended auctions that received no bid are sampled but excluded from the price statistics (signals.unsoldListings) - Mercari's
medianDaysToSellusesupdated - created, which also moves on price edits, so it skews low — read it as a liquidity signal, not an exact time-to-sale - A market that fails does not fail the run: it comes back as
available: falsewith anerror, and the remaining markets are still compared. Only a keyword where every market failed 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件につき、ヤフオク(落札)・メルカリ・PayPayフリマの3市場の相場を1レコードで比較する Actor です。
- 概要: 各市場の価格統計(最安値・中央値・中間50%の範囲・最高値・平均)に加えて、市場間の価格差(
comparison)を、3市場そろえて $0.02 の1レコードで返します。 - 価格の「基準」が最重要: ヤフオクの落札価格は実際に成約した価格(sold)、PayPayフリマは**出品価格(asking)**です(PayPay は売却済み商品を公開していないため asking しか取得できません)。この2つを無自覚に引き算すると、存在しない利ざやが出ます。そこで全ブロックに
priceBasis(sold/asking)、全ペアにbasis(sold_vs_sold/sold_vs_asking/asking_vs_asking)を必ず付けています。メルカリで「両方」を選んだ場合はmercari_soldとmercari_on_saleの2ブロックに分けて返します(1つの中央値が2つの基準を混ぜないため)。 - 使い方:
keywordsにキーワード(日本語の方がヒットしやすい)、marketsで市場を選択(既定は3市場)、mercariStatusでメルカリの売り切れ/販売中を選びます。priceMinJpy/priceMaxJpyは3市場に同一条件で適用されるので、付属品や大量セット出品を除いて比較したいときに使ってください。個別明細が必要なときだけincludeIndividualItemsを ON にします。 - 料金: キーワード1件 $0.02(市場を何個選んでも同額)、個別明細は $0.002/件(既定 OFF なので既定実行は $0.02 固定)。選択した市場のうち2市場以上(1市場だけ選んだ場合は1市場)からデータが返らなかったキーワードには課金されません — 1市場だけの結果は「横断比較」ではないためです。キーワード単位の従量課金です。
- 注意: 広いキーワードは「市場の違い」ではなく「商品構成の違い」を比較してしまいます(実測:
nintendo switchは PayPay が本体中心・メルカリが付属品中心になり、価格差 308% と出ました)。キーワードを絞るか価格帯を指定してください(¥15,000 以上に絞ると4つの中央値は ¥16,990〜¥31,000 に収束し、本体の実勢価格帯になります)。中央値を読む前にpricedListings(統計に使われた件数)を確認してください。 - その他: ヤフオクの sold 判定は入札1件以上、メルカリの
medianDaysToSellは出品〜更新の日数(値下げでも動くため短めに出ます)。1市場が失敗してもavailable: falseとして残り、他市場の比較は続行します(全市場×全キーワードが失敗したときだけ run を失敗させます)。ブラウザ不使用・ログイン不要・1.5秒に1リクエスト、ヤフオクと PayPayフリマは同一基盤のため逐次取得しています。個人情報は取得しません。
If something goes wrong
- Wrong number or a failed run? Open a ticket on the Issues tab. I read every one and reply within 2 business days (Japan time).
- You never get a fake "empty" result. If the site can't be read, the run fails and says so.
- No results = no charge. You only pay for results you actually get.
- Checked every week. An automatic test runs this tool weekly; if the site changes, I fix it.
- Public pages only. No login, no personal data, and it goes easy on the site.
More tools by the same author
- Japan Used Camera & Lens — Dealer Price vs Sold Price
- Japan Figure & Gunpla — New Price vs Used Sold Price
- Used iPhone & Android Prices Japan — Dealer vs Sold
- Mercari & Yahoo Japan Demand — Sold vs Still Listed
- Pokemon Card Japan Sold Prices — Raw vs Graded per Card
- Mercari Japan Sold Prices — What Items Really Sell For
- Yahoo! Auctions Japan Sold Prices — Median, Range, Bids
- Mercari Japan Listings — One Row per Item, $0.0015 Each
Other language editions of this tool: 中文
All tools (Japan marketplaces, real estate, jobs, racing, prediction markets): https://apify.com/jpmarketdata
Disclaimer
Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by Mercari, Yahoo! Auctions or PayPay Flea Market. Product names and logos belong to their owners and only say where the data comes from. Data is read from public pages, for market research; check before you act on it.