BOOTH Japan Item Prices — Typical Price, Range, In Stock
Pricing
from $20.00 / 1,000 keyword analyzeds
BOOTH Japan Item Prices — Typical Price, Range, In Stock
Type a keyword like VRChat and see what creators on BOOTH Japan charge for it. You get how many items match, the typical price and the lowest-highest range, how many are still in stock, and how many shoppers saved the most popular ones. $0.02 per keyword, no results = no charge. Unofficial.
Pricing
from $20.00 / 1,000 keyword analyzeds
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
Unofficial — independent tool, not affiliated with, endorsed by, or sponsored by BOOTH or pixiv. It reads only publicly visible pages. Support, reliability guarantees and the full disclaimer are at the bottom of this page.
What it does: Type a keyword and see what creators on BOOTH Japan (pixiv's marketplace) charge for it, and how much of it you can still buy.
You enter: keywords — Japanese finds the most (アクスタ), English works when the item uses it (VRChat).
You get: BOOTH's exact item count and in-stock count, the typical price and low-to-high range in yen and USD, the shops, categories and stock states behind the 60 listings read, and wish-list counts for the items opened. Optional: one row per listing.
Price: $0.02 per keyword. +$0.002 per row if you also want the list. No results = no charge.
Example: enter VRChat → 213,694 items listed · 212,802 still buyable (99.6%) · typical ¥350, middle half ¥150–800 · 40 different shops among the 60 listings read · the more popular of the two items opened is on 51,637 wish lists (real run, 2026-09-08)
Unofficial — not affiliated with BOOTH or pixiv. Reads public pages only.
Pricing — $0.02 per keyword
| Event | Price | When |
|---|---|---|
| Keyword market summary | $0.02 | Once per keyword, when its numbers come back |
| Individual listing | $0.002 | Only if you turn on Also return each listing as a row |
A default run (1 keyword, summary only) costs $0.02 and takes about 15 seconds. You pay per keyword; there is no monthly fee. A keyword that returns zero listings is never charged.
Input
| Field | Example | Notes |
|---|---|---|
keywords | ["VRChat"] | 1–20 words, one row and $0.02 each; about 15 fit in one run (the run stops reading after 240 seconds and later words come back as unknown, not charged). Japanese finds the most (アクスタ, アバター); English works when the item uses it |
category | "3Dモデル" | Empty = all of BOOTH. A BOOTH category name in Japanese keeps every number inside that category (VRChat: 213,694 → 195,765 in 3Dモデル) |
inStockOnly | false | false counts sold-out items too, like BOOTH's own search. true describes only what you can still buy, and inStockShare becomes 1.0 |
sampleFrom | "popular" | popular or new — which 60 listings the shop count, stock breakdown, categories and optional rows come from. Prices are unaffected |
detailSampleSize | 2 | 0–10. How many of those listings get their own page opened, for wishListCounts and firstListedAt. One request each; 0 skips them |
includeIndividualItems | false | Turn on to also get the listings read, one row each (up to 60 per keyword), at +$0.002 per row |
convertToUsd | true | Adds priceUsd at today's rate. A failed rate lookup never fails the run |
Output example (type: "creator_market_summary")
Measured on 2026-09-08 (real run, {"keywords": ["VRChat"], "detailSampleSize": 2, "includeIndividualItems": false} — 9 requests, 17 seconds). The whole record, nothing shortened.
{"type": "creator_market_summary","keyword": "VRChat","keywordStatus": "ok","locale": "ja","categoryFilter": null,"inStockOnly": false,"sortUsed": "popular","totalListingsFound": 213694,"inStockCount": 212802,"inStockShare": 0.9958,"sampledListings": 60,"priceJpy": { "min": 0, "p25": 150, "median": 350, "p75": 800, "max": 9999999, "average": null },"priceJpyBasis": "population_quantiles","priceJpyMaxNote": "highest listed price; BOOTH allows placeholder listings up to ¥9,999,999","freeItemShare": 0.0,"distinctShops": 40,"stockMix": { "inStock": 60, "outOfStock": 0, "saleEnded": 0, "lowStock": 0 },"topCategories": [{ "name": "3Dキャラクター", "categoryId": 208, "count": 35 },{ "name": "3Dツール・システム", "categoryId": 215, "count": 12 },{ "name": "3D小道具", "categoryId": 210, "count": 5 }],"wishListCounts": { "min": 50268, "median": 50952, "max": 51637, "sampleSize": 2 },"firstListedAt": {"oldest": "2024-06-11T12:45:33.000+09:00","newest": "2025-11-17T20:00:10.000+09:00","sampleSize": 2},"soldOutInDetailSample": 0,"pageCapHit": false,"monotonicityCheck": "ok","hint": null,"sourceUrl": "https://booth.pm/ja/search/VRChat","checkedAt": "2026-09-08T17:10:41.110949+00:00","priceUsd": { "min": 0.0, "p25": 0.97, "median": 2.27, "p75": 5.18, "max": 64759.99, "average": null },"exchangeRateJpyUsd": 0.006476}
Reading that record:
totalListingsFoundandinStockCountare BOOTH's own counts, printed above its result grid, and they cover every matching item.inStockShareis one divided by the other — 99.6% here because VRChat items are downloads that never run out, against 70% forアクスタ, where the goods are physically made to order (measured 2026-09-08: 45,692 listed, 31,980 buyable).priceJpycovers every matching item too, not the 60 read. BOOTH's cheapest-first order holds across pages, so the tool reads the listing sitting at the matching rank: ¥150 is the price a quarter of the way up all 213,694 items, ¥350 the middle one, ¥800 three quarters up.priceJpyBasissays which reading you got (see the table below).minis ¥0 and that is real — BOOTH is full of free downloads.freeItemSharecounts how many of the 60 listings read were free (0 here: the popular ones are all paid).averageisnullwhenever the numbers cover every item. An average needs every single price, which would mean reading all 3,562 pages of this one keyword; the middle values are read at their rank instead, and the tool leaves the field empty rather than quietly swapping in an average of the 60 listings it did read.maxis the highest price anyone typed, not a market price. BOOTH lets a creator list up to ¥9,999,999 and some do, as a placeholder or a joke.priceJpyMaxNoterepeats this on every record. Use the middle values for pricing decisions.sortUsedis the order the 60 listings were read in — yoursampleFromchoice,popular(BOOTH's own default order) ornew. It is not the order behind the prices:priceJpyis always read from BOOTH's cheapest-first order at the matching rank, whateversortUsedsays.sampledListings,distinctShops,stockMix,topCategoriesandfreeItemSharecover the 60 listings read (which 60 is yoursampleFromchoice).wishListCounts,firstListedAtandsoldOutInDetailSamplecover only the items opened —sampleSizesays how many that was.
Does a number cover every item, or only the ones read?
priceJpyBasis | What it means |
|---|---|
population_quantiles | The typical price and the middle range were read at their rank in the cheapest-first order — they describe every matching item |
population_median | The middle value was read that way, but at least one edge sits deeper than page 3,333, which BOOTH will not serve. That edge is null and pageCapHit is true |
sample | The cheapest-first order did not come back in order (monotonicityCheck: "violated"), so the numbers fall back to the 60 listings read and say so, rather than publish a broken figure |
When a keyword comes back empty
keywordStatus is ok as soon as BOOTH returns items, not_found when BOOTH itself says zero (with hint naming the next thing to try, null otherwise), and unknown when the run reached its time limit before the keyword. Zero items is never charged. Measured 2026-09-08: zzzqqxnotarealproduct returns a normal-looking 46 KB page whose only difference is 対象商品 0 件, and the run finishes in 1 request with not_found.
truncatedForTimeLimit: true is on every row the reading budget touched. The run stops starting new keywords after 240 seconds, so a keyword reached after that comes back unknown with this key, every figure null and no charge. The same key on a charged ok row means the budget ran out part-way through that keyword: its counts and prices are complete, but the item pages were skipped, so wishListCounts and firstListedAt read sampleSize: 0 even though detailSampleSize asked for more. Rows without the key were read inside the budget.
What this Actor does not do
- No sold prices. These are asking prices. BOOTH publishes no sales figures at all — the
past_purchase_countfield in its own item data read 0 on every item measured and is not a sales count, so it is never reported here - No images, item descriptions, shop display names or seller names. Only counts, prices, category names, stock states and the shop's address on BOOTH. Every row is re-checked before it is returned, and the run fails rather than return something outside that list
- No adult items. BOOTH's default result set is all-ages and this tool has no code path that can ask for anything else
- No listing dumps by default. The product is the summary; individual rows are opt-in and separately priced
- No login-only data, and nothing is kept between runs — every run reads the public pages live
Notes on the data
- Counts are exact, and they move.
アクスタread 45,686, then 45,702, then 45,692 over one day — it moves both ways — andVRChatwent from 213,663 to 213,694. Every record carriescheckedAt, so a number always has a time attached. Which 60 listings count as "most popular" moves the same way, sodistinctShops,stockMixand the wish-list sample of a repeat run differ from the example above even when the prices do not - Pages hold 60 items, and BOOTH stops at page 3,333. A rank deeper than that is unreachable — BOOTH answers
200with page 3,333's content instead of refusing, so this tool checks the page number BOOTH actually served and reportspageCapHit: truewith anullvalue rather than a wrong price. It bites above about 267,000 items for the top of the middle range (p75), about 400,000 for the median and about 800,000 forp25— measured 2026-09-08,3Dモデル(288,308 items) already returnsp75: nullwithpageCapHit: true priceJpyFromis the cheapest option of a listing. A card that offers several variations shows¥ 500~and BOOTH's own number for it is the lowest one; that is what is read, for the record and for the rows- What "sold out" means here.
stockMix.outOfStockcounts listings BOOTH marks 在庫なし,saleEndedcounts 販売終了,lowStockcounts 残りN点. They describe availability today, never units sold - The wish-list count is BOOTH's own demand signal — how many shoppers saved the item. It is only available on an item's own page, which is why it covers the items opened (
detailSampleSize) and not the whole result - Everything is UTF-8, read one page at a time with 1.5 seconds between requests, no browser and no login. A keyword costs at most 7 page reads plus one small read per item opened — 9 requests for the example above
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
- Mercari Japan Sold Prices — What Items Really Sell For
- Yahoo! Auctions Japan Sold Prices — Median, Range, Bids
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 BOOTH or pixiv. 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.