Grainger Product Scraper avatar

Grainger Product Scraper

Pricing

from $4.00 / 1,000 dataset items

Go to Apify Store
Grainger Product Scraper

Grainger Product Scraper

Scrape Grainger.com industrial and MRO products by keyword, category or item number: web price and list price, brand, manufacturer part number, stock status, full technical specs, images and category path. Built for price monitoring and catalog enrichment. Pay only for results.

Pricing

from $4.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

12 hours

Issues response

a day ago

Last modified

Share

Get clean, structured product data from Grainger.com — the largest US industrial and MRO supplier — by keyword, category or item number. Web price and list price, brand, manufacturer part number, stock status, the full technical spec sheet, images and category path for every product, as JSON, CSV or Excel.

No Grainger account, no browser automation and no proxy setup needed.

Who uses it

  • Procurement & MRO buyers — price-check a list of Grainger item numbers on a schedule and catch price changes before re-ordering.
  • Distributors & resellers (Zoro, Amazon Business, eBay, your own store) — monitor Grainger prices and stock status across whole categories to stay competitive.
  • PIM / catalog teams & SaaS developers — enrich product records with manufacturer part numbers, specs, dimensions, weights and images.
  • Analysts & researchers — track industrial pricing, discounts (list vs web price) and assortment by category.

What you get

FieldTypeExample
skustring52RW10 (Grainger item number)
namestringDisposable Gloves: Chemical-Resistant/Food-Grade/Gen Purpose, XS ( 6 ), 8 mil, Grain, 50 PK
descriptionstringshort description
brandstringANSELL
manufacturer_part_numberstring93-260
pricenumber49.99 — current web price
list_pricenumber62.5 — list price before discount
currencystringUSD
price_typestringWP web price, ZPR1 promotion, …
unitstringPackage, Each, …
sales_status / sales_status_messagestringST / Typically in Stock
stocked, discontinued, clearance, ready_to_shipbooleanstock & lifecycle flags
online_availabilitystringGENERALSALE
rating, review_countnumberreview summary
imagestringmain product image URL
urlstringhttps://www.grainger.com/product/52RW10
category_pathstringSafety > Hand & Arm Protection > Safety Gloves > …
specsobject{"Material": "Neoprene/Nitrile", "Nominal Palm Thickness": "8 mil", …}
packageobjectsell-pack height, length, width (in), weight (lb), quantity
has_alternatesbooleanGrainger lists alternate products
restricted_statesarrayUS states where sale is restricted
source, search_query, category_urlstringhow the row was found
scraped_atstringISO-8601 UTC timestamp

Use cases

  1. SKU price monitoring — paste your Grainger item numbers into Item numbers, schedule a daily run and diff price / sales_status in Google Sheets or your ERP.
  2. Category price intelligence — point Category URLs at e.g. …/category/safety/hand-arm-protection and collect every product in every sub-category with prices and specs.
  3. Competitive repricing — search for the products you sell ("dewalt drill", "safety glasses") and compare Grainger's web price and discount against yours.
  4. Catalog enrichment — fill missing manufacturer part numbers, specifications, dimensions and images in your PIM from a list of item numbers.

Input

ParameterDescriptionDefault
Search queriesKeywords, item numbers or part numbers, as typed into Grainger search. Each query expands into its best-matching categories with the query as a filter.—
Category URLsGrainger category pages. Parent categories are crawled into all sub-categories.—
Item numbers or product URLse.g. 52RW10 or https://www.grainger.com/product/…-52RW10. Looked up 100 at a time.—
Max products (total)Stop after this many rows.100
Max products per query / categoryCap per search query and per category URL.200
Max categories per search queryHow many matching categories a search collects from.5
Sort orderTop sellers, price low→high / high→low, brand A→Z / Z→A (Grainger's own ordering).Top sellers
Include technical specificationsAdd the specs object.on

Provide at least one of search queries, category URLs or item numbers. They can be combined in one run; each product is returned once.

Example input

{
"searchQueries": ["nitrile gloves"],
"categoryUrls": ["https://www.grainger.com/category/safety/hand-arm-protection/finger-protection"],
"skus": ["52RW10", "https://www.grainger.com/product/ANSELL-Disposable-Gloves-Chemical-793JR4"],
"maxItems": 60,
"maxItemsPerQuery": 30,
"sort": "price_asc"
}

Example output

{
"sku": "52RW10",
"name": "Disposable Gloves: Chemical-Resistant/Food-Grade/Gen Purpose, XS ( 6 ), 8 mil, Grain, 50 PK",
"description": "DisposableGloves, Green, XS, Size6, PK50",
"brand": "ANSELL",
"manufacturer_part_number": "93-260",
"price": 49.99,
"list_price": 62.5,
"currency": "USD",
"price_type": "WP",
"unit": "Package",
"sales_status": "ST",
"sales_status_message": "Typically in Stock",
"stocked": true,
"discontinued": false,
"clearance": false,
"ready_to_ship": true,
"online_availability": "GENERALSALE",
"rating": 0.0,
"review_count": 0,
"image": "https://static.grainger.com/rp/s/is/image/Grainger/52RW10_GC01?$lgmain$",
"url": "https://www.grainger.com/product/52RW10",
"category_path": "Safety > Hand & Arm Protection > Safety Gloves > Disposable Gloves > General Purpose Disposable Gloves",
"specs": {"Material": "Neoprene/Nitrile", "Nominal Palm Thickness": "8 mil", "Powdered/Powder-Free": "Powder-Free", "Color Family": "Green"},
"package": {"height": 2.6, "length": 11.1, "width": 5.0, "weight": 1.3, "quantity": 1},
"has_alternates": true,
"restricted_states": [],
"source": "sku",
"search_query": null,
"category_url": null,
"scraped_at": "2026-10-02T06:02:33Z"
}

Scheduling, webhooks and integrations

  • Schedule the Actor (e.g. daily at 06:00) from the Schedules tab for ongoing price monitoring.
  • Export results as JSON, CSV, Excel or XML, or pull them via the Apify API.
  • Integrate with Google Sheets, Make, Zapier, Slack, Airbyte or a webhook that fires when a run finishes.

Use with AI assistants (MCP)

This Actor works with the Apify MCP server, so Claude, ChatGPT, Cursor and other MCP clients can call it directly — e.g. "Find the 20 cheapest nitrile gloves on Grainger and list brand, part number and price."

FAQ

How many products can I get? Grainger lists about 1.6 million items. Use category URLs (parents are crawled into every sub-category) or item-number lists for bulk jobs; maxItems caps the run.

How fresh is the data? Every run fetches live data from Grainger at run time — prices and stock status are what a visitor sees at that moment.

Which price is returned? The public (guest) web price and the list price. Account- or contract-specific pricing requires a Grainger login and is not included.

Why does a search return products from several categories? Grainger maps keywords to categories; the Actor collects the best-matching categories (maxCategoriesPerQuery) with your query applied as a filter. Grainger's matching can be broad — use category URLs or item numbers when you need an exact scope.

Is "price low to high" strictly ordered? The order is Grainger's own sort, which can differ slightly from the displayed web price for multi-pack items.

What happens with an item number that doesn't exist? It's skipped and logged; the run continues.

Is scraping Grainger legal? The Actor collects publicly available product information. You are responsible for using the data in line with Grainger's terms and applicable law.

Something broke or a field is missing? Open an issue on the Actor's Issues tab — reports are answered quickly.