The Grainger Extract API retrieves SKU-level product information, transformed into Grainger’s required attribute format. This API is used to supply Grainger’s required attribute template and identify any data issues before the catalog is delivered.
NOTE: Use these header parameter examples mentioned above to execute this endpoint on the right and retrieve a sample API response.
Query Parameters
limit (integer)
This parameter specifies the maximum number of items that should be returned in a single API response. For example, if you set the limit to 10, the API will return a maximum of 10 items in the response.
offset (integer)
Defines where in the list of results the API should start returning records. For example, if there are 100 SKUs in total:
offset=0→ starts from the very beginning, returning records 1–10 (withlimit=10)offset=10→ starts after the first 10 records, returning records 11–20offset=20→ starts after the first 20 records, returning records 21–30
Think of it like page numbers and increasing the offset moves you further along the list.
NOTE: Use these query parameter examples mentioned above to execute this endpoint on the right and retrieve a sample API response.
Request Parameters
responseGraingerTemplateColumnList (string)
A comma-separated list of Grainger template column names to include in the response. Each column name represents a specific product attribute expected by Grainger. If this parameter is not passed, all mapped Grainger template column fields will be returned for each SKU.
For example: "responseGraingerTemplateColumnList": "Manufacturer Name,Supplier Product Description,Supplier Part Number,Manufacturer Part Number".
queryCondition (Array<Object>)
A list of filter conditions used to retrieve SKU records matching specific Grainger template values.
Each object inside queryCondition contains:
templateColumnName (string) -> The name of the Grainger Template column used for filtering.
equalsValue (string)-> The value that the column must match for a SKU to be included which is mapped with Grainger Template column.
For example:
"queryCondition": [
{
"templateColumnName": "Manufacturer Part Number",
"equalsValue": "A6632"
},
{
"templateColumnName": "Supplier Part Number",
"equalsValue": "S0044"
}
]customerSkuIds (string)
This is a comma-seperated list of SKU item id used to return specific SKUs only.
Example: "customerSkuIds": "SKU_1, SKU_2, SKU_3,SKU_4"
fromDateTime (string)
Start date and time for filtering SKUs based on last update or creation time.
Format: YYYY-MM-DD HH:MM
Example: "2024-12-02 17:06”
toDateTime (string)
End date and time for filtering SKUs based on last update or creation time.
Format: YYYY-MM-DD HH:MM
Example: "2024-01-02 21:06”
validationType (string)
Specifies the severity level for validation checks applied to Grainger rules.
Common values:
"Hard"→ Returns a validation error if Grainger rules are not met.
"Soft" → Returns a warning if Grainger rules are not met, without throwing an error.
Note
At least one filter must be provided either queryCondition, customerSkuIds, fromDateTime, or toDateTime. The API will return an error if none of these filters are included in the request.
SAMPLE ERROR RESPONSE
.png?sv=2026-02-06&spr=https&st=2026-07-01T21%3A33%3A55Z&se=2026-07-01T21%3A46%3A55Z&sr=c&sp=r&sig=IMfRLwKQOinfomZ2i8LRQjGd51c7lfetcfqe4ULZglY%3D)
Successful response
Response Parameters
results (Array <Object>)
List of SKU records returned by the API.
customerSkuId (string)
Unique SKU item id returned in the response.
Example: "SKU_1, SKU_2, SKU_3,SKU_4"
type (string)
Indicates the type of record returned. This value is always "SKU".
residentTaxonomy (Object)
Indicates the SKU’s taxonomy classification, including its path, node name, customer taxonomy ID, and associated domain.
taxonomyPath (string)
Defines full taxonomy path.
taxonomyName (string)
Describes the assigned taxonomy node name.
taxonomyCustomerId (string)
Customer’s taxonomy identifier.
domainName (string)
Domain associated to this taxonomy.
skuAttributes (Array <Object>)
Describes Grainger template attributes and their values.
attributeName (string)
Grainger template column name.
attributeType (string)
Defines how the value was derived ("String", "Deduced", "Package").
skuAttributeValues (array)
Attribute values (supports multi-value).
value (string)
The actual attribute value stored in PCC.
digitalAssets (Array<Object>)
Represents the digital media or content associated with a SKU, including asset type and accessible URLs.
digitalAssetName (string)
Name of the digital asset associated with SKU.
digitalAssetType (string)
Type of digital asset associated with SKU.
digitalAssetPublicURL (string)
Public URL to view digital asset associated with SKU.
digitalAssetThumbnailPublicURL (string)
Public URL to view thumbnail of the digital asset associated with SKU.
isPrimary (boolean)
Indicates whether this is the primary asset associated with the SKU.
graingerValidationFailures (Array<Object>)
Contains validation failure details when a Grainger rule is not met.
failedPCCAttribute (string)
PCC attribute that failed validation.
Example: “Brand”
graingerFileHeader (string)
Grainger column that failed validation.
Example: “Sell Pack Length (In)”
valueInCatalog (string)
Actual attribute value retrieved from the catalog for the SKU.
Example: “Bahamas”
failureType (string)
Reason for validation failure.
Example: “Pattern does not match”
validationRule (string)
Indicates the validation rule that was violated.
Example: “The value should be numeric”
validationType (string)
Specifies the severity level for validation failure. Following are the common values:
"Hard"→ Returns a validation error, if Grainger rules are not met.
"Soft"→ Returns a warning if Grainger rules are not met, without throwing an error.
offset (number)
Starting index of the result set used for pagination.
totalRecords (number)
Total number of SKUs matching the request filters.
limit (number)
Maximum number of SKUs returned (0= no limit).
Sample Response Body
.png?sv=2026-02-06&spr=https&st=2026-07-01T21%3A33%3A55Z&se=2026-07-01T21%3A46%3A55Z&sr=c&sp=r&sig=IMfRLwKQOinfomZ2i8LRQjGd51c7lfetcfqe4ULZglY%3D)
NOTE: Once you enter the sample values, Copy the generated response from the right panel and paste it into any editor (e.g., DOCX or Notepad++) to view the full API response.