Japan Knife Restock & Price Monitor
Pricing
from $2.00 / 1,000 product variant rows
Japan Knife Restock & Price Monitor
Monitor Japanese kitchen-knife stores (Sakai Ichimonji Mitsuhide global & Japan, Kama-asa Kappabashi): back in stock, sold out, price changes and new knives per blade length, with knife type, steel and finish fields.
Pricing
from $2.00 / 1,000 product variant rows
Rating
0.0
(0)
Developer
Task Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Track stock, prices and new arrivals of Japanese kitchen knives at specialist stores — Sakai Ichimonji Mitsuhide (Osaka, global and Japan stores) and Kama-asa (Kappabashi, Tokyo) — in one run. You get one row per blade length / option (variant) with price, in-stock flag, knife type, steel, finish and URL, and in monitoring mode only what changed since the last run: back in stock, sold out, price up, price down, new knife, new size. No coding needed.
Built for knife shops, importers, chefs and collectors who follow availability of handmade Sakai knives (yanagiba, deba, gyuto, honyaki…) without checking each website by hand. On 2026-10-10, more than half of the knife variants in these stores (884 of 1,657) were sold out — the restock is the moment that matters.
What data can you extract?
| Field | Description |
|---|---|
storeName, storeId, storeDomain, market | Which store the row comes from (global = English store, japan = Japanese store) |
title, variantTitle | Product title and variant (e.g. 白紙二号 柳刃 / 180mm) |
itemCategory | knife, whetstone, saya_case, accessory, cookware, service, event, gift_card, other |
knifeType | gyuto, santoku, petty, nakiri, usuba, deba, yanagiba, takobiki, fugubiki, sujihiki, honesuki, garasuki, chinese_cleaver, bread, menkiri, unagisaki, honekiri, kenmuki, maguro, funayuki, ajikiri, bunka, kiritsuke, other |
steel, steelText | Unified steel code when the title names it (白二鋼 / 白紙二号 / White Steel #2 → white_2; also blue_1, blue_2, blue_super, ginsan, vg10, vg1, sg2, …) and the words used |
finishes | Finish / construction named in the title: honyaki, damascus, suminagashi, montanren, hongasumi, kasumi, mirror, kurouchi, tsuchime, migaki |
smith | Smith named in the title (中川作 … → 中川, Nakagawa Satoshi Forged → Nakagawa Satoshi), else null |
vendor | The store's vendor field — the maker company at Kama-asa (e.g. 株式会社馬場刃物製作所), the brand at Ichimonji |
bladeLengthMm, leftHanded, preorder | Blade length in mm, left-handed version, pre-order / made-to-order flag |
price, compareAtPrice, currency | Current price and the currency the store answered in (see notes) |
available | The store's in-stock flag for that exact variant |
changeType, changes | restocked, sold_out, price_up, price_down, new_product, new_variant, removed, first_run, unchanged |
previousPrice, previousAvailable, priceChange, priceChangePct, previousRunAt, firstSeenAt | Values at the previous run and the difference |
productUrl, variantUrl, imageUrl | Product page, page with the variant preselected, image URL on the store's CDN (reference only) |
sku, productId, variantId, handle, productType, tags, timestamps | Identifiers and the store's own labels |
Product descriptions are not copied, and images are referenced by URL, not downloaded. Knife type, steel, finish and smith are read from the title, product type and tags only; when the title does not name a steel (or uses a store brand such as FV10 or 特鋼), steel is null.
Why monitor Japanese knife stores?
- Restock alerts — popular sizes of hand-forged knives sell out and come back in small batches. Schedule the Actor with
changeTypes: ["restocked", "new_product", "new_variant"]and get only the knives that just became available. - Price tracking —
price_up/price_downrows give you the date, old price, new price and percentage per blade length. - Purchasing decisions for knife shops and importers — see availability by knife type, steel and blade length across several stores in one table.
- Market research — a full snapshot of every knife, steel, size and price, ready for a spreadsheet or BI tool.
- AI agents / RAG — the Actor is callable through the Apify MCP server, so an AI assistant can answer "which white-steel yanagiba are in stock in Sakai right now?" with live data.
How to use it (no coding)
- Click Try for free.
- Pick the stores, and optionally knife types (e.g.
yanagiba,gyuto) and steels (e.g.white_2,blue_2). - Choose Mode:
changes(monitoring) orsnapshot(everything now). - Click Start. The first
changesrun saves a baseline of every variant and returns rows asfirst_run(up tomaxItems). - Open Schedules and run it every few hours or daily. From the second run on you get only the changes — connect a webhook, Slack, email or Google Sheets integration to be notified.
Input example
{"mode": "changes","stores": ["ichimonji-global", "ichimonji-japan", "kama-asa"],"itemCategories": ["knife"],"knifeTypes": ["yanagiba", "deba", "gyuto"],"steels": [],"keywords": [],"changeTypes": ["restocked", "new_product", "new_variant", "price_up", "price_down"],"maxItems": 100,"stateStoreName": "japan-knife-restock-monitor","proxyConfiguration": { "useApifyProxy": true }}
mode—changesreturns only differences from the previous run;snapshotreturns every matching variant. When omitted (API calls), the default issnapshot.itemCategories— defaults to["knife"]; pass[]for everything (saya, whetstones, accessories, repair services; Kama-asa also sells cookware).knifeTypes/steels— work across Japanese and English titles.white/bluemean the title did not state the grade (e.g.青鋼).keywords— optional words such as a series or smith (Kirameki,中川,本焼). Japanese/English/Chinese knife words such asgyuto→牛刀or柳刃→Yanagibaare retried automatically when they match nothing in a store.maxItems— total rows for the run (default 100), shared fairly between the selected stores.stateStoreName— a named key-value store in your own Apify account that remembers the previous prices and stock. Use a different name for each schedule with different filters.
Output example
{"storeId": "kama-asa","storeName": "釜浅商店","storeDomain": "kama-asa.co.jp","market": "japan","productId": "8875665457474","variantId": "47506871976258","handle": "shirogami-no-2-yanagi","title": "白紙二号 柳刃","variantTitle": "180mm","sku": "2020100018154","productType": "柳刃","vendor": "株式会社馬場刃物製作所","tags": ["2〜3万円", "GIFT WRAPPING__label2", "包丁", "柳刃"],"itemCategory": "knife","knifeType": "yanagiba","steel": "white_2","steelText": "白紙二号","finishes": [],"smith": null,"bladeLengthMm": 180,"leftHanded": false,"preorder": false,"price": 26180,"compareAtPrice": null,"currency": "JPY","available": true,"imageUrl": "https://cdn.shopify.com/s/files/1/0748/9814/5602/files/houchou_shirogami_yanagi_21_4689dac1-991d-4f3d-8005-9100e778cf94.jpg?v=1750722708","productUrl": "https://kama-asa.co.jp/products/shirogami-no-2-yanagi","variantUrl": "https://kama-asa.co.jp/products/shirogami-no-2-yanagi?variant=47506871976258","publishedAt": "2023-10-18T16:07:20+09:00","productCreatedAt": "2023-10-18T16:07:32+09:00","variantUpdatedAt": "2026-10-10T21:55:31+09:00","scrapedAt": "2026-10-10T12:57:35.522Z","changeType": "restocked","changes": ["restocked"],"previousPrice": 26180,"previousAvailable": false,"priceChange": 0,"priceChangePct": 0,"previousRunAt": "2026-10-10T06:57:35.522Z","firstSeenAt": "2026-10-01T06:00:00.000Z"}
(The product data above is real; the availability and change values illustrate how a restocked row looks.)
Field notes
changeTypeis the most important change;changeslists all of them (a size can berestockedandprice_upin the same run).- Currency: the product feed of a Shopify store has no currency field; the Actor reads the currency the store set for the request (
cart_currency). In testing, the two Japan stores answered in JPY and the global Ichimonji store in USD, so its prices are in US dollars. Thecurrencycolumn always tells you which. Prices are compared between runs only in the same currency, so a currency switch never produces a fake price change. removedrows describe a variant that disappeared since the last run; they carry the last known title and price (previousPrice) withpriceandavailableset tonull. They are only reported when the whole catalogue was read successfully.- Lottery sales announced only on social media or by email are not visible; the Actor sees what the store's product feed shows (stock flag, price, new products).
- The
RUN_REPORTrecord (default key-value store) has a per-store summary: HTTP status, currency, variants read, rows returned, change counts, whether the baseline was updated, and a plain-language hint when a store returned nothing.
How much does it cost?
Pay-per-event: a tiny start charge of $0.00005 (Apify's default Actor Start event, charged once per GB of memory; this Actor runs on 1 GB) plus a per-row price:
| Event | What it is | Price |
|---|---|---|
Actor Start (apify-actor-start) | Once per run (per GB of memory) | $0.00005 |
Result row (apify-default-dataset-item) | Each row returned | $0.003 (FREE and BRONZE plans) · $0.002 (SILVER and above) |
In changes mode you pay only for rows that changed, so a monitor that finds 5 restocks costs about $0.015 on the FREE plan. The default run (100 rows) costs about $0.30 on FREE; every knife in all three stores is about 1,660 rows (≈ $4.98), and every item including accessories about 3,600 rows. Use maxItems to cap spend. Platform usage (compute) is included in these prices; a full run takes about 20 seconds.
Integrations: API, MCP, and AI agents
This Actor is read-only: it only reads public product feeds. It never logs in, adds to cart, orders, enters lotteries or changes anything on the stores.
API (curl)
curl -X POST "https://api.apify.com/v2/acts/datalab-jp~japan-handmade-knife-restock-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" -d '{"mode": "snapshot", "itemCategories": ["knife"], "maxItems": 100}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("datalab-jp/japan-handmade-knife-restock-monitor").call(run_input={"mode": "snapshot", "itemCategories": ["knife"], "maxItems": 100})items = client.dataset(run["defaultDatasetId"]).list_items().items
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('datalab-jp/japan-handmade-knife-restock-monitor').call({ mode: 'snapshot', itemCategories: ['knife'], maxItems: 100 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
The synchronous run-sync-get-dataset-items endpoint waits up to 300 seconds; a full run normally finishes in well under a minute.
Use with AI agents (MCP)
Add the Apify MCP server (https://mcp.apify.com) to Claude, ChatGPT, Cursor or any MCP client and ask, for example, "Which blue-steel deba knives are in stock at Kama-asa right now?" The agent calls this Actor with mode: "snapshot", stores: ["kama-asa"], knifeTypes: ["deba"] and steels: ["blue_1", "blue_2", "blue"].
Related Actors
Other Japan data Actors by the same developer:
- Japan Matcha & Tea Stock & Price Monitor — stock and price changes at Japanese matcha and tea shops
- Japan Denim Restock & Price Monitor — stock and price changes at Japanese denim stores
- Mercari Japan Scraper – Listings & Item Details — Mercari listings and sold prices
- Yahoo Auctions Japan Scraper – Live, Sold & Flea Market — Yahoo! Auctions and Yahoo! Flea Market listings
FAQ
Is this legal?
The Actor reads only the public product feed (/products.json) that each store serves to every visitor, without logging in or bypassing any access control, one request at a time with pauses. It returns factual data (names, sizes, prices, stock) and does not copy product descriptions or images. Each store's robots.txt and terms were read in full before the store was added; stores whose terms prohibit crawling, scraping or commercial use of their information are not supported. You are responsible for using the data in line with applicable laws and each store's terms.
Can I use it through the API? Yes — see the curl, Python and JavaScript examples above. Schedule it in Apify and read the dataset, or connect a webhook.
Can AI agents use it? Yes. It is read-only, needs no credentials for the stores, and every input has a default, so an agent can call it safely.
How is this different from a generic Shopify scraper? It comes with a checked list of knife stores, adds knife-specific fields (knife type, unified steel code, finish, smith, blade length, left-handed) that a generic scraper leaves inside the title, and returns only the changes since the last run.
How does change detection work?
After each run the Actor saves the price and stock of every variant in the named key-value store stateStoreName in your account. The next run compares against it. The first run per store (or a new store name) saves the full baseline and returns rows as first_run.
Why is my favourite knife store not supported? A store is added only if it serves a public product feed and its terms of use, read in full, do not restrict this kind of use. Several well-known knife stores were checked and left out for that reason; asking for one by its ID returns the reason.
Does it buy or reserve knives? No. It does not add to cart, check out, reserve or enter lotteries, and it does not help get around purchase limits. It only reports what the stores publish.
Do I need a proxy? The default uses Apify's datacenter proxy because Shopify-based stores rate-limit busy cloud IP addresses. Residential proxy is not needed. If a store answers HTTP 429 repeatedly, the run report says so; run again later.
Disclaimer
This Actor is not affiliated with, endorsed by or connected to any of the stores listed. Store names are used only to identify the data source. Data is provided as published by the stores at the time of the run and may change at any time.
中文简介
- 监控日本厨刀专门店(堺一文字光秀 海外店/日本店、合羽桥釜浅商店)的手工刀具库存、价格和新品。
- 每个规格(刃长/选项)一行:价格、是否有货、刀型(牛刀、柳刃、出刃等)、钢材(白纸二号、青纸、银三、VG10等)、链接;监控模式只返回与上次相比的变化(补货、售罄、涨价、降价、新品)。
- 适用于刀具店与进口商的采购判断和库存监控;只读取公开商品数据,不会下单、加入购物车或参与抽选。