Skip to content

Instantly share code, notes, and snippets.

@projected1
Created February 18, 2024 12:41
Show Gist options
  • Save projected1/2f68b9057b04b7e291b57fa648a21e6a to your computer and use it in GitHub Desktop.
Save projected1/2f68b9057b04b7e291b57fa648a21e6a to your computer and use it in GitHub Desktop.
HomeDepot GraphQL query
query searchModel(
$startIndex: Int
$pageSize: Int
$orderBy: ProductSort
$filter: ProductFilter
$storeId: String
$zipCode: String
$skipInstallServices: Boolean = true
$skipFavoriteCount: Boolean = false
$skipKPF: Boolean = false
$skipSpecificationGroup: Boolean = false
$skipSubscribeAndSave: Boolean = false
$keyword: String
$navParam: String
$storefilter: StoreFilter = ALL
$itemIds: [String]
$channel: Channel = DESKTOP
$additionalSearchParams: AdditionalParams
$loyaltyMembershipInput: LoyaltyMembershipInput
$dataSource: String
$skipDiscoveryZones: Boolean = true
) {
searchModel(
keyword: $keyword
navParam: $navParam
storefilter: $storefilter
storeId: $storeId
itemIds: $itemIds
channel: $channel
additionalSearchParams: $additionalSearchParams
loyaltyMembershipInput: $loyaltyMembershipInput
) {
metadata {
hasPLPBanner
categoryID
analytics {
semanticTokens
dynamicLCA
__typename
}
canonicalUrl
searchRedirect
clearAllRefinementsURL
contentType
h1Tag
isStoreDisplay
productCount {
inStore
__typename
}
stores {
storeId
storeName
address {
postalCode
__typename
}
nearByStores {
storeId
storeName
distance
address {
postalCode
__typename
}
__typename
}
__typename
}
__typename
}
products(
startIndex: $startIndex
pageSize: $pageSize
orderBy: $orderBy
filter: $filter
) {
identifiers {
storeSkuNumber
canonicalUrl
brandName
itemId
productLabel
productType
specialOrderSku
modelNumber
parentId
isSuperSku
sampleId
__typename
}
itemId
dataSources
media {
images {
url
type
subType
sizes
__typename
}
__typename
}
pricing(storeId: $storeId) {
value
alternatePriceDisplay
alternate {
bulk {
pricePerUnit
thresholdQuantity
value
__typename
}
unit {
caseUnitOfMeasure
unitsOriginalPrice
unitsPerCase
value
__typename
}
__typename
}
original
mapAboveOriginalPrice
message
preferredPriceFlag
promotion {
type
description {
shortDesc
longDesc
__typename
}
dollarOff
percentageOff
promotionTag
savingsCenter
savingsCenterPromos
specialBuySavings
specialBuyDollarOff
specialBuyPercentageOff
dates {
start
end
__typename
}
__typename
}
specialBuy
unitOfMeasure
__typename
}
reviews {
ratingsReviews {
averageRating
totalReviews
__typename
}
__typename
}
info {
swatches {
isSelected
itemId
label
swatchImgUrl
url
value
__typename
}
hidePrice
ecoRebate
quantityLimit
categoryHierarchy
sskMin
sskMax
unitOfMeasureCoverage
wasMaxPriceRange
wasMinPriceRange
productSubType {
name
link
__typename
}
customerSignal {
previouslyPurchased
__typename
}
isBuryProduct
isGenericProduct
returnable
isLiveGoodsProduct
isSponsored
sponsoredMetadata {
campaignId
placementId
slotId
sponsoredId
trackSource
__typename
}
globalCustomConfigurator {
customExperience
__typename
}
augmentedReality
sponsoredBeacon {
onClickBeacon
onViewBeacon
onClickBeacons
onViewBeacons
__typename
}
hasSubscription
samplesAvailable
productDepartmentId
productDepartment
totalNumberOfOptions
paintBrand
dotComColorEligible
classNumber
__typename
}
details {
installation {
serviceType
__typename
}
collection {
name
url
collectionId
__typename
}
highlights
__typename
}
fulfillment(storeId: $storeId, zipCode: $zipCode) {
anchorStoreStatus
anchorStoreStatusType
backordered
backorderedShipDate
bossExcludedShipStates
excludedShipStates
seasonStatusEligible
fulfillmentOptions {
type
fulfillable
services {
deliveryTimeline
deliveryDates {
startDate
endDate
__typename
}
deliveryCharge
dynamicEta {
hours
minutes
__typename
}
hasFreeShipping
freeDeliveryThreshold
locations {
curbsidePickupFlag
isBuyInStoreCheckNearBy
distance
inventory {
isOutOfStock
isInStock
isLimitedQuantity
isUnavailable
quantity
maxAllowedBopisQty
minAllowedBopisQty
__typename
}
isAnchor
locationId
state
storeName
storePhone
type
__typename
}
type
totalCharge
__typename
}
__typename
}
onlineStoreStatus
onlineStoreStatusType
__typename
}
installServices(storeId: $storeId, zipCode: $zipCode)
@skip(if: $skipInstallServices) {
scheduleAMeasure
gccCarpetDesignAndOrderEligible
__typename
}
availabilityType {
type
discontinued
buyable
status
__typename
}
badges(storeId: $storeId) {
name
label
__typename
}
dataSource
favoriteDetail @skip(if: $skipFavoriteCount) {
count
__typename
}
keyProductFeatures @skip(if: $skipKPF) {
keyProductFeaturesItems {
features {
name
refinementId
refinementUrl
value
__typename
}
__typename
}
__typename
}
specificationGroup @skip(if: $skipSpecificationGroup) {
specifications {
specName
specValue
__typename
}
specTitle
__typename
}
subscription @skip(if: $skipSubscribeAndSave) {
defaultfrequency
discountPercentage
subscriptionEnabled
__typename
}
sizeAndFitDetail {
attributeGroups {
attributes {
attributeName
dimensions
__typename
}
dimensionLabel
productType
__typename
}
__typename
}
__typename
}
taxonomy {
breadCrumbs {
browseUrl
creativeIconUrl
deselectUrl
dimensionName
label
refinementKey
url
dimensionId
__typename
}
brandLinkUrl
__typename
}
searchReport {
keyword
totalProducts
didYouMean
correctedKeyword
pageSize
searchUrl
sortBy
sortOrder
startIndex
__typename
}
id
relatedResults {
universalSearch {
title
__typename
}
relatedServices {
label
__typename
}
visualNavs {
label
imageId
webUrl
categoryId
imageURL
__typename
}
visualNavContainsEvents
relatedKeywords {
keyword
__typename
}
__typename
}
templates
orangeGraph {
universalSearchArray {
pods {
title
description
imageUrl
link
isProContent
recordType
__typename
}
info {
title
__typename
}
__typename
}
productTypes
intents
__typename
}
discoveryZones @skip(if: $skipDiscoveryZones) {
products(dataSource: $dataSource) {
itemId
dataSources
badges(storeId: $storeId) {
name
__typename
}
info {
isSponsored
sponsoredMetadata {
campaignId
placementId
slotId
sponsoredId
trackSource
__typename
}
sponsoredBeacon {
onClickBeacon
onViewBeacon
onClickBeacons
onViewBeacons
__typename
}
productSubType {
name
__typename
}
augmentedReality
globalCustomConfigurator {
customExperience
__typename
}
swatches {
isSelected
itemId
label
swatchImgUrl
url
value
__typename
}
totalNumberOfOptions
hidePrice
ecoRebate
quantityLimit
categoryHierarchy
sskMin
sskMax
unitOfMeasureCoverage
wasMaxPriceRange
wasMinPriceRange
__typename
}
identifiers {
canonicalUrl
productType
productLabel
modelNumber
storeSkuNumber
itemId
brandName
parentId
__typename
}
media {
images {
url
type
subType
sizes
__typename
}
__typename
}
dataSource
details {
collection {
name
url
__typename
}
__typename
}
pricing(storeId: $storeId) {
alternatePriceDisplay
alternate {
bulk {
pricePerUnit
thresholdQuantity
value
__typename
}
unit {
caseUnitOfMeasure
unitsOriginalPrice
unitsPerCase
value
__typename
}
__typename
}
original
mapAboveOriginalPrice
message
preferredPriceFlag
promotion {
type
description {
shortDesc
longDesc
__typename
}
dollarOff
percentageOff
promotionTag
savingsCenter
savingsCenterPromos
specialBuySavings
specialBuyDollarOff
specialBuyPercentageOff
__typename
}
specialBuy
unitOfMeasure
value
__typename
}
__typename
}
metadata {
zone
zoneTitle
__typename
}
__typename
}
partialTemplates
dimensions {
label
refinements {
refinementKey
label
recordCount
selected
imgUrl
url
nestedRefinements {
label
url
recordCount
refinementKey
__typename
}
__typename
}
collapse
dimensionId
isVisualNav
isVisualDimension
isNumericFilter
isColorSwatch
nestedRefinementsLimit
visualNavSequence
__typename
}
appliedDimensions {
label
refinements {
label
refinementKey
url
__typename
}
isNumericFilter
__typename
}
primaryFilters {
collapse
dimensionId
isVisualNav
isVisualDimension
isNumericFilter
isColorSwatch
label
nestedRefinementsLimit
refinements {
label
refinementKey
recordCount
selected
imgUrl
url
nestedRefinements {
label
url
recordCount
refinementKey
__typename
}
__typename
}
visualNavSequence
__typename
}
buyitagain(dataSource: $dataSource) {
itemId
dataSources
badges(storeId: $storeId) {
name
__typename
}
info {
isSponsored
sponsoredMetadata {
campaignId
placementId
slotId
sponsoredId
trackSource
__typename
}
sponsoredBeacon {
onClickBeacon
onViewBeacon
onClickBeacons
onViewBeacons
__typename
}
productSubType {
name
link
__typename
}
augmentedReality
globalCustomConfigurator {
customExperience
__typename
}
customerSignal {
previouslyPurchased
__typename
}
isBuryProduct
isGenericProduct
returnable
hidePrice
ecoRebate
quantityLimit
categoryHierarchy
sskMin
sskMax
unitOfMeasureCoverage
wasMaxPriceRange
wasMinPriceRange
__typename
}
identifiers {
canonicalUrl
productType
productLabel
modelNumber
storeSkuNumber
itemId
brandName
specialOrderSku
__typename
}
media {
images {
url
type
subType
sizes
__typename
}
__typename
}
details {
installation {
serviceType
__typename
}
collection {
name
url
__typename
}
__typename
}
fulfillment(storeId: $storeId, zipCode: $zipCode) {
anchorStoreStatus
anchorStoreStatusType
backordered
backorderedShipDate
bossExcludedShipStates
excludedShipStates
seasonStatusEligible
fulfillmentOptions {
type
fulfillable
services {
deliveryTimeline
deliveryDates {
startDate
endDate
__typename
}
deliveryCharge
dynamicEta {
hours
minutes
__typename
}
hasFreeShipping
freeDeliveryThreshold
locations {
curbsidePickupFlag
isBuyInStoreCheckNearBy
distance
inventory {
isOutOfStock
isInStock
isLimitedQuantity
isUnavailable
quantity
maxAllowedBopisQty
minAllowedBopisQty
__typename
}
isAnchor
locationId
state
storeName
storePhone
type
__typename
}
type
totalCharge
__typename
}
__typename
}
onlineStoreStatus
onlineStoreStatusType
__typename
}
installServices(storeId: $storeId, zipCode: $zipCode)
@skip(if: $skipInstallServices) {
scheduleAMeasure
gccCarpetDesignAndOrderEligible
__typename
}
pricing(storeId: $storeId) {
alternatePriceDisplay
alternate {
bulk {
pricePerUnit
thresholdQuantity
value
__typename
}
unit {
caseUnitOfMeasure
unitsOriginalPrice
unitsPerCase
value
__typename
}
__typename
}
original
mapAboveOriginalPrice
message
preferredPriceFlag
promotion {
type
description {
shortDesc
longDesc
__typename
}
dollarOff
percentageOff
promotionTag
savingsCenter
savingsCenterPromos
specialBuySavings
specialBuyDollarOff
specialBuyPercentageOff
__typename
}
specialBuy
unitOfMeasure
value
__typename
}
dataSource
__typename
}
__typename
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment