BookOff Japan Used Manga, Books, CDs — Price & Stock avatar

BookOff Japan Used Manga, Books, CDs — Price & Stock

Pricing

from $20.00 / 1,000 keyword market analyzeds

Go to Apify Store
BookOff Japan Used Manga, Books, CDs — Price & Stock

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

h ichi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

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 forPriceWhen
Keyword summary$0.02Per keyword, and every keyword in your list is charged
Individual listing$0.002Only 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

FieldExampleNotes
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
maxItemsPerKeyword120How 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
includeIndividualItemsfalseTurn on to also get each read listing as its own row
convertToUsdtrueAdds 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:

usedPriceJpyBasisWhat it meansHow it is obtainedWhen you get it
exactRead from every matching listingThe whole result fits on one page (≤120 hits), so all of it is read — 1 requestNarrow keywords
population_quantilesThe cheapest, the middle 50% range, the median and the dearest come from every matching listing, not from a sample; count is the full hit countListings 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 requestsMost keywords
nullNothing was found, so there is no price to describe (keywordStatus: "not_found", no charge)Zero-hit keywords
sampleOrdinary statistics over only the listings that were read; count = how many that wasFallback. 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 outOfStockRatioSampled with 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 Piece 1,731 listings against ワンピース 2,174 (80%), camera 1,795 against カメラ 9,842 (18%), Gundam 498 against ガンダム 4,893 (10%), manga 689 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
  • totalListingsFound counts 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 truncatedForTimeLimit with usedPriceJpyBasis: "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件のキーワードには課金されません。 使った分だけの従量課金です。
  • 数値の根拠は必ず明示: usedPriceJpyBasisexact(全件が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

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.