Skip to main content
The Grainger plugin returns industrial supply items from Grainger (grainger.com, US) as structured JSON. It is two endpoints:
  • /marketplace/grainger-search - Grainger’s first result rows for a keyword (up to 25 items, in Grainger’s order): Grainger item number (sku), product id, title, brand, the maker’s model number, link and image, the price with its label and type, any was-price and quantity pricing, the item status and the specifications Grainger shows in the result row (thread size, voltage, material…). It also names the category Grainger matched, its result count and the other matching categories.
  • /marketplace/grainger-product - one item: the same fields plus the unit of measure (e.g. pkg. of 100), the discontinued flag, sell info, shipping weight, description, the full specification table (including UNSPSC and country of origin), images, documents (spec sheets, drawings), alternate item numbers and breadcrumbs.
No Grainger account is involved.
Prices are Grainger’s Web Price as shown to a visitor who is not signed in. Account pricing (contract or negotiated prices) is not included. There are no stock levels either: Grainger checks stock per ZIP code after the page loads, so neither endpoint returns it.
Try it in the dashboard first: app.scrapeunblocker.com/dashboard/plugins. You get a live results view plus a copy-paste snippet.
Grainger answers a keyword with the product category that matches it best: category names it, totalResults counts that category’s matches and categories lists the other matching categories with their counts and links. To search one of them, pass its link as url. A keyword that leads to a department page (subcategory tiles, no products) is answered from the subcategory holding the product line that matches it most often; totalAcrossCategories then counts the whole department. There is no paging: only the first result rows come back. Each search is billed as one request.

Response

Product

To look an item up by link, leave the first argument out and pass url (su.grainger_product(url="https://www.grainger.com/product/...") in Python, su.graingerProduct(undefined, { url }) in Node.js). Each item is billed as one request.

Response

Errors

What you can build

  • MRO price monitoring - track Grainger’s Web Price and quantity breaks for the parts you buy.
  • Cross-reference - match Grainger items to maker model numbers and alternate items.
  • Catalog enrichment - fill part records with specifications, UNSPSC codes, country of origin and spec sheets.
  • Category research - see which categories and how many items Grainger has for a part type.

Next steps

Open the plugins

Run a Grainger search and grab the JSON.

Get an API key

Free trial available on the pricing page.