MonotaRO Scraper | Japan MRO Products & Prices
Pricing
from $2.20 / 1,000 results
MonotaRO Scraper | Japan MRO Products & Prices
Extract MonotaRO Japan products, public prices, SKU details, reviews and category or brand data. Export rows as CSV, Excel or JSON; pay per delivered row plus a start fee. Unofficial tool.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
MonotaRO Scraper
Extract Japan's MonotaRO industrial product catalog, public prices, SKU details and reviews as rows you can export.
- Search by keyword, category or brand.
- Read product groups, individual SKUs and product reviews.
- Discover category and brand IDs, delivery companies and promotions.
- Export company-level contact fields where available.
- Pay $3.00 per 1,000 delivered rows on the Free plan, plus a small start fee.
What does MonotaRO Scraper do?
MonotaRO Scraper collects public data from www.monotaro.com for procurement research, price comparisons and catalog enrichment. It covers Japan, not overseas MonotaRO catalogs. Prices are public guest prices, not member or contract prices.
- Product modes:
search,category,brand,group,skuandcatalogreturn product or SKU rows. - Reviews:
reviewreturns a summary and individual reviews where available. - Directories:
categories,delivery-companies,promosandcorporate-leadsreturn the corresponding rows. - Optional details:
enrichDetailsadds group details to listings.expandVariantsadds separate SKU rows when variants are available. Both are off by default. Each extra SKU row is billed at the same rate as any other row and uses the same row allowance.
What data can you extract from MonotaRO?
Each row has a string id, a rowType and scrapedAt. Fields differ by row type; missing source values remain empty. The examples below illustrate field formats, not current prices or offers.
Product rows (product)
| Field | Description | Example |
|---|---|---|
productCode | Product group identifier | 10127 |
productName | Product name | 作業用手袋 |
brandName | Displayed brand | モノタロウ |
salesPrice | Guest price excluding tax, in yen | 399 |
taxPrice | Guest price including tax, in yen | 438 |
itemCount | Source SKU count for the group | 4 |
url | Product page | https://www.monotaro.com/g/00010127/ |
SKU rows (item)
| Field | Description | Example |
|---|---|---|
monotaroNo | Ordering code for one SKU | 02621418 |
parentProductId | Parent identifier on expanded variants | 10127 |
specs | Specifications when supplied | {} |
Review summary rows (review-summary)
| Field | Description | Example |
|---|---|---|
avgReviewRank | Average rating when shown | 4.5 |
reviewCount | Published review count | 120 |
Review rows (review)
| Field | Description | Example |
|---|---|---|
reviewId | Individual review identifier | 1887877 |
rating | Rating on a zero-to-five scale | 4 |
body | Published review text | 使いやすいです。 |
Category rows (category)
| Field | Description | Example |
|---|---|---|
categoryId | Category identifier | 27086 |
name | Category label | 作業手袋 |
Brand rows (brand)
| Field | Description | Example |
|---|---|---|
brandId | Brand identifier; name holds its label | 1184 |
Brand information rows (brand-info)
| Field | Description | Example |
|---|---|---|
brandCode | Brand identifier for descriptive information | 1184 |
Directory summary rows (taxonomy)
| Field | Description | Example |
|---|---|---|
categoryCount | Categories found, not necessarily delivered | 100 |
brandCount | Brands found, not necessarily delivered | 20 |
Catalog summary rows (catalog-summary)
| Field | Description | Example |
|---|---|---|
poolCount | Number of category groups available to browse | 100 |
Delivery company rows (delivery-company)
| Field | Description | Example |
|---|---|---|
delivererCode | Delivery company identifier | 1 |
inquiryUrl | Published inquiry page, if present | https://example.com/contact |
Promotion rows (promo)
| Field | Description | Example |
|---|---|---|
campaign_code | Campaign identifier, when supplied | EXAMPLE |
discount_rate | Published discount value, when supplied | 10 |
Company rows (corporate-leads)
| Field | Description | Example |
|---|---|---|
phones | Company phone entries | [{"value":"+1 555 0100","type":"phone"}] |
emails | Company email entries | [{"value":"name@example.com","type":"inquiry"}] |
address | Company postal address | {"full":"Example company address"} |
org | Operating company | {"name":"株式会社MonotaRO"} |
Company contact fields can also appear on product and direct SKU rows. They identify MonotaRO, not individual product sellers. They are not attached to every directory or review row.
How to scrape MonotaRO
- Open MonotaRO Scraper in Apify Console.
- Leave
modeonautoand enter one target, such askeyword. - Set
maxResultsto3for a small first run. - Click Start and wait for completion.
- Open the dataset and download it or read it through the API.
Empty input starts an example search for 手袋, limited to three rows. This example is billed normally. Filling one target selects its mode automatically. With several target types, URLs take priority, then SKU, group, brand, category and keyword. Use separate runs for different page types: the first start URL selects one mode for the run.
Keyword search
Use keyword or searchQueries. When both are filled, the keyword comes first and duplicate queries are removed. Japanese terms are useful; search words are not automatically translated.
Category listing
Use categoryId or a /s/c-<id>/ URL. Discover valid IDs with categories; an arbitrary number may not identify a category.
Brand listing
Use brandId or a /s/b-<id>/ URL. With brandId, a separate brand information row may use one slot of the allowance.
Product group
Use productCode or a /g/<code>/ URL. Enable expandVariants if you need separate SKU rows rather than only group information.
Single SKU
Use monotaroNo or a /p/<4>/<4>/ URL to request one ordering code's detail.
Reviews
Select review explicitly with productCode, or supply a review URL. Summary and individual review rows share the allowance.
Category and brand index
Select categories. A summary comes first, followed by categories and then brands if room remains. A small limit may return no brands.
Catalog browse
Select catalog to browse across categories. Set poolPages to limit pages per category. The summary counts toward maxResults; this mode does not guarantee a complete catalog export.
Delivery companies
Select delivery-companies; no target field is needed. This is a directory, not shipment tracking.
Promotions
Select promos; no target field is needed. Fields depend on the published campaign or banner.
Company information
Select corporate-leads for one company row. The optional corporateUrl defaults to https://corp.monotaro.com/overview.html.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | Mode listed above, or automatic selection | auto |
keyword | One search term | Empty; example 手袋 |
searchQueries | List of search terms | Empty |
startUrls | MonotaRO page URLs of one type | Empty |
categoryId | Numeric category ID | Empty |
brandId | Numeric brand ID | Empty |
productCode | Product group code | Empty |
monotaroNo | SKU ordering code | Empty |
corporateUrl | Company overview URL | Standard overview page |
maxResults | Maximum rows per input, 1–5000 | 70; form example 3 |
page | Starting page, numbered from 1 | 1 |
priceMin | Minimum listing price in yen, excluding tax | Unset |
priceMax | Maximum listing price in yen, excluding tax | Unset |
reviewMin | Minimum review rank, 1–4 | Unset |
sort | Sort code from the target page | Site default |
stockIndicator | Site stock filter code | Unset |
attrs | Attribute filter object | Empty |
enrichDetails | Add details to search/category/brand listings | false |
expandVariants | Add separate SKU rows where available | false |
poolPages | Pages per catalog category; 0 means up to 100 | 0 |
proxyCountry | Leave as JP; no overseas catalog selection | JP |
Price, rating, sort, stock and attribute filters apply to listings. Copy stock or attribute codes from the target page; their meanings vary. Avoid combining unrelated target fields.
Search
{"keyword":"手袋","maxResults":3}
Category
{"categoryId":"27086","priceMin":100,"priceMax":5000,"maxResults":3}
Brand
{"brandId":"1184","maxResults":3}
Group
{"productCode":"00010127","expandVariants":true,"maxResults":3}
SKU
{"monotaroNo":"02621418","maxResults":1}
Reviews
{"mode":"review","productCode":"02951381","maxResults":3}
Category index
{"mode":"categories","maxResults":3}
Catalog
{"mode":"catalog","poolPages":1,"maxResults":3}
Delivery companies
{"mode":"delivery-companies","maxResults":3}
Promotions
{"mode":"promos","maxResults":3}
Company
{"mode":"corporate-leads","maxResults":1}
maxItems and limit are accepted as aliases for maxResults. Close field-name misspellings can be corrected; other unknown fields are ignored and recorded. The INPUT_REPORT record in the default key-value store shows how input was interpreted. Invalid targets or values that fail validation stop before rows are charged, with INVALID_INPUT: <field> — <how to fix>. The start fee can still apply.
Output example
Illustrative product row; values are not a live quote:
{"rowType": "product","id": "10127","type": "listing","productCode": 10127,"productName": "作業用手袋","salesPrice": 399,"taxPrice": 438,"avgReviewRank": 4.5,"reviewCount": 120,"url": "https://www.monotaro.com/g/00010127/","country": "JP","scrapedAt": "2026-10-24T00:00:00+00:00"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records the delivered count and warnings; ERROR_SUMMARY records terminal errors when available.
Why use this MonotaRO scraper?
- Pay for delivered rows. Page visits are not the billing unit.
- Keep delivered data. Rows already written to the dataset remain available after a stop. Partial collections can be returned, but an abrupt abort before delivery can leave no rows.
- Match products. Group and SKU identifiers help join results across runs.
- Inspect errors. Input errors name the field; run records explain failures or missing results.
- Batch related inputs. Supply several keywords or URLs with a per-input allowance.
- No proxy configuration. You do not need to set up proxies.
How much does it cost to scrape MonotaRO?
Pricing is pay-per-event. Each start event costs $0.005, with one event per GB of allocated memory and a minimum of one. At the default 512 MB, the start charge is $0.005. Platform usage is included in these prices.
| Apify plan | Start at 512 MB | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
| Platinum | $0.005 | $0.002 | $2.00 |
| Diamond | $0.005 | $0.0016 | $1.60 |
maxResultsapplies to each keyword, URL or scalar target, not the combined run. The default is 70; larger requests are collected in parts of up to 70.- Every row type counts, including summaries, brand information and optional variants. Three rows do not always mean three products.
- Free Apify plan runs are capped at 200 total rows, with a developer-set allowance of 10 runs of this Actor.
- Maximum cost per run (
maxTotalChargeUsdin the API) limits the whole run, including multiple inputs.
Example: three keywords delivering five rows each produce 15 rows. On the Free plan at 512 MB, the cost is 15 × $0.003 + $0.005 = $0.050, assuming the cost limit permits all rows.
What happens when the run timeout is too short
Some MonotaRO collections, such as several searchQueries with enrichDetails: true, a catalog run with many poolPages or a large maxResults, can take longer than the run timeout you chose. In that case the run does not fail. It ends early with the status message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." and shows as ABORTED for a while.
When the results are ready, the same run starts again by itself, reports "Resumed: delivering N rows.", writes the rows to the same dataset and finishes as SUCCEEDED. Rows that were already delivered are skipped, so no row is delivered or charged twice. You do not need to start another run.
- This can happen at most 3 times per run. To avoid it, keep the default timeout of 3600 seconds.
- The synchronous API endpoints (
run-sync,run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while the run is paused. For larger jobs, start the run asynchronously and read the dataset after the run reaches SUCCEEDED, or use a webhook on the "succeeded" event.
Use with AI agents and the API
Apify MCP server
Add this remote server in Claude, ChatGPT, Cursor, VS Code or another compatible MCP client:
https://mcp.apify.com?tools=lentic_clockss/monotaro-scraper
Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; read the rows with get-dataset-items. For clients without remote support, run npx @apify/actors-mcp-server --tools lentic_clockss/monotaro-scraper with APIFY_TOKEN configured.
Example prompt: “Search MonotaRO for 手袋, return three rows and show product codes, names and guest prices.”
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/monotaro-scraper").call(run_input={"keyword": "手袋", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/monotaro-scraper').call({ keyword: '手袋', maxResults: 3 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For HTTP, send the input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~monotaro-scraper/runs with your token in the Authorization: Bearer header. After completion, use GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Actor's Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Apify Schedules can start recurring runs.
日本語の説明
日本向けのモノタロウから、工具や作業用品の商品情報、公開価格、品番、レビューを収集します。検索する場合は keyword に「手袋」などを入力し、最初は maxResults を3にすると出力を確認しやすくなります。商品群は productCode、注文コードは monotaroNo で指定できます。expandVariants を有効にすると、取得できた品番ごとに別の行が追加されます。料金は開始料金と出力行数で決まり、レビューや集計行も1行として数えます。会員価格や契約価格、海外サイトは対象外です。結果は CSV や Excel で保存できます。
FAQ
Is it legal to scrape MonotaRO?
This Actor accesses public data. You are responsible for checking the site's terms and applicable data-protection law for your use. Personal data requires a lawful basis; public visibility alone does not establish one.
Why did my run end as ABORTED?
ABORTED means the run was stopped, not that the search found nothing. Check its status message and log to identify the reason. Do not assume automatic recovery; inspect the existing dataset before starting another billed run.
How many results can I get?
Request 1–5000 rows per input, subject to available results, page limits, your maximum cost and free-plan limits. Optional SKU rows and summaries share that allowance.
Why are some fields empty?
Some pages omit prices, specifications or contact details. Failed detail enrichment can also leave fields empty. Missing values are not invented; company contact omissions may be explained in leadAbsences.
Is this an official MonotaRO tool?
No. This Actor is not affiliated with or endorsed by MonotaRO.
Do I need to log in for prices?
No. Only public guest prices are collected; member and contract prices are excluded.
Why is a category empty or invalid?
The ID may be invalid, or no products may match your filters. Try categories to find IDs, then remove restrictive filters and inspect the run message.
Does the Actor collect seller contacts for every product?
No. Product contact fields refer to MonotaRO's company, not third-party sellers. Reviews, promotions and directory rows do not receive this company contact block.
Limitations
- Japan's public catalog only; no overseas sites, account pages, ordering or inquiry-form submission.
- Results depend on source availability. Prices and promotions can change between runs.
- Listing detail enrichment is optional and may be incomplete. Variant rows require available variant data.
- Category/brand listings stop after at most 100 pages, keyword searches after 50, and reviews after 10 per collection segment.
- Some directory data can use previously collected category information. Counts do not prove complete current coverage.
- A low limit can be consumed by summary rows before products or individual reviews appear.
- No guarantee that all rows collected before an abrupt stop have reached the dataset.
Related scrapers
More B2B supplier and wholesale marketplace scrapers from the same publisher:
- GlobalSources Scraper
- Kompass Scraper
- Thomasnet Scraper
- iPROS Scraper
- Xometry Scraper
- Europages Scraper
- IndiaMART Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.