Pokemon Card Japan Sold Prices — Raw vs Graded per Card
Pricing
from $20.00 / 1,000 card sold comps
Pokemon Card Japan Sold Prices — Raw vs Graded per Card
Type a Japanese card name and get what each card sold for on Yahoo! Auctions and Mercari, by set, number and rarity. Returns median sold prices (sold comps) for raw and graded copies apart, the PSA/BGS multiple and a shop ask. $0.02 per name, charged only when a sale matches a card. Unofficial.
Pricing
from $20.00 / 1,000 card sold comps
Rating
0.0
(0)
Developer
h ichi
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
What it does: Finds sales of a card name on Yahoo! Auctions and Mercari, works out which exact card each sale was, and returns sold prices per card, raw and graded apart.
You enter: card names in Japanese, e.g. リザードン (search broadly; Pokemon by default, other games selectable)
You get: per card: set code, number, rarity, median sold price for raw and for PSA/BGS graded copies with the sales behind each, graded-to-raw multiple, Yuyu-tei shop price when in stock; plus how many sampled sales matched a card. Up to 60 cards per name.
Price: $0.02 per card name. +$0.002 per listing if you also want the list. Charged only when real sales resolved to at least one card.
Example: enter リザードン → 26 cards identified from 200 sampled sales (100 per site) · メガリザードンXex (m02a 223/193): raw median ¥4,800 · graded ¥15,800 · ×3.29 · shop asks ¥7,980
Unofficial — not affiliated with Yahoo! Auctions, Mercari or Yuyu-tei. Reads public pages only.
What you get
cards[] | One entry per identified card: setCode, cardNumber, rarity, name, and separate raw and graded sold statistics (min / p25 / median / p75 / max / average, each with its own n) |
gradedPremium | graded median ÷ raw median per card, with both sample sizes. Measured range on real data: ×1.6 to ×5.03 |
shopAsk | What a Japanese retailer (Yuyu-tei 遊々亭) asks for the same card today, and the gap to the realized median — only when the row is in stock (see below) |
keywordBand | The price band of the whole search term, raw vs graded, over every comparable listing — the denominator |
coverage | matchedCount / unmatchedCount / coverageRate, overall and per marketplace |
sources | Per-source availability, hit count, sample size and source URL |
catalogStatus | ok, no_match (the shop has no card by that word — with a catalogNote saying so) or unavailable (the catalog could not be read) |
USD conversion included. No login, no API key, nothing stored between runs.
The default Overview shows the per-card results and sample coverage;
Individual sales shows the optional listing rows. The JSON export keeps
every field, including query, game and checkedAt on both row types.
Both table views also retain the search name, game code and UTC check time.
Summary table exports name them summaryObservation.query,
summaryObservation.game and summaryObservation.checkedAt. Individual
sales use listingObservation.query, listingObservation.game and
listingObservation.checkedAt. They repeat the matching top-level values.
Three bases, tagged on every single statistic
Every block in the output states all three. Ignoring them is how a price product becomes a lie:
| Tag | Values | Why it matters |
|---|---|---|
priceBasis | sold / asking | Yahoo! and Mercari are realized sales; the shop catalog is an asking price |
gradingBasis | raw / graded | Never pooled. sv10 114/098 measured raw ¥2,999 vs graded ¥15,100 = ×5.03. 32–49 % of listings are graded, so one blended median describes no card that exists |
identityBasis | card / keyword | A keyword band for リザードン spans forty different cards. It is a useful denominator, never a card price |
Out-of-stock shop prices are shown but never differenced. An out-of-stock
提示価格 keeps its last value and drifts far above the market — xy08bs 062/059
asked ¥178,000 against a ¥17,750 sold median (×10.03). Publishing that gap
would invent an arbitrage that does not exist, so shopAsk.usable goes false
and no difference is computed. (In the live run below, three cards hit this —
including one asking ¥128,000 with no stock.)
Coverage is published, not hidden
Marketplace titles are free text, so not every listing can be resolved to a card. Measured over 360 real listings:
| Resolved to exactly one card | |
|---|---|
| Yahoo! Auctions | 80.4 % of comparable listings |
| Mercari | 48.9 % (shorter titles, usually no collector number) |
| Combined | 62.6 % of comparable listings — 55.3 % of all listings |
Identification precision, hand-audited: 99.0 %.
Unresolved listings are not discarded — they fall back to keywordBand
with their own n, and coverage.coverageRate always tells you how much of
the sample made it. The only listings dropped from every statistic are lots
(まとめ / オリパ / N枚 / …) and non-Japanese printings, counted as
excludedListings: a 30-card lot at ¥30,000 is not a sold price for one card.
Pricing — $0.02 per card name
| Event | Price | When |
|---|---|---|
card-analyzed | $0.02 | Once per card name analyzed |
listing-scraped | $0.002 | Only if you enable Include individual listings |
A default run (one card name) costs $0.02 and takes about 5 seconds.
A card name is charged only when real sales were found and at least one of
them resolved to a catalog card. A word the shop catalog does not know (an
English card name, for example) returns the keyword band with
catalogStatus: "no_match" and is not charged, because a band that spans
forty different cards is not the per-card price this Actor sells.
You pay per card name; there is no monthly fee and no minimum.
Input
| Field | Example | Notes |
|---|---|---|
cardNames | ["リザードン"] | Japanese. Search broadly — see below. Max 10 per run, $0.02 each |
game | "poc" | poc Pokemon (measured default) / ygo / opc / dm / ws / ua / vg / digi / bs / gcg |
maxSoldPerSource | 100 | Sold listings sampled per marketplace (30–300) |
minSoldPerCard | 1 | Hide thin cards from cards[]. Never changes a denominator — coverage and keywordBand are unfiltered |
includeIndividualListings | false | Every listing with the card it resolved to and why (+$0.002 each) |
convertToUsd | true | Adds USD next to JPY |
Card names are Japanese
The shop catalog is a Japanese one, so an English name finds nothing in it:
measured 2026-08-18, charizard returned 0 catalog cards while リザードン
returned 126. Marketplaces still return listings for the English word, but
none of them can be resolved to a card — the record comes back with
catalogStatus: "no_match" and is not charged.
Measured on the catalog, 2026-08-18 (Pokemon, game: "poc"):
| English | Enter this | Catalog cards |
|---|---|---|
| Charizard | リザードン | 126 |
| Pikachu | ピカチュウ | 312 |
| Mewtwo | ミュウツー | 128 |
| Eevee | イーブイ | 108 |
| Rayquaza | レックウザ | 73 |
| Umbreon | ブラッキー | 38 |
For any other card, the Japanese name is the one printed on the Japanese release — Bulbapedia lists it on every card and Pokemon page ("Japanese name"), and the shop's own site (yuyu-tei.jp) is searchable with it.
Search broadly, not narrowly. Use リザードン, not リザードンex. The shop
catalog is looked up with the same word, and a narrow word leaves prints like
メガリザードンXex out of it — 11 sales were lost that way when measured.
Individual cards are separated afterwards, locally, at no extra request cost.
Run the same watchlist again
Save the input as an Apify Task, then rerun it or add a daily or weekly
schedule to match your pricing work. Keep cardNames, game,
maxSoldPerSource and minSoldPerCard unchanged when comparing observations.
For example, a shop can save ["リザードン", "ピカチュウ"] with game: "poc",
check the same cards each week, and keep the JPY medians and sample sizes in
its own price history. This Actor does not store history or return only new
sales; every run reads another bounded sample.
- After a run succeeds, export its default dataset as JSON. Retain the run ID and the saved input alongside it. A failed run can have partial rows; do not treat them as a complete watchlist refresh. If fewer summary rows than requested names arrive, check the run log: the time budget can skip later names without charging them.
- Select
type: "card_sold_comps".checkedAtis the UTC time when that query's observation was assembled after the source requests. It is not the time a card sold, and different names can have different times. Before comparing prices, inspectcatalogStatus, each source'savailable/error,coverage.coverageRate, and both raw and gradedn. A partial-source result is a different sample from a full-source one. - For each entry in
cards, compare the samegame+cardKey+gradingBasisover time, withpriceBasis: "sold". Usequeryand the saved input to distinguish overlapping searches and different sample settings. Keep snapshots undercheckedAt(and run ID for retries).cardKeyissetCode|cardNumber|raritywithin that game's current Yuyu-tei catalog; it is not a global card ID. A catalog correction can change it. Graded medians pool the observed grades; checkgradesbefore attributing a price change to the market rather than a different mix. - To maintain an auditable sales collection, enable
includeIndividualListings(+$0.002 per listing). Selecttype: "listing"and deduplicate sales withsource+id. Different marketplaces can reuse an ID, and overlapping names or later runs can return the same sale. For a history of observations, keepgame+query+source+id+checkedAtinstead. Listing rows carry their summary'sgameandcheckedAt;cardKey,matchVerdictand the twocountedIn*flags explain whether the sale contributed to a card price, only the keyword band, or neither. Deduplicating your export does not change the per-run charges.
A missing card is not a deletion or a zero price. It may fall below
minSoldPerCard, leave the bounded sample, fail to match, or fall beyond the
60-entry cards limit. cardsReported counts cards passing the threshold
before that limit; cardsTruncated: true says the array was capped.
coverage.identifiedCards counts identities before the threshold, and
coverageRate uses comparable listings after lot / foreign-print exclusions.
Do not replace an earlier card price with zero when it disappears. Likewise,
shopAsk.usable: false means the displayed asking price is unusable for the
comparison; an out-of-stock row is not evidence of a new sale.
Compare JPY values for a price history. Optional USD values also move with the exchange rate, and these observations do not promise a fixed sale-date window or complete marketplace history.
Output example
Measured on 2026-08-07 (real run) — cardNames: ["リザードン"], maxSoldPerSource: 100,
minSoldPerCard: 2. 200 sold listings sampled, 38 lots excluded, 162
comparable, 80 resolved to 26 distinct cards.
{"type": "card_sold_comps","query": "リザードン","game": "poc","coverage": {"soldListings": 200,"excludedListings": 38,"comparableListings": 162,"matchedCount": 80,"unmatchedCount": 82,"coverageRate": 0.4938,"identifiedCards": 26,"byVerdict": {"NO_HANDLE": 66, "MATCH_NUM": 49, "REJECT_LOT": 38,"MATCH_NAME": 31, "AMBIGUOUS_NAME": 10, "NO_MATCH": 5,"AMBIGUOUS_NUM": 1},"bySource": {"yahoo_auction": {"soldListings": 100, "comparableListings": 79,"matchedCount": 49, "coverageRate": 0.6203},"mercari": {"soldListings": 100, "comparableListings": 83,"matchedCount": 31, "coverageRate": 0.3735}}},"keywordBand": {"identityBasis": "keyword","raw": {"gradingBasis": "raw", "priceBasis": "sold", "n": 108,"soldJpy": {"min": 420, "p25": 2075, "median": 4800,"p75": 14500, "max": 320000, "average": 23260}},"graded": {"gradingBasis": "graded", "priceBasis": "sold", "n": 54,"soldJpy": {"min": 5780, "p25": 15050, "median": 27800,"p75": 84150, "max": 900000, "average": 78529},"grades": {"PSA10": 49, "PSA9": 3, "ARS10": 1, "ARS9": 1}},"gradedShare": 0.3333},"cardsReported": 18,"cards": [{"cardKey": "m02a|223/193|MA","setCode": "m02a", "cardNumber": "223/193", "rarity": "MA","name": "メガリザードンXex","soldListings": 10,"raw": {"identityBasis": "card", "gradingBasis": "raw","priceBasis": "sold", "n": 4,"soldJpy": {"min": 4350, "p25": 4688, "median": 4800,"p75": 4825, "max": 4900, "average": 4712},"bySource": {"yahoo_auction": 4, "mercari": 0}},"graded": {"identityBasis": "card", "gradingBasis": "graded","priceBasis": "sold", "n": 6,"soldJpy": {"min": 6600, "p25": 15275, "median": 15800,"p75": 15950, "max": 16200, "average": 14250},"grades": {"PSA10": 5, "PSA9": 1},"bySource": {"yahoo_auction": 5, "mercari": 1}},"gradedShare": 0.6,"gradedPremium": {"multiple": 3.29, "rawMedianJpy": 4800, "rawN": 4,"gradedMedianJpy": 15800, "gradedN": 6,"basis": "graded_sold_median / raw_sold_median"},"shopAsk": {"priceJpy": 7980, "stockStatus": "in_stock","priceBasis": "asking", "usable": true,"detailUrl": "https://yuyu-tei.jp/sell/poc/card/m02a/10459","vsRawSoldMedian": {"basis": "asking_vs_sold","diffJpy": 3180, "diffPct": 66.2}}}]}
メガリザードンXex is exactly the card a narrow catalog query would have missed.
(That run predates the catalogStatus field. This abbreviated historical
example also omits checkedAt; current summary rows include both fields.)
Who this is for
- Resellers and arbitrage — the Japanese realized price is the number that
decides whether an import is worth it, and
gradedPremiumtells you whether the margin is in the card or in the slab - Graders — is submitting this card worth the fee?
gradedPremiumwith bothnvalues answers it per card, not per set - Collectors — what a card really goes for in its home market, not the asking price of the one listing you found
- Card shops and marketplaces — pricing against what cards really sold for in Japan
How it works
Three sources, three separate infrastructures, read in parallel; paging inside each stays sequential and throttled to one request per 1.5 s. No browser, no login.
- Yuyu-tei (遊々亭) — one request returns the whole catalog for the search
word (no paging), giving
setCode/cardNumber/rarityas typed fields - Yahoo! Auctions — closed auctions; an auction counts as sold only
with
bidCount >= 1, so ended-unsold buy-it-nows never reach a median - Mercari — sold-out listings only
Then the join runs locally: collector number first (114/098, 001/SV-P
promo numbers canonicalized), then card name plus an explicit rarity. A
title with neither is left unresolved rather than guessed. EX (2012) and ex
(2023) are treated as different cards — case is the only thing separating
ミュウツーEX from ミュウツーex, and conflating them put eleven ¥30,000 sales
onto a ¥500 card.
Limits
- Japanese-language catalog. Card names must be in Japanese
- Coverage is 37–80 % per source and varies with how specific the listings are. It is always reported; it is never silently assumed to be 100 %
- Pokemon is the measured default. The collector-number match works for any
game, but the Japanese set-name and series tables are Pokemon-tuned, so other
games resolve fewer listings — visible in
coverage.coverageRate - Sampled statistics, not a full census:
sources[].totalListingsFoundis what the marketplace reports,sampledListingsis what was actually read - No image URLs and no description text are collected from the shop catalog (its terms of service forbid reuse of images and copy)
日本語: ポケモンカードが日本で実際にいくらで落札されたか(出品価格ではなく成約価格)を、ヤフオク・メルカリから型番(セット/カード番号/レアリティ)単位で集計し、PSA/BGS鑑定品と生カードを分けて返します。遊々亭の在庫あり提示価格との差も付きます。カード名1件 $0.02 の従量課金です。
中文: 输入日文卡名(如 リザードン,英文名在目录中查不到)即可获得宝可梦卡牌在日本的实际成交价(而非挂牌价),按卡编号/稀有度归集,并将 PSA/BGS 鉴定卡与裸卡分开统计。每个卡名 $0.02,按量计费。
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
- Yahoo, Mercari & PayPay Japan — Same Item, 3 Prices
- Mercari & Yahoo Japan Demand — Sold vs Still Listed
- 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
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 Yuyu-tei. 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.