BookOff Japan Used Manga, Books, CDs — Price & Stock
Pricing
from $20.00 / 1,000 keyword market analyzeds
BookOff Japan Used Manga, Books, CDs — Price & Stock
Type a keyword and get what used books, manga, CDs and games cost on BookOff Japan's online store. Returns typical used price and range across all matching listings, plus in-stock vs sold-out counts and list-price discount in a 120-item sample. $0.02 per keyword; no results, no charge. Unofficial.
Pricing
from $20.00 / 1,000 keyword market analyzeds
Rating
0.0
(0)
Developer
h ichi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
What it does: Type a keyword and get what used books, manga, CDs, DVDs and games cost on BookOff's official online store in Japan.
You enter: one or more keywords in Japanese, e.g. ガンダム; optional genre (books / comics / CD / DVD / games).
You get: typical used price, lowest–highest and middle 50%, usually read across all matching listings; from 120 sampled listings (the cheapest by default): in-stock vs sold-out counts, discount vs list price, new-copy price, top genres. Optional: one row per listing.
Price: $0.02 per keyword — every keyword in your list is charged — plus $0.002 per listing if you also want the list (off by default). No results = no charge.
Example: enter ガンダム → 4,893 listings · typical used price ¥550 (range ¥99–77,000) · 82% of the 120 sampled listings sold out · used copies about 78% below list price.
Unofficial — not affiliated with BOOKOFF. Reads public pages only.
Pricing — $0.02 per keyword
| What you pay for | Price | When |
|---|---|---|
| Keyword summary | $0.02 | Per keyword, and every keyword in your list is charged |
| Individual listing | $0.002 | Only if you turn on Include individual listings (off by default) |
A default run (1 keyword, summary only) costs $0.02 and takes about 8 seconds. You pay per keyword; there is no monthly fee. A keyword that returns zero listings is never charged.
Input
| Field | Example | Notes |
|---|---|---|
keywords | ["ガンダム"] | Japanese works best — the catalog is Japanese, and an English keyword only matches titles printed in Latin letters (measured: Gundam finds 498 listings, ガンダム 4,893). Each keyword costs $0.02 |
genreCode | "11" | Optional: 12 Books / 11 Comics / 13 Magazines / 31 CD / 71 DVD & Blu-ray / 51 Games. Empty = all genres |
maxItemsPerKeyword | 120 | How many listings are read for the stock split, the discount and the genre mix (30–360, 120 per page). Does not change the used-price figures; below 120 it only caps how many individual listings come back |
includeIndividualItems | false | Turn on to also get each read listing as its own row |
convertToUsd | true | Adds USD figures at the current exchange rate |
Whole search or 120-item sample — every number says which
Every summary carries usedPriceJpyBasis, so you never have to guess how the used price was worked out:
usedPriceJpyBasis | What it means | How it is obtained | When you get it |
|---|---|---|---|
exact | Read from every matching listing | The whole result fits on one page (≤120 hits), so all of it is read — 1 request | Narrow keywords |
population_quantiles | The cheapest, the middle 50% range, the median and the dearest come from every matching listing, not from a sample; count is the full hit count | Listings are ordered cheapest-first and the Actor jumps straight to the page holding the listing at that rank (e.g. hits 1,224 / 2,447 / 3,670 of 4,893 = pages 11 / 21 / 31), plus one dearest-first page for the highest price — 5 requests | Most keywords |
null | Nothing was found, so there is no price to describe (keywordStatus: "not_found", no charge) | — | Zero-hit keywords |
sample | Ordinary statistics over only the listings that were read; count = how many that was | Fallback. Used when the price order turns out not to rise steadily from page to page, or when a multi-keyword run hits its time budget (then truncatedForTimeLimit: true is also set) | Rare |
The fallback is the point: if the store ever changes how it orders results, the Actor stops claiming whole-search figures and labels the row sample instead of quietly returning wrong numbers.
newPriceJpy, stockBreakdown, outOfStockRatioSampled, discountVsListPricePct and genreTop always come from the sample only (sampledListings tells you its size). With the default maxItemsPerKeyword: 120 that sample is the 120 cheapest listings, so read the stock split as "the low-price end of this market"; raise it to 240/360 and the sample spreads across the whole price range using the pages that are read anyway — no extra requests, no extra time.
Output example (type: "market_summary")
Measured on 2026-07-25 (real BookOff pages, keyword ガンダム); the hit count was still 4,893 on 2026-08-18
{"type": "market_summary","keyword": "ガンダム","genre": null,"genreName": null,"totalListingsFound": 4893,"sampledListings": 120,"keywordStatus": "ok","hint": null,"usedPriceJpy": {"min": 99, "q1": 330, "median": 550, "q3": 1375, "max": 77000, "count": 4893},"usedPriceJpyBasis": "population_quantiles","newPriceJpy": {"min": 528, "q1": 660, "median": 990, "q3": 1650, "max": 6600, "count": 14},"stockBreakdown": {"inStock": 12, "lowStock": 6, "lastOne": 4, "outOfStock": 98},"outOfStockRatioSampled": 0.8167,"discountVsListPricePct": {"median": 78},"genreTop": [["コミック", 61], ["書籍", 34], ["DVD・ブルーレイ", 12]],"usedPriceUsd": {"min": 0.63, "q1": 2.11, "median": 3.52, "q3": 8.8, "max": 492.8},"exchangeRateJpyUsd": 0.0064,"checkedAt": "2026-07-25T09:00:00+00:00","sourceUrl": "https://shopping.bookoff.co.jp/search/keyword/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0?per-page=120&sort=50&p=1"}
q1 and q3 are the two ends of the middle 50% of prices: half of all ガンダム listings sit between ¥330 and ¥1,375.
A keyword that found nothing still gets its row, with every price field null, keywordStatus: "not_found", usedPriceJpyBasis: null (nothing was measured, so no basis is claimed) and a one-line hint saying what to try next — and it is not charged. A keyword that found listings has keywordStatus: "ok" and hint: null.
With includeIndividualItems: true you additionally get one row per listing — measured on 2026-08-18, keyword ONE PIECE 105:
{"type": "item","keyword": "ONE PIECE 105","id": "0019946797","title": "ONE PIECE(巻百五) ジャンプC","priceJpy": 220,"condition": "used","stockStatus": "in_stock","listPriceJpy": 528,"discountPct": 58,"releaseDate": "2023/03/03","storePickup": true,"url": "https://shopping.bookoff.co.jp/used/0019946797"}
Use cases
- Import & resale sourcing — check the Japanese used price band for a title before buying through a proxy service, and compare it against what the same title sells for on eBay or Mercari
- Pricing your own inventory — the median and the top of the middle 50% range, read across the whole result set, are what the Japanese market actually charges, not what the loudest listing asks
- Turnover screening — a high
outOfStockRatioSampledwith a thin in-stock count means the title moves; a low one means it sits on shelves - Catalog / rights research — how deep is the secondhand supply of a series, a label or an artist, and at what discount to list price
- Repricing & monitoring — schedule the Actor and track the median per keyword over time
Notes & limits
- Trading cards, figures and hobby goods are out of scope. BookOff's official online store has no TCG / hobby genre — only books, comics, magazines, CDs, DVDs & Blu-ray and games. Use a Mandarake or Suruga-ya source for cards and figures
- Keywords are matched against a Japanese catalog. An English keyword matches only the titles that are printed in Latin letters, so it finds a part of the market, not all of it — measured 2026-08-18:
One Piece1,731 listings againstワンピース2,174 (80%),camera1,795 againstカメラ9,842 (18%),Gundam498 againstガンダム4,893 (10%),manga689 against漫画38,239 (2%). Use 日本語 (ガンダム, 鬼滅の刃, 米津玄師) for the whole picture - BookOff is a fixed-price retailer, not a marketplace: prices are asking prices, and a sold-out product's price is the last price it was offered at — a good stand-in for what it sold for, but it is a product-master price, not a record of individual sales, and it carries no sale date (so no history over time)
- The store's default order is 人気順 (popularity), which is best-seller/ad weighted. This Actor always sends an explicit order so the numbers are not skewed
totalListingsFoundcounts every matching listing, in stock or not- "In stock only" / "used only" filters exist in the site's UI but their query parameters are not publicly stable, so v1 reports the stock split from the sample instead of filtering on the site's side
- Read-only and throttled (1 request / 1.5 s), 5 requests per keyword. Multi-keyword runs have a 95-second soft budget: keywords beyond it still return a summary, marked
truncatedForTimeLimitwithusedPriceJpyBasis: "sample" - No personal data is collected — BookOff is a first-party retailer, there are no sellers
日本語ガイド
ブックオフ公式オンラインストアの中古相場を、キーワード1件につき1レコードで返す Actor です。
- 概要: キーワードごとに 中古価格の代表値(最安・下位25%・中央値・上位25%・最高値) を返します。特徴は、先頭ページだけのサンプル統計ではなく 検索結果の全件から その値を読み取れること — 中古価格の安い順に並べ替え、その順位が載っているページへ直接ジャンプして読み取ります(例: 全4,893件なら 11 / 21 / 31 ページ目、計5リクエスト)。あわせて在庫内訳(在庫あり/残りわずか/残り1点/在庫なし)、在庫なし比率(ブックオフは売り切れ商品も価格付きで残るため、回転率と「実売価格に近い値」の指標になります)、定価に対する割引率の中央値、新品価格、ジャンル内訳、USD換算を返します(これらは読み取った120件のサンプル基準)。
- 使い方:
keywordsに日本語のキーワードを入れてください(カタログが日本語のため)。英語キーワードはローマ字表記のタイトルにしか当たりません(実測 2026-08-18: Gundam 498件 / ガンダム 4,893件、One Piece 1,731件 / ワンピース 2,174件)。0件のときはkeywordStatus: "not_found"とhintが付き、usedPriceJpyBasisは null になります(課金なし)。genreCodeでジャンルを絞れます(12=書籍 / 11=コミック / 13=雑誌 / 31=CD / 71=DVD・ブルーレイ / 51=ゲーム)。個別商品の明細が必要なときだけincludeIndividualItemsを ON にします。 - 料金: キーワードサマリー1件 $0.02、個別商品レコードは $0.002/件(既定 OFF なので既定実行は $0.02 固定)。0件のキーワードには課金されません。 使った分だけの従量課金です。
- 数値の根拠は必ず明示:
usedPriceJpyBasisがexact(全件が1ページに収まり全数集計)/population_quantiles(検索結果の全件から読み取り)/sample(読み取った件数だけの統計)のどれかを示します。ページ間で価格の並びが単調に上がらない場合や、複数キーワードで時間予算(95秒)を超えた場合は全件基準を名乗らずsampleに落ちます(誤った数値を黙って出さないため)。在庫内訳・割引率・ジャンル内訳・新品価格は常にサンプル基準です。 - 対象外: トレカ・ホビー・フィギュア系のジャンルは公式オンラインストアに存在しないため対象外です(書籍・コミック・雑誌・CD・DVD・ゲームのみ)。トレカやフィギュアの相場はまんだらけ等のソースをご利用ください。
- その他: ブックオフは定価販売の中古小売であり、価格は「出品価格」です。売り切れ商品の価格は「最後に提示されていた価格」であって個々の成約記録ではなく、販売日時も取得できません(時系列分析は不可)。既定の並び順(人気順)は広告・売れ筋バイアスがあるため、本 Actor は常に並び順を明示して取得します。
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
- @cosme Japan Beauty Ranking — Top 50 Ratings & Prices
- Digimart Japan Used Guitar & Instrument Prices
- Fujiya Camera Japan Used Camera Prices by Condition
- HobbyLink Japan Gunpla & Figure Prices + Stock Status
- Iosys Japan Used iPhone & Phone Prices by Condition
- Mandarake Japan Collectibles — Prices In Stock & Sold Out
- Tackleberry Japan Used Fishing Tackle Prices & Counts
- Yuyu-tei Japan TCG Card Prices — Sell & Buy-back Price
- Mercari Japan Sold Prices — What Items Really Sell For
- Yahoo! Auctions Japan Sold Prices — Median, Range, Bids
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 BOOKOFF. 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.