# Grainger Product ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/grainger/product` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 2 credits per call | | **Documentation** | https://www.piloterr.com/library/grainger-product | ## Description Get a Grainger US or Canada product page: SKU, brand, price, images, description and specs via browser rendering. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/grainger/product' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Filter cartridge 3FRU1 ```json { "sku": "3FRU1", "url": "https://www.grainger.com/product/PENTAIR-PENTEK-Water-Filter-Cartridge-5-micron-3FRU1", "brand": "PENTAIR/PENTEK", "model": "155030-43", "price": 6.67, "title": "PENTAIR/PENTEK Water Filter Cartridge: 5 micron, Melt Blown, 2 gpm, Polypropylene", "images": [ "https://static.grainger.com/rp/s/is/image/Grainger/3FRU1_AS01" ], "region": "com", "currency": "USD", "product_id": "40161516", "description": "Product Description Melt blown filters use porous outer layers...", "specifications": { "Brand": "PENTAIR/PENTEK", "Series": "Pentek P", "Micron Rating": "5 micron", "Filter Media Material": "Polypropylene" } } ``` ## Documentation ## Overview The **Grainger Product** endpoint returns a full product page from Grainger US or Canada: SKU, brand, price, images, description and technical specifications. Browser rendering is required. Costs **2 credits** per call. ## Quickstart ``` GET https://api.piloterr.com/v2/grainger/product?query=3FRU1 GET https://api.piloterr.com/v2/grainger/product?query=https://www.grainger.com/product/PENTAIR-PENTEK-Water-Filter-Cartridge-5-micron-3FRU1 GET https://api.piloterr.com/v2/grainger/product?query=3FRU1®ion=ca ``` ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | SKU, full product URL, or `/product/...` path | | `region` | string | no | `com` (default) or `ca`. Detected from a full URL | | `return_page_source` | boolean | no | Return rendered HTML instead of JSON | ## Response fields | Field | Type | Description | |---|---|---| | `region` | string | `com` or `ca` | | `sku` / `product_id` / `model` | string | Identifiers | | `title` / `brand` | string | Product name and brand | | `price` / `currency` | number / string | Unit price | | `url` | string | Canonical product URL | | `description` | string | Long description when present | | `images` | string[] | Image URLs | | `specifications` | object | Technical key/value pairs | ## Error codes | Code | Meaning | |---|---| | `400` | Empty or invalid `query` | | `404` | No usable product data | | `500` | Rendering failed | ## Related endpoints - [Grainger Search](https://www.piloterr.com/library/grainger-search)