Yuyu-tei Scraper - Japan TCG Card Prices & Buylist (遊々亭) avatar

Yuyu-tei Scraper - Japan TCG Card Prices & Buylist (遊々亭)

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Yuyu-tei Scraper - Japan TCG Card Prices & Buylist (遊々亭)

Yuyu-tei Scraper - Japan TCG Card Prices & Buylist (遊々亭)

Yuyu-tei scraper for Japanese trading card prices: sell price, stock and buy (kaitori) price of each single card on yuyu-tei.jp in one row, with spread and buy rate. Pokemon, Yu-Gi-Oh!, One Piece, Duel Masters and 20 more games. Card name, series or URL. Unofficial; not affiliated with Yuyu-tei.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

JP Open Data

JP Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What Yuyu-tei (遊々亭, yuyu-tei.jp) sells each single card for, how many it has in stock, and what it pays to buy the same card back — joined into one row per card with the sell-buy spread and buy rate. Pokemon, Yu-Gi-Oh!, One Piece, Duel Masters, Weiss Schwarz, Union Arena and 18 more card games.

Search by Japanese card name, by series (収録弾), or paste yuyu-tei.jp URLs — including single card pages to track a watchlist. For every search the Actor reads the shop's sell list and its buy list (and optionally its damaged-copy list) and joins them on the shop's own card key, so every row answers "sell price, stock, buy price, gap" for one card.

Unofficial tool. Not affiliated with or endorsed by Yuyu-tei or 株式会社スカラプレイス. It reads publicly available pages only (no login), politely (strictly serial requests at least 2 s apart, a hard per-run request budget, no block evasion), requests only URLs the site's robots.txt allows, and stores product facts only — no images, no image URLs, no card text, no personal data. You are responsible for making sure your use of the data complies with the site's terms and applicable law.

Related Actors from the same publisher:


Quick start — verified input

Copy this into the input (JSON tab) or send it via the API. It was run successfully on 2026-10-13 (30 cards, all with sell and buy price; 2 requests; about 20 seconds; default residential proxy). Running with an empty input {} uses exactly these values.

{
"game": "poc",
"keywords": ["リザードンex"],
"mode": "both",
"maxItems": 100
}

Common input mistakes

WrongRightWhy
"keywords": ["Charizard"]"keywords": ["リザードン"]The shop lists Japanese card names. English names usually find nothing; card numbers and cards with English names still work.
"game": "Magic"—Yuyu-tei does not sell MTG. Use jpopendata/japan-tcg-hareruya.
"series": ["Terastal Festival ex"]"series": ["sv08a"] or ["SV8a"] or ["テラスタルフェス"]The shop's code from the series page URL, the expansion code printed in its label, or a part of the Japanese series name.
"startUrls": ["https://yuyu-tei.jp/buy/poc/s/ultra"]a search, series or card URLSpecial lists (new, sale, ultra) mix layouts and are not read; sealed products (/m/) neither.
"mode": "buylist only""mode": "buy"both, sell or buy (買取, buylist, sell+buy are understood too).
"maxItems": 10 with a broad name"maxItems": 500A bare name matches every printing: ピカチュウ alone is about 350 cards.

An invalid value stops the run immediately, before any request to the site, with a message that names the field and lists the valid values. A series value is checked against the shop's own series list (one request) before anything is searched, and an unknown one stops the run with suggestions.

Empty results?

A search with no matching card finishes with 0 records and complete: true — that is not an error (the site itself answers 「検索条件に該当する商品は見つかりませんでした」). Typical causes: an English or misspelled card name (use the Japanese name as printed, e.g. リザードンex), the wrong game for that card, or rarities / inStockOnly filters that remove everything. Nothing is charged for an empty search. The RUN_SUMMARY record in the key-value store shows, per search, how many cards the sell, buy and damaged pages held and how many rows were filtered out.


Who is this for?

  • Resellers and arbitrage: the buy rate (買取率) and the sell-buy spread of every card in one row; raised buy prices (買取価格アップ) are flagged with the previous price.
  • Price tracking: paste the card pages you watch and schedule a daily run — cards of one series share the same two requests.
  • Market research: list a whole series with prices, stock and rarity, or compare Yuyu-tei with other shops by card number and set code.

Input

FieldDefaultNotes
gamepocSection code: poc Pokemon, ygo Yu-Gi-Oh! OCG, opc One Piece, dm Duel Masters, ws Weiss Schwarz, ua Union Arena, vg Vanguard, digi Digimon, yrd Yu-Gi-Oh! Rush Duel, bs Battle Spirits, wx WIXOSS, hocg hololive, gcg Gundam Card Game, sev Shadowverse: Evolve, wsr Weiss Schwarz Rose, fe Fire Emblem Cipher, zx Z/X, lo Lycee Overture, chaos ChaosTCG, pm Precious Memories, re Rebirth for you, xs Xross Stars, gab Gundam Arsenal Base, ei Eiketsu Taisen. English or Japanese names work too. Used for keywords and series.
keywords["リザードンex"]Japanese card names, one per line. Each returns every matching card of the game (all printings and rarities).
seriesemptySeries (expansions) to list completely: sv08a, SV8a, テラスタルフェス or the series URL.
startUrlsemptyyuyu-tei.jp search, series or card URLs (see below).
modebothboth = sell + buy in one row (2 requests per search); sell = sell prices and stock; buy = buy prices only.
includeDamagedfalseAlso read the damaged-copy list (傷有り) and store those copies as extra rows (condition: "damaged"), one more request per search.
raritiesemptyKeep only these rarities as the shop labels its sections (SAR, SR, UR, QCSE...). Applied after fetching.
inStockOnlyfalseKeep only cards the shop can sell now. Applied after fetching.
maxItems100Records stored for the whole run, 1 to 100,000.
maxApiRequests0Request budget for the whole run; 0 = automatic (what the searches need plus a little headroom for retries).
proxyConfigurationApify RESIDENTIAL, country JPyuyu-tei.jp refuses Apify datacenter IPs (HTTP 403), so the default uses Apify's residential proxy in Japan. One sticky session (one IP) is kept for the whole run; only if the very first request is refused is it retried once on a fresh session. Never rotation.

Each search is one request per side — the site shows every match on a single page, there is no paging. Up to 200 keywords, series and URLs per run.

Search by series

{
"game": "poc",
"series": ["SV8a", "m06a"],
"maxItems": 1000
}

The values are resolved against the shop's own series list for the game, read once per run from https://yuyu-tei.jp/top/<game>; the log shows what each value resolved to (SV8a -> sv08a ([SV8a] ハイクラスパック テラスタルフェスex)).

Paste URLs and track single cards

{
"startUrls": [
"https://yuyu-tei.jp/sell/poc/s/search?search_word=%E3%83%AA%E3%82%B6%E3%83%BC%E3%83%89%E3%83%B3",
"https://yuyu-tei.jp/buy/ygo/s/qccu",
"https://yuyu-tei.jp/sell/poc/card/m06a/10136",
"https://yuyu-tei.jp/sell/poc/card/m06a/10137"
]
}
  • Search URLs (/sell/<game>/s/search?..., also the mobile form and the damaged-copy search): the keyword (search_word) and series (vers[]) are kept; other filters in the URL (rare, type, sell_ok_only, sort) are not used and are listed in the log — use rarities and inStockOnly instead. kizu=1 or a damaged-copy search URL turns on the damaged list for that search.
  • Series pages (/sell/<game>/s/<code>) list the whole series.
  • Card pages (/sell/<game>/card/<series>/<id>) return just that card. Card URLs of the same series are answered from one sell and one buy request; each row's query is the URL you pasted. A /damage card URL adds the damaged-copy row.
  • Whether a URL says /sell/ or /buy/ does not matter: mode decides which prices are read. The game comes from the URL, so one run can mix games.

Damaged copies (傷有り)

With "includeDamaged": true, the shop's damaged-copy list for each search is read too. Those copies become separate rows with condition: "damaged", their own sell price and stock, and empty buy fields (the shop's buy price is not a price for damaged copies). The regular rows are condition: "undamaged".

Sample output (one dataset item)

{
"game": "poc",
"gameName": "ポケモンカードゲーム",
"gameNameEn": "Pokemon Card Game",
"cardId": "poc/sv08a/10481",
"seriesCode": "sv08a",
"setCode": "SV8a",
"seriesName": "ハイクラスパック テラスタルフェスex",
"cardNumber": "236/187",
"cardName": "ピカチュウex",
"rarity": "UR",
"condition": "undamaged",
"recordType": "sell+buy",
"sellPriceJpy": 9980,
"sellRegularPriceJpy": null,
"onSale": false,
"stock": 3,
"stockText": "3 点",
"inStock": true,
"buyPriceJpy": 6000,
"buyPreviousPriceJpy": 3000,
"buyPriceUp": true,
"spreadJpy": 3980,
"spreadPct": 39.9,
"buyRatePct": 60.1,
"sellUrl": "https://yuyu-tei.jp/sell/poc/card/sv08a/10481",
"buyUrl": "https://yuyu-tei.jp/buy/poc/card/sv08a/10481",
"query": "ピカチュウ",
"queryType": "keyword",
"source": "遊々亭 Yuyu-tei (yuyu-tei.jp) single-card sell and buy lists",
"sourceUrl": "https://yuyu-tei.jp/",
"license": "Publicly available data — unofficial tool; users are responsible for compliance with the source site's terms",
"retrievedAt": "2026-10-13T04:43:33.000Z"
}
FieldMeaning
cardIdThe shop's unique card key <game>/<series code>/<card id> — identical on the sell, buy and damaged lists.
seriesCode / setCode / seriesNameThe shop's series code (as in its URLs), the expansion code printed in the series label (null when the label has none) and the series name.
cardNumberThe card number as printed (236/187, QCCU-JP001); null when the shop shows none. Together with setCode it lets you match the card at other shops.
rarityThe rarity section the shop lists the card under (null when it shows "-").
conditionundamaged (傷無し) or damaged (傷有り) sell listing; null on buy-only rows.
recordTypesell+buy (both prices), sell (the shop is not buying it, or mode: "sell"), buy (buy price only).
sellPriceJpy / sellRegularPriceJpy / onSaleThe current sell price; while the card is on sale (特価) also the struck-through regular price.
stock / stockText / inStockstockText exactly as shown: 3 点 (a count), ◯ (in stock, no count shown) or × (sold out). stock is the count, 0 for sold out, null for ◯. Sold-out cards keep their listed price.
buyPriceJpy / buyPreviousPriceJpy / buyPriceUpThe buy (kaitori) price; when the shop has raised it, the previous price and buyPriceUp: true.
spreadJpy / spreadPct / buyRatePctUndamaged sell price minus buy price, the same as a % of the sell price, and the buy price as a % of the sell price (買取率). Filled on sell+buy rows.
sellUrl / buyUrlThe public card pages (only written to the output, never fetched).
query / queryTypeThe keyword, series value or pasted URL that produced the row.

Rows come in the shop's own order (rarity sections), then buy-only cards, then damaged copies. A card found by two searches of the same run is stored once.

Honest limits

  • Japanese names. The shop's search matches Japanese card names; English names mostly return nothing.
  • List-page facts only. The Actor reads the search result lists and never opens card pages. There are no card images, image URLs or card texts by design.
  • Buy prices as listed. buyPriceJpy is the shop's listed buy price; what it actually pays can depend on the condition of the copy under the shop's buy rules, which this Actor does not read.
  • Stock counts. When the shop shows ◯ instead of a number, the count is unknown (stock: null, inStock: true).
  • Not read: special lists (new arrivals, sale, raised-buy-price lists), sealed products, accessories (サプライ).
  • Prices change. Every row is a snapshot at retrievedAt.
  • Residential proxy. The site refuses Apify datacenter IPs, so runs go through Apify's residential proxy in Japan by default. A residential IP can occasionally be refused too; the first request is then retried once on a fresh session, and if that is refused as well the run fails without storing (or charging) anything — run it again a little later.
  • The site can change or refuse requests. If it refuses a request after some records were stored, the run keeps them and ends successfully with complete: false and a stopReason in RUN_SUMMARY. A search is stored only when all of its pages were read, so a row never lacks a buy price because the buy page failed. If the very first request is refused, the run fails visibly instead of retrying aggressively.

robots.txt and terms

  • yuyu-tei.jp/robots.txt (checked 2026-10-13) contains only crawl-delay lines for four named crawlers and no rule for other agents, so every page this Actor requests is allowed. The Actor still checks each URL against a copy of that file before requesting it, and keeps at least 2 s between requests.
  • The site's terms (利用規約, /info/rule) do not prohibit automated access by name. Their copyright clause reserves the site's images, texts and content, so this Actor stores only factual data points (names, numbers, prices, stock) and links, never images or texts.
  • Only public pages are read; nothing behind a login, no cart or member pages. The Actor never places orders.

Data protection (GDPR)

The output contains product facts only. The pages read carry no personal data and none is collected or stored, so GDPR obligations concerning personal data do not arise from this data. If you combine it with personal data elsewhere, that processing is your responsibility.

Pricing

Pay per result: you are charged for each record stored in the dataset. Empty searches cost nothing. A run stops by itself when it reaches the maximum charge you set for the run.