Bowmark AIdocs

Grainger

Grainger's industrial MRO catalog, product detail, and branch/stock availability — search (keyword/category catalog search returning name, item number,…

Grainger's industrial MRO catalog, product detail, and branch/stock availability — search (keyword/category catalog search returning name, item number, brand, price and thumbnail), findBranch (nationwide branch directory), getProduct (price, pack size, spec table, availability by item number or URL) and checkStock (shipping-to-zip and pickup-at-nearest-branch fulfillment estimates) are all live.

Domain: grainger.com

Also known as: Grainger, W.W. Grainger, W.W. Grainger, Inc.

Call it directly

bowmark.providers.grainger.search(args: object): Promise<graingerSearchRow[]>
bowmark.providers.grainger.findBranch(args: object): Promise<graingerBranchRow[]>
bowmark.providers.grainger.getProduct(args: object): Promise<graingerProductRow>
bowmark.providers.grainger.checkStock(args: object): Promise<graingerStockRow>

Functions

FunctionWhat it does
searchSearches Grainger's industrial MRO catalog by keyword, returning matching products — item number, name, brand, list price and thumbnail.
findBranchFinds Grainger's own U.S. branches near a ZIP, city or state — address, phone, hours and curbside-pickup availability, off the site's own nationwide directory.
getProductReads one Grainger product page in full — price and pack size/unit of measure, the full spec table, the manufacturer's own part number, and a shipping/pickup availability summary.
checkStockChecks real fulfillment availability for one item (itemNumber or url, same as getProduct) at a caller-supplied zip (required, 5-digit US) — both shipping-to-that-zip and…

Types

interface graingerRow {
  id: string;
}

interface graingerSearchRow {
  itemNumber: string;
  name: string;
  url: string;
  brand: string | null;
  price: { amount: number; currency: string; perUnit: string } | null;
  thumbnail: string | null;
}

interface graingerBranchRow {
  branchNumber: string;
  name: string;
  url: string;
  address: { street: string; city: string; state: string; zip: string; country: string };
  phone: string | null;
  curbsidePickupAvailable: boolean;
  hours: { day: string; hours: string }[];
}

interface graingerProductRow {
  itemNumber: string;
  manufacturerModel: string | null;
  name: string;
  description: string | null;
  brand: string | null;
  url: string;
  images: string[];
  price: { amount: number; currency: string; perUnit: string } | null;
  specs: { name: string; value: string }[];
  availabilitySummary: string | null;
}

interface graingerStockRow {
  itemNumber: string;
  zip: string;
  quantity: number;
  shipping: { message: string | null; fulfillmentCode: string | null; availKey: string | null } | null;
  pickup: {
    message: string | null;
    fulfillmentCode: string | null;
    availKey: string | null;
    branch: {
      branchCode: string;
      city: string | null;
      address: { street: string | null; city: string | null; state: string | null; zip: string | null; country: string | null } | null;
      url: string | null;
    } | null;
  } | null;
}