Zoro Scraper avatar

Zoro Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Zoro Scraper

Zoro Scraper

Scrape wholesale retail products from Zoro.com (Grainger's brand) - search by keyword, browse 27 categories or fetch by product URL. Prices, list prices, brands, MPNs, ratings, specs and images.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape Zoro.com — Grainger's wholesale retail marketplace with 10M+ industrial, safety, janitorial and office products. Search by keyword, browse 27 top-level categories, or fetch products by URL. Real prices, list prices, brands, manufacturer part numbers, ratings, specs, availability and product images. No API key, no login, no cookies.

What this actor does

  • Three modes: search (keyword), browseByCategory (27 curated categories or any category URL), byUrl (product URLs)
  • Real wholesale data: prices (USD), list prices, price-per-unit, brands, MPNs, UPCs, ratings, review counts
  • Full detail mode: description, spec tables, country of origin, availability, category path, weights, all product images
  • Filters: brand dropdown, min/max price, min rating, contains-keyword
  • Empty fields are omitted

Data Source

Zoro.com (www.zoro.com), the wholesale retail marketplace owned by Grainger (GWW). Listing pages are server-rendered: the actor reads the SSR HTML directly (TLS-impersonated HTTP client, no JavaScript, no cookies). Ratings and review counts come from Zoro's public PowerReviews read-services JSON API (merchant ID and key are public constants embedded in the site's own page config).

Why not Menards? This actor was originally requested as a Menards.com scraper. Menards is protected by Incapsula, which hard-blocks all datacenter IPs with an HTTP 403 challenge before any page logic runs — across all browser TLS fingerprints. Because the block is IP-based, a real browser from the same IP gets the same 403, and only residential proxy IPs can pass — which would make the actor paid-only and unverifiable. Per the free-plan-friendly requirement, the actor was rebuilt against Zoro.com, the closest same-category replacement: a wholesale retail platform with a fully public, server-rendered surface that works from any datacenter IP with no credentials.

Output per product (search / category modes)

  • productId — Zoro item number (e.g. G805612238)
  • title, brand, mfrNo — manufacturer part number
  • price — USD float; currency: "USD", priceUnit (e.g. /ea, /pk 24, $7.21/ea)
  • listPrice — original/street price when Zoro shows a strikethrough
  • rating, reviewCount — from Zoro's public ratings API
  • imageUrl — primary product image (CDN-hosted)
  • productUrl — canonical product page on zoro.com
  • sourceUrl — canonical source page for the record
  • recordType: "product", scrapedAt

Output per product detail (mode = byUrl, or search/category with includeDetails)

Everything above plus:

  • description — long-form product description
  • specs — key features/specs as name→value pairs (e.g. Voltage → 20 V DC), capped at 40
  • upc, countryOfOrigin
  • availabilityInStock / OutOfStock from the page's structured data
  • weight — e.g. 4.7 lb
  • categoryPath — breadcrumb trail (e.g. Tools & Machining > Power Tools and Accessories > Cordless Drills)
  • freeShipping — whether Zoro advertises free shipping on the product
  • imageUrls — all product images on the detail page
  • recordType: "productDetail", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / browseByCategory / byUrl
searchQuerystringdrillKeyword query (mode=search)
categorystringOne of 27 top-level categories (mode=browseByCategory)
categoryUrlstringAny zoro.com category URL; overrides category (mode=browseByCategory)
startUrlsarrayZoro.com product URLs (mode=byUrl)
brandstringOnly emit products from this brand (case-insensitive)
minPriceintDrop products priced below this (USD)
maxPriceintDrop products priced above this (USD)
minRatingnumberOnly emit products rated at least this (0–5)
containsKeywordstringOnly emit products whose title/description contains this text
includeDetailsbooleanfalseAlso fetch each product's detail page (specs, description, UPC)
maxItemsint50Hard cap on records (1–1000)
proxyConfigurationobjectAUTOOptional; only used as a fallback if Zoro rate-limits or blocks

Examples

Example: search wholesale products by keyword

{
"mode": "search",
"searchQuery": "safety glasses",
"maxItems": 20
}

Example: browse a whole category with details

{
"mode": "browseByCategory",
"category": "tools-machining/c/z2",
"includeDetails": true,
"maxItems": 50
}

Example: filtered search by brand and price

{
"mode": "search",
"searchQuery": "drill",
"brand": "Milwaukee Tool",
"minPrice": 100,
"maxPrice": 300,
"minRating": 4.0,
"maxItems": 30
}

Example: fetch specific products by URL

{
"mode": "byUrl",
"startUrls": [
{"url": "https://www.zoro.com/dewalt-12-in-20v-dc-cordless-drill-kit-battery-included-dcd771c2/i/G8579697/"}
],
"maxItems": 5
}

Use cases

  • Price intelligence — track wholesale pricing and list-price discounts across industrial categories for competitive benchmarking
  • Procurement research — compare manufacturer part numbers, pack sizes and ratings before ordering
  • eCommerce enrichment — join Zoro specs (voltage, dimensions, material) into your own product catalog via UPC or Mfr #
  • B2B lead lists — enumerate a brand's full wholesale catalog for sales targeting
  • Inventory planning — monitor category breadth, availability and price bands for janitorial/office/MRO spend

FAQ

Is this affiliated with Zoro or Grainger? No. This is a third-party actor that reads Zoro's public website. It is not endorsed by or affiliated with Zoro.com or Grainger.

Why did this actor end up scraping Zoro instead of Menards? Menards' edge protection (Incapsula) blocks all datacenter IPs with HTTP 403 before any page loads. Bypassing it requires residential proxy (paid-only). Zoro is the closest wholesale-retail replacement with a fully public surface. See the Data Source section.

Do I need a proxy or API key? No. Zoro serves all pages to regular datacenter IPs without auth. The proxy field is optional and only kicks in automatically if Zoro rate-limits a run.

Are prices live? Yes. Prices are read from the server-rendered pages at scrape time. Products without a listed price are emitted without a price field rather than a placeholder.

How fresh is the data? As fresh as the moment you run the actor — pages are fetched live, never cached.

Why are some fields missing on search results? Search/category listings return compact product cards (no description/specs). Turn on includeDetails or use byUrl to get full detail records. Empty fields are always omitted.

What does minRating mean for products with no reviews? Products without any ratings have no rating field and pass the filter through; only products with a rating below your threshold are dropped.

Does it work outside the US? Zoro.com is US-focused (USD pricing, US shipping). Data is readable from anywhere, but pricing and availability reflect the US store.

How many products are on a page? Up to 36 per listing page; the actor paginates automatically until maxItems is reached or results run out.

Can I browse subcategories? Yes — pass any subcategory URL to categoryUrl (e.g. https://www.zoro.com/cordless-drills/c/5861/), or pick a top-level category and the actor includes all subcategories via Zoro's shop-all listing.

Limitations

  • Ratings lag the page: ratings/review counts come from Zoro's public ratings API and may not exist for brand-new products — those records simply omit rating/reviewCount.
  • eClass/UNSPSC not exposed: Zoro's product pages do not carry eClass or UNSPSC classification codes, so no such field is emitted.
  • Single-word queries can return empty SSR pages (e.g. bare tape) — Zoro's search engine renders no product cards for some short queries without a browser; use a more specific query (e.g. duct tape).
  • Occasional broken upstream image URLs: a very small share of Zoro's CDN image URLs 404 even from a browser (observed ~0.3% of sampled products). The URL is emitted exactly as Zoro serves it; verify critical images before bulk use.