Facets to be included. Accepts both exact facet codes (e.g., "vendor", "options.Size") and wildcard patterns (e.g., "options.*", "metafields.product.*").Wildcard patterns expand to all matching attribute codes. For example, "options.*" expands to all option facets like "options.Size" and "options.Color". Wildcards must match at least one attribute code to be valid.Examples:
When true, any facet backed by a metaobject_reference or list.metaobject_reference metafield is returned with a companion facetDisplay object. Each entry maps a facet value (the metaobject handle) to the referenced metaobject’s display_name and fields. When the metaobject defines a color or image field, the entry also carries a resolved swatch object.Use this when your storefront filter UI needs human-readable labels or nested field data (for example, a color name or swatch hex) instead of the raw handle. When false or omitted, only the handles are returned in facets.Values are looked up from the local metaobject cache. Handles with no matching cached metaobject are omitted from facetDisplay and remain as plain values in facets. See Metaobjects and reference metafields for the normalized shape of each entry.
Storefront endpoints accept nested AND/OR filter groups up to two levels deep. Each nested group must contain at least one expression; empty nested groups are rejected. Metafield filter properties may include hyphens in their namespace or key, for example metafields.my-app.fit-type.Refer to the dedicated Filter Expressions guide to learn more about filter expressions.
Contextual information about the customer’s session, behavior, and environment. Automatically collected by the Storefront Pixel; must be manually provided for headless integrations. See Contextual Information for implementation guidance.
Geographic location information for regional personalization and merchandising. Layers determines it from the IP address for client-side requests. For server-side API calls (headless integrations), provide geo explicitly.
Number of units of this line in the cart. Layers rounds fractional values down to a whole number. Missing values, non-numeric values, and values below 1 count as 1. Layers uses it to calculate the cart subtotal for Free Shipping Picks.
The cart subtotal at which the shopper qualifies for free shipping, in the request currency’s major units (e.g. 75.00 for $75), not cents. Layers ignores values that aren’t a number greater than 0. Required for Free Shipping Picks blocks.
Shopify’s /cart.js and Liquid money values such as cart.total_price and item.price are in cents. Divide them by 100 before sending productsInCart[].price or freeShippingThreshold.
Products the shopper has viewed during the current session. Layers uses these as short-lived personalization signals, with recent views weighted more heavily. Only the 20 most recent views are used. The Storefront Pixel populates this automatically; send it manually only for headless integrations. See Recently viewed products.
Unit price in the request currency’s major units (e.g. 29.00 for $29), not cents, at time of purchase. Accepts a JSON number or a numeric string such as "29.00".
The page the search was started from (e.g., the referring page URL or page type). Layers accepts this field but doesn’t currently use it for ranking or rules.
Click identifiers from the landing URL, keyed by parameter name (e.g., fbclid, gclid). Layers derives the originating network from them as marketing.clickSource and discards the raw tokens. See Context data structure.
Arrival channel. Layers derives it from UTMs, click identifiers, and the referring site, and keeps a value you send only when it can’t derive one. See Arrival channel.
A/B test assignments for the shopper, keyed by experiment ID with the assigned group ID as the value (e.g., {"exp_123": "group_b"}). Used by the Experiment Group contextual condition. The Layers app embed fills this from Intelligems automatically; values your storefront sends for the same experiment take precedence. Entries whose value isn’t a string are dropped.
Shopify customer tags on the shopper’s profile (e.g., ["vip", "wholesale"]). Collected by the Storefront Pixel for signed-in customers; null for guests.
Shopify customer segment IDs the shopper belongs to. Server-resolved: Layers populates this from the signed-in identity.customerId on every request and ignores any value you send. null for guests and customers with no segment memberships. Available as context.customer.segments in contextual conditions.
Explicitly set the Shopify Market for this request. Must be provided inside context; it is not a top-level request body parameter. Used for market-specific product availability filtering and contextual pricing. Accepts a two-letter country code (e.g., "US", "CA"), a numeric Shopify Market ID (e.g., "12345"), or a Shopify Market GID (e.g., "gid://shopify/Market/12345").When not provided, the market is automatically resolved from context.geo.country (or the shopper’s detected country for client-side requests). If no matching market is found, the store’s primary market is used as the fallback.When you send a two-letter country code that belongs to the resolved market, Layers also prices for that country, ahead of the shopper’s detected location. See Market resolution.Behavior depends on the store’s market application mode (set under Settings > Search & Discovery > Search Behavior, in the Markets card):
Restrict to market catalog — Products are filtered to only those available in the resolved market, and market-specific pricing is applied
Adjust pricing only — The full catalog remains visible, but variant prices are swapped to market-specific values where available
Ignore markets (default) — Market resolution is skipped entirely; base catalog and base pricing are used for all shoppers
Storefront locale code (e.g., "en", "fr", "pt-br"). Case-insensitive; Layers normalizes to lowercase. When the locale is published in Shopify and served by the resolved market, Layers returns translated display text (titles, descriptions, option values, filter labels) while IDs, prices, and filter values stay in the source language. Regional locales fall back to their base language (pt-br uses pt). The store’s primary locale returns source text. See Translations.
ISO 4217 currency code (e.g., "USD", "EUR"). Case-insensitive; Layers normalizes to uppercase. When Layers can resolve a currency from the shopper’s market or pricing context, the server-resolved value takes precedence.
Shopify B2B company location identifier. When identity.companyLocationId is provided, Layers resolves the company location server-side and the server value takes precedence.
The shopping channel the customer is browsing from. Used for channel-specific merchandising, sorting, and analytics segmentation. Automatically detected from request headers when not provided (e.g., mobile app requests via Tapcart, Fuego, or Mobiloud Canvas are detected as "app").Accepted values:
"web" — Standard web browser (default)
"app" — Mobile app (e.g., Tapcart, Fuego, Mobiloud Canvas)
Apply discounts to products, variants, or collections. When provided, price-based sorting and filtering will use discounted prices. See the Discount Entitlements guide for detailed usage.Fixed amounts use your shop’s base currency. Layers skips them on market pricing rows in a different native currency, without converting the discount. Percentage discounts still apply to those localized prices. A variant that falls back to its base price can still receive a fixed-amount discount.
Optional filter group that qualifies products for the discount based on their attributes (for example, tags or vendor). Uses the same shape as the top-level filter_group parameter. Matches are additive with products, variants, and collections on the same entitlement.
The discount value. For PERCENTAGE, this must be a number between 0 and 100 (e.g., 10 for 10% off). For FIXED_AMOUNT, this is the amount in your shop’s base currency, not the shopper’s market currency.
This endpoint returns facet metadata only. It does not return product results, pagination fields, or an attributionToken. If you need products alongside facets, use the Browse API with retrieveFacetCount enabled instead.
Object whose keys are facet attribute codes and whose values are objects mapping each facet value to its result count. Only returned when retrieveFacetCount is true.Counts are scoped to the visibility of the active shopping channel, so they always match the number of products a shopper can actually see in the collection for that channel. Products that are not published to the requester’s channel, are B2B-only, or are hidden by a combined-listing role are excluded from every bucket. When the request is a mobile app request but the store does not have an app sales channel configured, counts fall back to the web channel.When filter_group is present, counts follow the standard “OR within a facet, AND across facets” pattern. Facets whose condition uses a multi-select operator (IN, NOT IN) are counted against every other active filter except the facet’s own condition, so other values in the same facet stay selectable. Facets whose condition uses a single-select or predicate operator (EQ, NEQ, GT, LT, BETWEEN, NULL, and so on) are counted against the fully filtered result set. Facets without an active condition are always counted against the full filter group.
Object whose keys are facet attribute codes and whose values are objects with min and max numeric properties. Only returned when includeFacetRanges is true.Ranges are computed only over products visible on the active shopping channel. A numeric range (for example, a price slider’s min and max) cannot come from a product the shopper cannot see.variants.price and variants.compare_at_price counts and ranges are always converted to the resolved market’s currency. A price slider’s min and max match the prices a shopper actually sees for their market. The market is resolved from context.market when provided, or from context.geo.country otherwise, and falls back to the store’s primary market. This matches the pricing behavior of the Browse API with retrieveFacetCount enabled. Both endpoints return consistent counts and ranges for the same filter group.When the request also includes discountEntitlements, discounts are applied on top of the market-converted price. See Discount entitlements for details.
Returned when at least one requested facet has display data to hydrate. Omitted when empty.Keys are facet attribute codes. Values are objects that map each facet value to a display object:
For facets backed by a metaobject_reference or list.metaobject_reference metafield, each entry maps the referenced metaobject’s handle to its display_name and fields. These entries require enrichFacetMetaobjects: true and are hydrated from the local metaobject cache. Handles with no cached metaobject are omitted from facetDisplay and remain as plain values under facets. See Metaobjects and reference metafields for the normalized field shape.
Metaobject entries also carry a swatch object when the metaobject defines a color or image field. The swatch is ready to render as an image thumbnail or color chip:
{ "type": "image", "url": "…", "alt": "…" } when the metaobject has a file_reference or list.file_reference field that points at an image. alt is present only when the image has alt text. Videos and documents in the field are skipped; the swatch comes from the field’s first image.
{ "type": "color", "colors": ["#191970"] } when the metaobject has a color or list.color field instead. colors lists every hex value on the field, so a two-tone value carries two entries.
An image swatch wins over a color swatch when the metaobject defines both field types. Among fields of the same kind, the field order on the metaobject definition decides. The swatch key is absent when the metaobject has no color or image field.
For variants.pickup_locations, each entry maps a Shopify location id to the location’s id, name, address, instructions, pickupTime, and (when the filter is a geoRadius) distance and distanceUnit. These entries are returned whenever pickup facets are requested, regardless of enrichFacetMetaobjects. See Local pickup filtering for the full shape.
Echo of the filter group expressions that were applied when computing the counts. Useful for verifying that the request’s filter_group was interpreted as expected.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Layers","colors":{"primary":"#607FFD","light":"#AFC0FF","dark":"#3A57E8"},"logo":{"light":"https://mintcdn.com/protoninc/PNs-gxGUVcdBDEEC/logo.svg?fit=max\u0026auto=format\u0026n=PNs-gxGUVcdBDEEC\u0026q=85\u0026s=989e3194cb32f07e7018b8b7186b9007","dark":"https://mintcdn.com/protoninc/PNs-gxGUVcdBDEEC/logo.svg?fit=max\u0026auto=format\u0026n=PNs-gxGUVcdBDEEC\u0026q=85\u0026s=989e3194cb32f07e7018b8b7186b9007","href":"https://www.uselayers.com/?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs-to-site"},"favicon":"https://mintcdn.com/protoninc/qubyNEZK4oJTl9By/favicon.svg?fit=max\u0026auto=format\u0026n=qubyNEZK4oJTl9By\u0026q=85\u0026s=3611d60346e12f15e4684bc60cb69ece","api":{"mdx":{"server":"https://app.uselayers.com/api/storefront/v1"}},"navbar":{"links":[{"href":"https://www.uselayers.com/changelog?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs-to-site","label":"Changelog"},{"href":"mailto:support@uselayers.com","label":"Support"},{"href":"https://app.uselayers.com/dashboard?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs-to-dashboard","label":"Dashboard"}],"primary":{"type":"button","label":"Request Demo","href":"https://www.uselayers.com/demo?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs-to-site"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/uselayers"},"links":[{"header":"Legal","items":[{"label":"Privacy Statement","href":"https://docs.uselayers.com/legal/privacy-statement"},{"label":"Terms of Use","href":"https://docs.uselayers.com/legal/terms-of-use"}]}]},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"protoninc","hasAudioNarration":false,"actualSubdomain":"protoninc","customDomains":["docs.uselayers.com"],"gitSource":{"type":"github","owner":"protonagency","repo":"layers-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"}},"buildId":"6aedfe438505f54819241077","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Documentation","count":103},{"language":"default","tag":"Help Center","count":90},{"language":"default","tag":"Merchandising","count":57},{"language":"default","tag":"Developers","count":42},{"language":"default","tag":"API Reference","count":25},{"language":"default","tag":"SDK","count":20},{"language":"default","tag":"Sort Orders","count":18},{"language":"default","tag":"Configuration","count":15},{"language":"default","tag":"Liquid","count":14},{"language":"default","tag":"Search \u0026 Discovery","count":14}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@uselayers.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/facets","slug":"/api-reference/facets","pageMetadata":{"api":"POST /{collection_handle}/facets","title":"Facets API: Get Collection Facets","sidebarTitle":"Collection Facets","description":"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.","href":"/api-reference/facets"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,ParamField,ResponseField,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`authorization`,children:`Authorization`}),`\n`,_jsx(ParamField,{header:`X-Storefront-Access-Token`,type:`string`,required:true,id:`param-x-storefront-access-token`,children:_jsxs(_components.p,{children:[`Token-based authentication header in the form of `,_jsx(_components.code,{children:`\u003cYOUR_LAYERS_TOKEN>`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`headers`,children:`Headers`}),`\n`,_jsx(ParamField,{header:`Content-Type`,type:`string`,default:`application/json`,required:true,id:`param-content-type`}),`\n`,_jsx(ParamField,{header:`Accept`,type:`string`,default:`application/json`,required:true,id:`param-accept`}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path parameters`}),`\n`,_jsx(ParamField,{path:`collection_handle`,type:`string`,required:true,id:`param-collection-handle`,children:_jsx(_components.p,{children:`The handle of the collection to retrieve facets for.`})}),`\n`,_jsx(Heading,{level:`2`,id:`body`,children:`Body`}),`\n`,_jsxs(ParamField,{body:`facets`,type:`string[]`,description:`List of facets to include in the response.`,id:`param-facets`,children:[_jsxs(_components.p,{children:[`Facets to be included. Accepts both exact facet codes (e.g., `,_jsx(_components.code,{children:`\"vendor\"`}),`, `,_jsx(_components.code,{children:`\"options.Size\"`}),`) and wildcard patterns (e.g., `,_jsx(_components.code,{children:`\"options.*\"`}),`, `,_jsx(_components.code,{children:`\"metafields.product.*\"`}),`).`]}),_jsxs(_components.p,{children:[`Wildcard patterns expand to all matching attribute codes. For example, `,_jsx(_components.code,{children:`\"options.*\"`}),` expands to all option facets like `,_jsx(_components.code,{children:`\"options.Size\"`}),` and `,_jsx(_components.code,{children:`\"options.Color\"`}),`. Wildcards must match at least one attribute code to be valid.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Examples:`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Exact facet codes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"facets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"vendor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"options.Size\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"options.Color\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Wildcard pattern`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"facets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"options.*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Mixed exact and wildcard`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"facets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"vendor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"options.*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"metafields.product.*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`]})})})]}),`\n`,_jsx(ParamField,{body:`retrieveFacetCount`,type:`boolean`,description:`Retrieve facet count.`,id:`param-retrieve-facet-count`,children:_jsx(_components.p,{children:`If the count of each facet value should be calculated.`})}),`\n`,_jsx(ParamField,{body:`includeFacetRanges`,type:`boolean`,description:`Return min/max range for facets with a numeric value.`,id:`param-include-facet-ranges`,children:_jsx(_components.p,{children:`If you want a min/max range for numeric facets such as price.`})}),`\n`,_jsxs(ParamField,{body:`enrichFacetMetaobjects`,type:`boolean`,description:`Hydrate metaobject-reference facet values with display data.`,id:`param-enrich-facet-metaobjects`,children:[_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`true`}),`, any facet backed by a `,_jsx(_components.code,{children:`metaobject_reference`}),` or `,_jsx(_components.code,{children:`list.metaobject_reference`}),` metafield is returned with a companion `,_jsx(_components.code,{children:`facetDisplay`}),` object. Each entry maps a facet value (the metaobject handle) to the referenced metaobject’s `,_jsx(_components.code,{children:`display_name`}),` and `,_jsx(_components.code,{children:`fields`}),`. When the metaobject defines a color or image field, the entry also carries a resolved `,_jsx(_components.code,{children:`swatch`}),` object.`]}),_jsxs(_components.p,{children:[`Use this when your storefront filter UI needs human-readable labels or nested field data (for example, a color name or swatch hex) instead of the raw handle. When `,_jsx(_components.code,{children:`false`}),` or omitted, only the handles are returned in `,_jsx(_components.code,{children:`facets`}),`.`]}),_jsxs(_components.p,{children:[`Values are looked up from the local metaobject cache. Handles with no matching cached metaobject are omitted from `,_jsx(_components.code,{children:`facetDisplay`}),` and remain as plain values in `,_jsx(_components.code,{children:`facets`}),`. See `,_jsx(_components.a,{href:`/developers/product-schema/metafields/metaobjects-and-references`,children:`Metaobjects and reference metafields`}),` for the normalized shape of each entry.`]})]}),`\n`,_jsxs(ParamField,{body:`filter_group`,type:`object`,description:`A group of filter conditions using various operators.`,id:`param-filter-group`,children:[_jsxs(_components.p,{children:[`Storefront endpoints accept nested `,_jsx(_components.code,{children:`AND`}),`/`,_jsx(_components.code,{children:`OR`}),` filter groups up to two levels deep. Each nested group must contain at least one expression; empty nested groups are rejected. Metafield filter properties may include hyphens in their namespace or key, for example `,_jsx(_components.code,{children:`metafields.my-app.fit-type`}),`.`]}),_jsxs(_components.p,{children:[`Refer to the dedicated `,_jsx(_components.a,{href:`/engine/filtering`,children:`Filter Expressions`}),` guide to learn more about filter expressions.`]})]}),`\n`,_jsxs(ParamField,{body:`context`,type:`object`,id:`param-context`,children:[_jsxs(_components.p,{children:[`Contextual information about the customer’s session, behavior, and environment. Automatically collected by the Storefront Pixel; must be manually provided for headless integrations. See `,_jsx(_components.a,{href:`/engine/contextual-information`,children:`Contextual Information`}),` for implementation guidance.`]}),_jsxs(Expandable,{title:`Properties`,children:[_jsxs(ParamField,{body:`geo`,type:`object`,id:`param-geo`,children:[_jsxs(_components.p,{children:[`Geographic location information for regional personalization and merchandising. Layers determines it from the IP address for client-side requests. For server-side API calls (headless integrations), provide `,_jsx(_components.code,{children:`geo`}),` explicitly.`]}),_jsxs(Expandable,{title:`Properties`,children:[_jsx(ParamField,{body:`country`,type:`string`,id:`param-country`,children:_jsx(_components.p,{children:`Country code or name (e.g., “US”, “Canada”).`})}),_jsx(ParamField,{body:`province`,type:`string`,id:`param-province`,children:_jsx(_components.p,{children:`State or province name (e.g., “California”, “Ontario”).`})}),_jsx(ParamField,{body:`city`,type:`string`,id:`param-city`,children:_jsx(_components.p,{children:`City name (e.g., “Los Angeles”, “Toronto”).`})})]})]}),_jsxs(ParamField,{body:`productsInCart`,type:`array`,id:`param-products-in-cart`,children:[_jsx(_components.p,{children:`Products currently in the customer’s cart. Used to surface complementary products and influence relevance scoring.`}),_jsxs(Expandable,{title:`Array Item Properties`,children:[_jsx(ParamField,{body:`title`,type:`string`,id:`param-title`,children:_jsxs(_components.p,{children:[`Product title. Each entry needs at least a `,_jsx(_components.code,{children:`productId`}),`, `,_jsx(_components.code,{children:`variantId`}),`, or non-empty `,_jsx(_components.code,{children:`title`}),`. Layers drops entries with none of these.`]})}),_jsx(ParamField,{body:`price`,type:`number`,id:`param-price`,children:_jsxs(_components.p,{children:[`Unit price in the request currency’s major units (e.g. `,_jsx(_components.code,{children:`29.00`}),` for $29), not cents. Accepts a JSON number or a numeric string such as `,_jsx(_components.code,{children:`\"29.00\"`}),`.`]})}),_jsx(ParamField,{body:`type`,type:`string`,id:`param-type`,children:_jsx(_components.p,{children:`Product type or category.`})}),_jsx(ParamField,{body:`productId`,type:`string`,id:`param-product-id`,children:_jsxs(_components.p,{children:[`Product identifier. Accepts a numeric ID (e.g., `,_jsx(_components.code,{children:`\"8234567890123\"`}),`) or a Shopify GID (e.g., `,_jsx(_components.code,{children:`\"gid://shopify/Product/8234567890123\"`}),`).`]})}),_jsx(ParamField,{body:`variantId`,type:`string`,id:`param-variant-id`,children:_jsx(_components.p,{children:`Product variant identifier.`})}),_jsx(ParamField,{body:`options`,type:`object`,id:`param-options`,children:_jsxs(_components.p,{children:[`Product variant options (e.g., `,_jsx(_components.code,{children:`{\"Size\": \"11\", \"Color\": \"Red\"}`}),`).`]})}),_jsx(ParamField,{body:`quantity`,type:`integer`,id:`param-quantity`,children:_jsxs(_components.p,{children:[`Number of units of this line in the cart. Layers rounds fractional values down to a whole number. Missing values, non-numeric values, and values below `,_jsx(_components.code,{children:`1`}),` count as `,_jsx(_components.code,{children:`1`}),`. Layers uses it to calculate the cart subtotal for `,_jsx(_components.a,{href:`/platform/blocks/strategies#free-shipping-picks`,children:`Free Shipping Picks`}),`.`]})})]})]}),_jsx(ParamField,{body:`freeShippingThreshold`,type:`number`,id:`param-free-shipping-threshold`,children:_jsxs(_components.p,{children:[`The cart subtotal at which the shopper qualifies for free shipping, in the request currency’s major units (e.g. `,_jsx(_components.code,{children:`75.00`}),` for $75), not cents. Layers ignores values that aren’t a number greater than `,_jsx(_components.code,{children:`0`}),`. Required for `,_jsx(_components.a,{href:`/platform/blocks/strategies#free-shipping-picks`,children:`Free Shipping Picks`}),` blocks.`]})}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Shopify’s `,_jsx(_components.code,{children:`/cart.js`}),` and Liquid money values such as `,_jsx(_components.code,{children:`cart.total_price`}),` and `,_jsx(_components.code,{children:`item.price`}),` are in cents. Divide them by 100 before sending `,_jsx(_components.code,{children:`productsInCart[].price`}),` or `,_jsx(_components.code,{children:`freeShippingThreshold`}),`.`]})}),_jsxs(ParamField,{body:`productsViewed`,type:`array`,id:`param-products-viewed`,children:[_jsxs(_components.p,{children:[`Products the shopper has viewed during the current session. Layers uses these as short-lived personalization signals, with recent views weighted more heavily. Only the 20 most recent views are used. The Storefront Pixel populates this automatically; send it manually only for headless integrations. See `,_jsx(_components.a,{href:`/engine/contextual-information/data-structure#recently-viewed-products`,children:`Recently viewed products`}),`.`]}),_jsxs(Expandable,{title:`Array Item Properties`,children:[_jsx(ParamField,{body:`id`,type:`string`,id:`param-id`,children:_jsxs(_components.p,{children:[`Product identifier. Accepts a numeric ID or a Shopify GID. Also accepted as `,_jsx(_components.code,{children:`productId`}),`.`]})}),_jsx(ParamField,{body:`at`,type:`integer`,id:`param-at`,children:_jsxs(_components.p,{children:[`Timestamp of the view in Unix milliseconds. Views without `,_jsx(_components.code,{children:`at`}),` still count but skip recency weighting.`]})}),_jsx(ParamField,{body:`title`,type:`string`,id:`param-title-1`,children:_jsx(_components.p,{children:`Product title.`})}),_jsx(ParamField,{body:`type`,type:`string`,id:`param-type-1`,children:_jsx(_components.p,{children:`Product type or category.`})}),_jsx(ParamField,{body:`variantId`,type:`string`,id:`param-variant-id-1`,children:_jsx(_components.p,{children:`Variant identifier, if the shopper viewed a specific variant.`})}),_jsx(ParamField,{body:`options`,type:`object`,id:`param-options-1`,children:_jsxs(_components.p,{children:[`Product variant options (e.g., `,_jsx(_components.code,{children:`{\"Size\": \"11\", \"Color\": \"Red\"}`}),`).`]})})]})]}),_jsxs(ParamField,{body:`productsPurchased`,type:`array`,id:`param-products-purchased`,children:[_jsx(_components.p,{children:`Products the customer has previously purchased. Informs recommendations and prevents over-promotion of owned items.`}),_jsxs(Expandable,{title:`Array Item Properties`,children:[_jsx(ParamField,{body:`title`,type:`string`,id:`param-title-2`,children:_jsxs(_components.p,{children:[`Product title. Each entry needs at least a `,_jsx(_components.code,{children:`productId`}),`, `,_jsx(_components.code,{children:`variantId`}),`, or non-empty `,_jsx(_components.code,{children:`title`}),`. Layers drops entries with none of these.`]})}),_jsx(ParamField,{body:`price`,type:`number`,id:`param-price-1`,children:_jsxs(_components.p,{children:[`Unit price in the request currency’s major units (e.g. `,_jsx(_components.code,{children:`29.00`}),` for $29), not cents, at time of purchase. Accepts a JSON number or a numeric string such as `,_jsx(_components.code,{children:`\"29.00\"`}),`.`]})}),_jsx(ParamField,{body:`type`,type:`string`,id:`param-type-2`,children:_jsx(_components.p,{children:`Product type or category.`})}),_jsx(ParamField,{body:`productId`,type:`string`,id:`param-product-id-1`,children:_jsxs(_components.p,{children:[`Product identifier. Accepts a numeric ID (e.g., `,_jsx(_components.code,{children:`\"8234567890123\"`}),`) or a Shopify GID (e.g., `,_jsx(_components.code,{children:`\"gid://shopify/Product/8234567890123\"`}),`).`]})}),_jsx(ParamField,{body:`variantId`,type:`string`,id:`param-variant-id-2`,children:_jsx(_components.p,{children:`Product variant identifier.`})}),_jsx(ParamField,{body:`options`,type:`object`,id:`param-options-2`,children:_jsxs(_components.p,{children:[`Product variant options (e.g., `,_jsx(_components.code,{children:`{\"Size\": \"11\", \"Color\": \"Red\"}`}),`).`]})})]})]}),_jsxs(ParamField,{body:`priorSearches`,type:`array`,id:`param-prior-searches`,children:[_jsx(_components.p,{children:`Recent search queries and their outcomes. Helps understand customer intent and refine relevance models.`}),_jsxs(Expandable,{title:`Array Item Properties`,children:[_jsx(ParamField,{body:`searchQuery`,type:`string`,required:true,id:`param-search-query`,children:_jsx(_components.p,{children:`The search query text.`})}),_jsx(ParamField,{body:`hadClick`,type:`boolean`,default:`false`,id:`param-had-click`,children:_jsx(_components.p,{children:`Whether the customer clicked on any results from this search.`})}),_jsx(ParamField,{body:`hasResults`,type:`boolean`,default:`false`,id:`param-has-results`,children:_jsx(_components.p,{children:`Whether the search returned any results.`})}),_jsx(ParamField,{body:`fromPage`,type:`string`,id:`param-from-page`,children:_jsx(_components.p,{children:`The page the search was started from (e.g., the referring page URL or page type). Layers accepts this field but doesn’t currently use it for ranking or rules.`})})]})]}),_jsxs(ParamField,{body:`marketing`,type:`object`,id:`param-marketing`,children:[_jsx(_components.p,{children:`UTM parameters and marketing campaign information for attribution tracking.`}),_jsxs(Expandable,{title:`Properties`,children:[_jsx(ParamField,{body:`source`,type:`string`,id:`param-source`,children:_jsx(_components.p,{children:`Marketing source (e.g., “google”, “facebook”).`})}),_jsx(ParamField,{body:`medium`,type:`string`,id:`param-medium`,children:_jsx(_components.p,{children:`Marketing medium (e.g., “cpc”, “email”, “social”).`})}),_jsx(ParamField,{body:`campaign`,type:`string`,id:`param-campaign`,children:_jsx(_components.p,{children:`Campaign name.`})}),_jsx(ParamField,{body:`term`,type:`string`,id:`param-term`,children:_jsx(_components.p,{children:`Search term or keyword.`})}),_jsx(ParamField,{body:`content`,type:`string`,id:`param-content`,children:_jsxs(_components.p,{children:[`Ad or link variant, such as the value of `,_jsx(_components.code,{children:`utm_content`}),`.`]})}),_jsx(ParamField,{body:`clickIds`,type:`object`,id:`param-click-ids`,children:_jsxs(_components.p,{children:[`Click identifiers from the landing URL, keyed by parameter name (e.g., `,_jsx(_components.code,{children:`fbclid`}),`, `,_jsx(_components.code,{children:`gclid`}),`). Layers derives the originating network from them as `,_jsx(_components.code,{children:`marketing.clickSource`}),` and discards the raw tokens. See `,_jsx(_components.a,{href:`/engine/contextual-information/data-structure#click-identifiers-and-derived-click-source`,children:`Context data structure`}),`.`]})}),_jsx(ParamField,{body:`referrer`,type:`string`,id:`param-referrer`,children:_jsxs(_components.p,{children:[`Host or URL of the site that linked the shopper to the storefront (e.g., “google.com”). Layers normalizes it to a lowercase host without `,_jsx(_components.code,{children:`www.`}),`.`]})}),_jsx(ParamField,{body:`landingPath`,type:`string`,id:`param-landing-path`,children:_jsx(_components.p,{children:`Storefront path the shopper first landed on this visit (e.g., “/collections/sale”). Layers removes the query string and keeps up to 512 characters.`})}),_jsx(ParamField,{body:`channel`,type:`string`,id:`param-channel`,children:_jsxs(_components.p,{children:[`Arrival channel. Layers derives it from UTMs, click identifiers, and the referring site, and keeps a value you send only when it can’t derive one. See `,_jsx(_components.a,{href:`/engine/contextual-information/data-structure#arrival-channel`,children:`Arrival channel`}),`.`]})})]})]}),_jsx(ParamField,{body:`experiments`,type:`object`,id:`param-experiments`,children:_jsxs(_components.p,{children:[`A/B test assignments for the shopper, keyed by experiment ID with the assigned group ID as the value (e.g., `,_jsx(_components.code,{children:`{\"exp_123\": \"group_b\"}`}),`). Used by the `,_jsx(_components.strong,{children:`Experiment Group`}),` contextual condition. The Layers app embed fills this from Intelligems automatically; values your storefront sends for the same experiment take precedence. Entries whose value isn’t a string are dropped.`]})}),_jsxs(ParamField,{body:`customer`,type:`object`,id:`param-customer`,children:[_jsx(_components.p,{children:`Aggregated customer behavior and purchase patterns for personalization.`}),_jsxs(Expandable,{title:`Properties`,children:[_jsx(ParamField,{body:`signedIn`,type:`boolean`,id:`param-signed-in`,children:_jsx(_components.p,{children:`Whether the customer is currently authenticated.`})}),_jsx(ParamField,{body:`returning`,type:`boolean`,id:`param-returning`,children:_jsx(_components.p,{children:`Whether this is a returning customer.`})}),_jsx(ParamField,{body:`numberOfOrders`,type:`integer`,id:`param-number-of-orders`,children:_jsx(_components.p,{children:`Total number of orders placed.`})}),_jsx(ParamField,{body:`averageOrderValue`,type:`number`,id:`param-average-order-value`,children:_jsx(_components.p,{children:`Average order value in store currency.`})}),_jsx(ParamField,{body:`daysBetweenOrders`,type:`integer`,id:`param-days-between-orders`,children:_jsx(_components.p,{children:`Average days between orders.`})}),_jsx(ParamField,{body:`daysSinceLastOrder`,type:`integer`,id:`param-days-since-last-order`,children:_jsx(_components.p,{children:`Days since the most recent order.`})}),_jsx(ParamField,{body:`daysSinceOldestOrder`,type:`integer`,id:`param-days-since-oldest-order`,children:_jsx(_components.p,{children:`Days since the first order.`})}),_jsx(ParamField,{body:`totalSpent`,type:`number`,id:`param-total-spent`,children:_jsx(_components.p,{children:`Total amount spent in store currency.`})}),_jsx(ParamField,{body:`tags`,type:`array`,id:`param-tags`,children:_jsxs(_components.p,{children:[`Shopify customer tags on the shopper’s profile (e.g., `,_jsx(_components.code,{children:`[\"vip\", \"wholesale\"]`}),`). Collected by the Storefront Pixel for signed-in customers; `,_jsx(_components.code,{children:`null`}),` for guests.`]})}),_jsx(ParamField,{body:`segments`,type:`array`,id:`param-segments`,children:_jsxs(_components.p,{children:[`Shopify customer segment IDs the shopper belongs to. Server-resolved: Layers populates this from the signed-in `,_jsx(_components.code,{children:`identity.customerId`}),` on every request and ignores any value you send. `,_jsx(_components.code,{children:`null`}),` for guests and customers with no segment memberships. Available as `,_jsx(_components.code,{children:`context.customer.segments`}),` in `,_jsx(_components.a,{href:`/platform/merchandising/contextual-conditions`,children:`contextual conditions`}),`.`]})})]})]}),_jsxs(ParamField,{body:`market`,type:`string`,id:`param-market`,children:[_jsxs(_components.p,{children:[`Explicitly set the Shopify Market for this request. Must be provided inside `,_jsx(_components.code,{children:`context`}),`; it is not a top-level request body parameter. Used for market-specific product availability filtering and contextual pricing. Accepts a two-letter country code (e.g., `,_jsx(_components.code,{children:`\"US\"`}),`, `,_jsx(_components.code,{children:`\"CA\"`}),`), a numeric Shopify Market ID (e.g., `,_jsx(_components.code,{children:`\"12345\"`}),`), or a Shopify Market GID (e.g., `,_jsx(_components.code,{children:`\"gid://shopify/Market/12345\"`}),`).`]}),_jsxs(_components.p,{children:[`When not provided, the market is automatically resolved from `,_jsx(_components.code,{children:`context.geo.country`}),` (or the shopper’s detected country for client-side requests). If no matching market is found, the store’s primary market is used as the fallback.`]}),_jsxs(_components.p,{children:[`When you send a two-letter country code that belongs to the resolved market, Layers also prices for that country, ahead of the shopper’s detected location. See `,_jsx(_components.a,{href:`/engine/contextual-information/data-structure#market`,children:`Market resolution`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Behavior depends on the store’s market application mode`}),` (set under `,_jsx(_components.strong,{children:`Settings > Search \u0026 Discovery > Search Behavior`}),`, in the `,_jsx(_components.strong,{children:`Markets`}),` card):`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Restrict to market catalog`}),` — Products are filtered to only those available in the resolved market, and market-specific pricing is applied`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Adjust pricing only`}),` — The full catalog remains visible, but variant prices are swapped to market-specific values where available`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ignore markets`}),` (default) — Market resolution is skipped entirely; base catalog and base pricing are used for all shoppers`]}),`\n`]})]}),_jsxs(ParamField,{body:`session`,type:`object`,id:`param-session`,children:[_jsx(_components.p,{children:`Session-level signals about the current visit.`}),_jsx(Expandable,{title:`Properties`,children:_jsx(ParamField,{body:`returning`,type:`boolean`,id:`param-returning-1`,children:_jsx(_components.p,{children:`Whether the current session belongs to a returning visitor. Layers derives this from the storefront’s session cookie when not provided.`})})})]}),_jsx(ParamField,{body:`locale`,type:`string`,id:`param-locale`,children:_jsxs(_components.p,{children:[`Storefront locale code (e.g., `,_jsx(_components.code,{children:`\"en\"`}),`, `,_jsx(_components.code,{children:`\"fr\"`}),`, `,_jsx(_components.code,{children:`\"pt-br\"`}),`). Case-insensitive; Layers normalizes to lowercase. When the locale is published in Shopify and served by the resolved market, Layers returns translated display text (titles, descriptions, option values, filter labels) while IDs, prices, and filter values stay in the source language. Regional locales fall back to their base language (`,_jsx(_components.code,{children:`pt-br`}),` uses `,_jsx(_components.code,{children:`pt`}),`). The store’s primary locale returns source text. See `,_jsx(_components.a,{href:`/shopify-integration/translations`,children:`Translations`}),`.`]})}),_jsx(ParamField,{body:`currency`,type:`string`,id:`param-currency`,children:_jsxs(_components.p,{children:[`ISO 4217 currency code (e.g., `,_jsx(_components.code,{children:`\"USD\"`}),`, `,_jsx(_components.code,{children:`\"EUR\"`}),`). Case-insensitive; Layers normalizes to uppercase. When Layers can resolve a currency from the shopper’s market or pricing context, the server-resolved value takes precedence.`]})}),_jsx(ParamField,{body:`b2bCompany`,type:`string`,id:`param-b2b-company`,children:_jsxs(_components.p,{children:[`Shopify B2B company location identifier. When `,_jsx(_components.code,{children:`identity.companyLocationId`}),` is provided, Layers resolves the company location server-side and the server value takes precedence.`]})}),_jsxs(ParamField,{body:`shoppingChannel`,type:`string`,default:`web`,id:`param-shopping-channel`,children:[_jsxs(_components.p,{children:[`The shopping channel the customer is browsing from. Used for channel-specific merchandising, sorting, and analytics segmentation. Automatically detected from request headers when not provided (e.g., mobile app requests via Tapcart, Fuego, or Mobiloud Canvas are detected as `,_jsx(_components.code,{children:`\"app\"`}),`).`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Accepted values:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`\"web\"`}),` — Standard web browser (default)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`\"app\"`}),` — Mobile app (e.g., Tapcart, Fuego, Mobiloud Canvas)`]}),`\n`]})]}),_jsx(ParamField,{body:`custom`,type:`object`,id:`param-custom`,children:_jsx(_components.p,{children:`Custom contextual data specific to your implementation. Structure is flexible and can contain any key-value pairs relevant to your use case.`})})]})]}),`\n`,_jsxs(ParamField,{body:`discountEntitlements`,type:`array`,description:`Array of discount entitlement objects for applying dynamic discounts to products. Maximum 50 entries.`,id:`param-discount-entitlements`,children:[_jsxs(_components.p,{children:[`Apply discounts to products, variants, or collections. When provided, price-based sorting and filtering will use discounted prices. See the `,_jsx(_components.a,{href:`/shopify-integration/discount-entitlements`,children:`Discount Entitlements`}),` guide for detailed usage.`]}),_jsx(_components.p,{children:`Fixed amounts use your shop’s base currency. Layers skips them on market pricing rows in a different native currency, without converting the discount. Percentage discounts still apply to those localized prices. A variant that falls back to its base price can still receive a fixed-amount discount.`}),_jsxs(Expandable,{title:`Discount Entitlement Object`,children:[_jsxs(ParamField,{body:`entitled`,type:`object`,required:true,id:`param-entitled`,children:[_jsx(_components.p,{children:`Defines which products qualify for the discount.`}),_jsxs(Expandable,{title:`entitled`,children:[_jsx(ParamField,{body:`all`,type:`boolean`,id:`param-all`,children:_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`true`}),`, applies discount to all products. When `,_jsx(_components.code,{children:`false`}),`, uses products, variants, or collections arrays.`]})}),_jsx(ParamField,{body:`products`,type:`string[]`,id:`param-products`,children:_jsx(_components.p,{children:`Array of product IDs or handles that qualify for the discount. Maximum 250 entries.`})}),_jsx(ParamField,{body:`variants`,type:`string[] | number[]`,id:`param-variants`,children:_jsx(_components.p,{children:`Array of variant IDs that qualify for the discount. Maximum 250 entries.`})}),_jsx(ParamField,{body:`collections`,type:`string[]`,id:`param-collections`,children:_jsx(_components.p,{children:`Array of collection handles that qualify for the discount. Maximum 250 entries.`})}),_jsx(ParamField,{body:`conditions`,type:`object`,id:`param-conditions`,children:_jsxs(_components.p,{children:[`Optional filter group that qualifies products for the discount based on their attributes (for example, `,_jsx(_components.code,{children:`tags`}),` or `,_jsx(_components.code,{children:`vendor`}),`). Uses the same shape as the top-level `,_jsx(_components.code,{children:`filter_group`}),` parameter. Matches are additive with `,_jsx(_components.code,{children:`products`}),`, `,_jsx(_components.code,{children:`variants`}),`, and `,_jsx(_components.code,{children:`collections`}),` on the same entitlement.`]})})]})]}),_jsxs(ParamField,{body:`discount`,type:`object`,required:true,id:`param-discount`,children:[_jsx(_components.p,{children:`Defines the discount to apply.`}),_jsxs(Expandable,{title:`discount`,children:[_jsx(ParamField,{body:`type`,type:`string`,required:true,id:`param-type-3`,children:_jsxs(_components.p,{children:[`The discount type: `,_jsx(_components.code,{children:`PERCENTAGE`}),` or `,_jsx(_components.code,{children:`FIXED_AMOUNT`}),`.`]})}),_jsx(ParamField,{body:`value`,type:`number`,required:true,id:`param-value`,children:_jsxs(_components.p,{children:[`The discount value. For `,_jsx(_components.code,{children:`PERCENTAGE`}),`, this must be a number between 0 and 100 (e.g., 10 for 10% off). For `,_jsx(_components.code,{children:`FIXED_AMOUNT`}),`, this is the amount in your shop’s base currency, not the shopper’s market currency.`]})})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`This endpoint returns facet metadata only. It does `,_jsx(_components.strong,{children:`not`}),` return product results, pagination fields, or an `,_jsx(_components.code,{children:`attributionToken`}),`. If you need products alongside facets, use the `,_jsx(_components.a,{href:`/api-reference/browse`,children:`Browse API`}),` with `,_jsx(_components.code,{children:`retrieveFacetCount`}),` enabled instead.`]}),`\n`,_jsxs(ResponseField,{name:`facets`,type:`object`,id:`param-facets-1`,children:[_jsxs(_components.p,{children:[`Object whose keys are facet attribute codes and whose values are objects mapping each facet value to its result count. Only returned when `,_jsx(_components.code,{children:`retrieveFacetCount`}),` is `,_jsx(_components.code,{children:`true`}),`.`]}),_jsxs(_components.p,{children:[`Counts are scoped to the visibility of the active shopping channel, so they always match the number of products a shopper can actually see in the collection for that channel. Products that are not published to the requester’s channel, are B2B-only, or are hidden by a combined-listing role are excluded from every bucket. When the request is a mobile app request but the store does not have an `,_jsx(_components.a,{href:`/help/configuration/configure-search-behavior#app-sales-channel`,children:`app sales channel`}),` configured, counts fall back to the web channel.`]}),_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`filter_group`}),` is present, counts follow the standard “OR within a facet, AND across facets” pattern. Facets whose condition uses a multi-select operator (`,_jsx(_components.code,{children:`IN`}),`, `,_jsx(_components.code,{children:`NOT IN`}),`) are counted against every other active filter except the facet’s own condition, so other values in the same facet stay selectable. Facets whose condition uses a single-select or predicate operator (`,_jsx(_components.code,{children:`EQ`}),`, `,_jsx(_components.code,{children:`NEQ`}),`, `,_jsx(_components.code,{children:`GT`}),`, `,_jsx(_components.code,{children:`LT`}),`, `,_jsx(_components.code,{children:`BETWEEN`}),`, `,_jsx(_components.code,{children:`NULL`}),`, and so on) are counted against the fully filtered result set. Facets without an active condition are always counted against the full filter group.`]})]}),`\n`,_jsxs(ResponseField,{name:`facetRanges`,type:`object`,id:`param-facet-ranges`,children:[_jsxs(_components.p,{children:[`Object whose keys are facet attribute codes and whose values are objects with `,_jsx(_components.code,{children:`min`}),` and `,_jsx(_components.code,{children:`max`}),` numeric properties. Only returned when `,_jsx(_components.code,{children:`includeFacetRanges`}),` is `,_jsx(_components.code,{children:`true`}),`.`]}),_jsxs(_components.p,{children:[`Ranges are computed only over products visible on the active shopping channel. A numeric range (for example, a price slider’s `,_jsx(_components.code,{children:`min`}),` and `,_jsx(_components.code,{children:`max`}),`) cannot come from a product the shopper cannot see.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`variants.price`}),` and `,_jsx(_components.code,{children:`variants.compare_at_price`}),` counts and ranges are always converted to the resolved market’s currency. A price slider’s `,_jsx(_components.code,{children:`min`}),` and `,_jsx(_components.code,{children:`max`}),` match the prices a shopper actually sees for their market. The market is resolved from `,_jsx(_components.code,{children:`context.market`}),` when provided, or from `,_jsx(_components.code,{children:`context.geo.country`}),` otherwise, and falls back to the store’s primary market. This matches the pricing behavior of the `,_jsx(_components.a,{href:`/api-reference/browse`,children:`Browse API`}),` with `,_jsx(_components.code,{children:`retrieveFacetCount`}),` enabled. Both endpoints return consistent counts and ranges for the same filter group.`]}),_jsxs(_components.p,{children:[`When the request also includes `,_jsx(_components.code,{children:`discountEntitlements`}),`, discounts are applied on top of the market-converted price. See `,_jsx(_components.a,{href:`/shopify-integration/discount-entitlements`,children:`Discount entitlements`}),` for details.`]})]}),`\n`,_jsxs(ResponseField,{name:`facetDisplay`,type:`object`,id:`param-facet-display`,children:[_jsx(_components.p,{children:`Returned when at least one requested facet has display data to hydrate. Omitted when empty.`}),_jsx(_components.p,{children:`Keys are facet attribute codes. Values are objects that map each facet value to a display object:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For facets backed by a `,_jsx(_components.code,{children:`metaobject_reference`}),` or `,_jsx(_components.code,{children:`list.metaobject_reference`}),` metafield, each entry maps the referenced metaobject’s handle to its `,_jsx(_components.code,{children:`display_name`}),` and `,_jsx(_components.code,{children:`fields`}),`. These entries require `,_jsx(_components.code,{children:`enrichFacetMetaobjects: true`}),` and are hydrated from the local metaobject cache. Handles with no cached metaobject are omitted from `,_jsx(_components.code,{children:`facetDisplay`}),` and remain as plain values under `,_jsx(_components.code,{children:`facets`}),`. See `,_jsx(_components.a,{href:`/developers/product-schema/metafields/metaobjects-and-references`,children:`Metaobjects and reference metafields`}),` for the normalized field shape.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Metaobject entries also carry a `,_jsx(_components.code,{children:`swatch`}),` object when the metaobject defines a color or image field. The swatch is ready to render as an image thumbnail or color chip:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{ \"type\": \"image\", \"url\": \"…\", \"alt\": \"…\" }`}),` when the metaobject has a `,_jsx(_components.code,{children:`file_reference`}),` or `,_jsx(_components.code,{children:`list.file_reference`}),` field that points at an image. `,_jsx(_components.code,{children:`alt`}),` is present only when the image has alt text. Videos and documents in the field are skipped; the swatch comes from the field’s first image.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{ \"type\": \"color\", \"colors\": [\"#191970\"] }`}),` when the metaobject has a `,_jsx(_components.code,{children:`color`}),` or `,_jsx(_components.code,{children:`list.color`}),` field instead. `,_jsx(_components.code,{children:`colors`}),` lists every hex value on the field, so a two-tone value carries two entries.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`An image swatch wins over a color swatch when the metaobject defines both field types. Among fields of the same kind, the field order on the metaobject definition decides. The `,_jsx(_components.code,{children:`swatch`}),` key is absent when the metaobject has no color or image field.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`variants.pickup_locations`}),`, each entry maps a Shopify location id to the location’s `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`address`}),`, `,_jsx(_components.code,{children:`instructions`}),`, `,_jsx(_components.code,{children:`pickupTime`}),`, and (when the filter is a `,_jsx(_components.code,{children:`geoRadius`}),`) `,_jsx(_components.code,{children:`distance`}),` and `,_jsx(_components.code,{children:`distanceUnit`}),`. These entries are returned whenever pickup facets are requested, regardless of `,_jsx(_components.code,{children:`enrichFacetMetaobjects`}),`. See `,_jsx(_components.a,{href:`/engine/geospatial-filtering#local-pickup-filtering`,children:`Local pickup filtering`}),` for the full shape.`]}),`\n`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`filters`,type:`object`,id:`param-filters`,children:_jsxs(_components.p,{children:[`Echo of the filter group expressions that were applied when computing the counts. Useful for verifying that the request’s `,_jsx(_components.code,{children:`filter_group`}),` was interpreted as expected.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use`,children:`When to use`}),`\n`,_jsx(_components.p,{children:`Use this endpoint when you need facet data without fetching product results. Common scenarios include:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pre-loading filter options`}),`: Fetch available filter values before the shopper starts browsing`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sidebar filters`}),`: Build filter UIs that show available options and counts independently of the product grid`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reducing payload size`}),`: Avoid fetching full product data when you only need facet information`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For combined product results and facets in a single request, use the `,_jsx(_components.a,{href:`/api-reference/browse`,children:`Browse API`}),` with `,_jsx(_components.code,{children:`retrieveFacetCount`}),` enabled instead.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"api":"POST /{collection_handle}/facets","title":"Facets API: Get Collection Facets","sidebarTitle":"Collection Facets","description":"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.","href":"/api-reference/facets"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[353,357,"Example,ResponseFiel"],[604,619,"Example)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingM"],[42016,42444,",`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Request`,numberOfLines:`18`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`POST /storefront/v`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/summer-collection/facets`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"facets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"vendor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"variants.price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"metafields.custom.color_swatch\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"retrieveFacetCount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"includeFacetRanges\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enrichFacetMetaobjects\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"context\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"market\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CA\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"geo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"country\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CA\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"discountEntitlements\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"entitled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"all\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"collections\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"summer-collection\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"discount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PERCENTAGE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`20`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Response`,numberOfLines:`61`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`61`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"facets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vendor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Nike\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Adidas\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`30`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"New Balance\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`25`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Puma\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`20`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Reebok\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`15`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Vans\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`15`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Shoes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`80`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Apparel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`50`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Accessories\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`20`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"metafields.custom.color_swatch\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"midnight-blue\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`42`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sunset-orange\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`18`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"facetRanges\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"variants.price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"min\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`23.99`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"max\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`199.99`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"facetDisplay\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"metafields.custom.color_swatch\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"midnight-blue\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"handle\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"midnight-blue\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Midnight Blue\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fields\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Midnight Blue\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hex_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"#191970\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"swatch\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"color\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"colors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"#191970\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sunset-orange\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"handle\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sunset-orange\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sunset Orange\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fields\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sunset Orange\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"swatch_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gid://shopify/MediaImage/123456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.shopify.com/s/files/sunset-orange.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"alt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sunset Orange fabric\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"swatch\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.shopify.com/s/files/sunset-orange.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"alt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sunset Orange fabric\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"filters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Authorization","slug":"authorization","depth":2,"children":[]},{"title":"Headers","slug":"headers","depth":2,"children":[]},{"title":"Path parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Body","slug":"body","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"When to use","slug":"when-to-use","depth":2,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"Request","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"18\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">POST /storefront/v\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">/summer-collection/facets\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"facets\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"vendor\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"product_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"variants.price\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"metafields.custom.color_swatch\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"retrieveFacetCount\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"includeFacetRanges\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"enrichFacetMetaobjects\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"context\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"market\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"CA\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"geo\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"country\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"CA\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"discountEntitlements\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"entitled\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"all\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"collections\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"summer-collection\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">] },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"discount\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"PERCENTAGE\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"value\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">20\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Response","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"61\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"facets\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"vendor\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Nike\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">45\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Adidas\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">30\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"New Balance\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">25\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Puma\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">20\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Reebok\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">15\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Vans\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">15\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"product_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Shoes\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">80\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Apparel\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">50\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"Accessories\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">20\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"metafields.custom.color_swatch\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"midnight-blue\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">42\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"sunset-orange\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">18\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"facetRanges\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"variants.price\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"min\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">23.99\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"max\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">199.99\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"facetDisplay\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"metafields.custom.color_swatch\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"midnight-blue\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"handle\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"midnight-blue\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"display_name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Midnight Blue\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"fields\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Midnight Blue\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hex_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"#191970\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"swatch\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"color\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"colors\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"#191970\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"sunset-orange\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"handle\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"sunset-orange\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"display_name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Sunset Orange\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"fields\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Sunset Orange\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"swatch_image\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"gid://shopify/MediaImage/123456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://cdn.shopify.com/s/files/sunset-orange.png\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"alt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Sunset Orange fabric\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"swatch\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"image\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://cdn.shopify.com/s/files/sunset-orange.png\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"alt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Sunset Orange fabric\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"filters\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Facets API: Get Collection Facets","path":"/{collection_handle}/facets","servers":[{"url":"https://app.uselayers.com/api/storefront/v1"}],"method":"post","request":{"security":[],"parameters":{"query":{},"header":{"X-Storefront-Access-Token":{"schema":[{"type":"string","description":"Token-based authentication header in the form of `\u003cYOUR_LAYERS_TOKEN>` .","required":true}]},"Content-Type":{"schema":[{"type":"string","required":true}]},"Accept":{"schema":[{"type":"string","required":true}]}},"cookie":{},"path":{"collection_handle":{"schema":[{"type":"string","description":"The handle of the collection to retrieve facets for.","required":true}]}}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"facets":[{"type":"array","items":[{"type":"string"}],"description":"Facets to be included. Accepts both exact facet codes (e.g., `\"vendor\"` , `\"options.Size\"` ) and wildcard patterns (e.g., `\"options.*\"` , `\"metafields.product.*\"` ). Wildcard patterns expand to all matching attribute codes. For example, `\"options.*\"` expands to all option facets like `\"options.Size\"` and `\"options.Color\"` . Wildcards must match at least one attribute code to be valid. Examples:"}],"retrieveFacetCount":[{"type":"boolean","description":"If the count of each facet value should be calculated."}],"includeFacetRanges":[{"type":"boolean","description":"If you want a min/max range for numeric facets such as price."}],"enrichFacetMetaobjects":[{"type":"boolean","description":"When `true` , any facet backed by a `metaobject_reference` or `list.metaobject_reference` metafield is returned with a companion `facetDisplay` object. Each entry maps a facet value (the metaobject handle) to the referenced metaobject’s `display_name` and `fields` . When the metaobject defines a color or image field, the entry also carries a resolved `swatch` object. Use this when your storefront filter UI needs human-readable labels or nested field data (for example, a color name or swatch hex) instead of the raw handle. When `false` or omitted, only the handles are returned in `facets` . Values are looked up from the local metaobject cache. Handles with no matching cached metaobject are omitted from `facetDisplay` and remain as plain values in `facets` . See Metaobjects and reference metafields for the normalized shape of each entry."}],"filter_group":[{"type":"object","properties":{},"description":"Storefront endpoints accept nested `AND` / `OR` filter groups up to two levels deep. Each nested group must contain at least one expression; empty nested groups are rejected. Metafield filter properties may include hyphens in their namespace or key, for example `metafields.my-app.fit-type` . Refer to the dedicated Filter Expressions guide to learn more about filter expressions."}],"context":[{"type":"object","properties":{"geo":[{"type":"object","properties":{"country":[{"type":"string","description":"Country code or name (e.g., “US”, “Canada”)."}],"province":[{"type":"string","description":"State or province name (e.g., “California”, “Ontario”)."}],"city":[{"type":"string","description":"City name (e.g., “Los Angeles”, “Toronto”)."}]},"description":"Geographic location information for regional personalization and merchandising. Layers determines it from the IP address for client-side requests. For server-side API calls (headless integrations), provide `geo` explicitly."}],"productsInCart":[{"type":"array","items":[{"type":"object","properties":{"title":[{"type":"string","description":"Product title. Each entry needs at least a `productId` , `variantId` , or non-empty `title` . Layers drops entries with none of these."}],"price":[{"type":"number","description":"Unit price in the request currency’s major units (e.g. `29.00` for $29), not cents. Accepts a JSON number or a numeric string such as `\"29.00\"` ."}],"type":[{"type":"string","description":"Product type or category."}],"productId":[{"type":"string","description":"Product identifier. Accepts a numeric ID (e.g., `\"8234567890123\"` ) or a Shopify GID (e.g., `\"gid://shopify/Product/8234567890123\"` )."}],"variantId":[{"type":"string","description":"Product variant identifier."}],"options":[{"type":"object","properties":{},"description":"Product variant options (e.g., `{\"Size\": \"11\", \"Color\": \"Red\"}` )."}],"quantity":[{"type":"integer","description":"Number of units of this line in the cart. Layers rounds fractional values down to a whole number. Missing values, non-numeric values, and values below `1` count as `1` . Layers uses it to calculate the cart subtotal for Free Shipping Picks ."}]}}],"description":"Products currently in the customer’s cart. Used to surface complementary products and influence relevance scoring."}],"freeShippingThreshold":[{"type":"number","description":"The cart subtotal at which the shopper qualifies for free shipping, in the request currency’s major units (e.g. `75.00` for $75), not cents. Layers ignores values that aren’t a number greater than `0` . Required for Free Shipping Picks blocks."}],"productsViewed":[{"type":"array","items":[{"type":"object","properties":{"id":[{"type":"string","description":"Product identifier. Accepts a numeric ID or a Shopify GID. Also accepted as `productId` ."}],"at":[{"type":"integer","description":"Timestamp of the view in Unix milliseconds. Views without `at` still count but skip recency weighting."}],"title":[{"type":"string","description":"Product title."}],"type":[{"type":"string","description":"Product type or category."}],"variantId":[{"type":"string","description":"Variant identifier, if the shopper viewed a specific variant."}],"options":[{"type":"object","properties":{},"description":"Product variant options (e.g., `{\"Size\": \"11\", \"Color\": \"Red\"}` )."}]}}],"description":"Products the shopper has viewed during the current session. Layers uses these as short-lived personalization signals, with recent views weighted more heavily. Only the 20 most recent views are used. The Storefront Pixel populates this automatically; send it manually only for headless integrations. See Recently viewed products ."}],"productsPurchased":[{"type":"array","items":[{"type":"object","properties":{"title":[{"type":"string","description":"Product title. Each entry needs at least a `productId` , `variantId` , or non-empty `title` . Layers drops entries with none of these."}],"price":[{"type":"number","description":"Unit price in the request currency’s major units (e.g. `29.00` for $29), not cents, at time of purchase. Accepts a JSON number or a numeric string such as `\"29.00\"` ."}],"type":[{"type":"string","description":"Product type or category."}],"productId":[{"type":"string","description":"Product identifier. Accepts a numeric ID (e.g., `\"8234567890123\"` ) or a Shopify GID (e.g., `\"gid://shopify/Product/8234567890123\"` )."}],"variantId":[{"type":"string","description":"Product variant identifier."}],"options":[{"type":"object","properties":{},"description":"Product variant options (e.g., `{\"Size\": \"11\", \"Color\": \"Red\"}` )."}]}}],"description":"Products the customer has previously purchased. Informs recommendations and prevents over-promotion of owned items."}],"priorSearches":[{"type":"array","items":[{"type":"object","properties":{"searchQuery":[{"type":"string","description":"The search query text.","required":true}],"hadClick":[{"type":"boolean","description":"Whether the customer clicked on any results from this search."}],"hasResults":[{"type":"boolean","description":"Whether the search returned any results."}],"fromPage":[{"type":"string","description":"The page the search was started from (e.g., the referring page URL or page type). Layers accepts this field but doesn’t currently use it for ranking or rules."}]}}],"description":"Recent search queries and their outcomes. Helps understand customer intent and refine relevance models."}],"marketing":[{"type":"object","properties":{"source":[{"type":"string","description":"Marketing source (e.g., “google”, “facebook”)."}],"medium":[{"type":"string","description":"Marketing medium (e.g., “cpc”, “email”, “social”)."}],"campaign":[{"type":"string","description":"Campaign name."}],"term":[{"type":"string","description":"Search term or keyword."}],"content":[{"type":"string","description":"Ad or link variant, such as the value of `utm_content` ."}],"clickIds":[{"type":"object","properties":{},"description":"Click identifiers from the landing URL, keyed by parameter name (e.g., `fbclid` , `gclid` ). Layers derives the originating network from them as `marketing.clickSource` and discards the raw tokens. See Context data structure ."}],"referrer":[{"type":"string","description":"Host or URL of the site that linked the shopper to the storefront (e.g., “google.com”). Layers normalizes it to a lowercase host without `www.` ."}],"landingPath":[{"type":"string","description":"Storefront path the shopper first landed on this visit (e.g., “/collections/sale”). Layers removes the query string and keeps up to 512 characters."}],"channel":[{"type":"string","description":"Arrival channel. Layers derives it from UTMs, click identifiers, and the referring site, and keeps a value you send only when it can’t derive one. See Arrival channel ."}]},"description":"UTM parameters and marketing campaign information for attribution tracking."}],"experiments":[{"type":"object","properties":{},"description":"A/B test assignments for the shopper, keyed by experiment ID with the assigned group ID as the value (e.g., `{\"exp_123\": \"group_b\"}` ). Used by the Experiment Group contextual condition. The Layers app embed fills this from Intelligems automatically; values your storefront sends for the same experiment take precedence. Entries whose value isn’t a string are dropped."}],"customer":[{"type":"object","properties":{"signedIn":[{"type":"boolean","description":"Whether the customer is currently authenticated."}],"returning":[{"type":"boolean","description":"Whether this is a returning customer."}],"numberOfOrders":[{"type":"integer","description":"Total number of orders placed."}],"averageOrderValue":[{"type":"number","description":"Average order value in store currency."}],"daysBetweenOrders":[{"type":"integer","description":"Average days between orders."}],"daysSinceLastOrder":[{"type":"integer","description":"Days since the most recent order."}],"daysSinceOldestOrder":[{"type":"integer","description":"Days since the first order."}],"totalSpent":[{"type":"number","description":"Total amount spent in store currency."}],"tags":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Shopify customer tags on the shopper’s profile (e.g., `[\"vip\", \"wholesale\"]` ). Collected by the Storefront Pixel for signed-in customers; `null` for guests."}],"segments":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Shopify customer segment IDs the shopper belongs to. Server-resolved: Layers populates this from the signed-in `identity.customerId` on every request and ignores any value you send. `null` for guests and customers with no segment memberships. Available as `context.customer.segments` in contextual conditions ."}]},"description":"Aggregated customer behavior and purchase patterns for personalization."}],"market":[{"type":"string","description":"Explicitly set the Shopify Market for this request. Must be provided inside `context` ; it is not a top-level request body parameter. Used for market-specific product availability filtering and contextual pricing. Accepts a two-letter country code (e.g., `\"US\"` , `\"CA\"` ), a numeric Shopify Market ID (e.g., `\"12345\"` ), or a Shopify Market GID (e.g., `\"gid://shopify/Market/12345\"` ). When not provided, the market is automatically resolved from `context.geo.country` (or the shopper’s detected country for client-side requests). If no matching market is found, the store’s primary market is used as the fallback. When you send a two-letter country code that belongs to the resolved market, Layers also prices for that country, ahead of the shopper’s detected location. See Market resolution . Behavior depends on the store’s market application mode (set under Settings > Search \u0026 Discovery > Search Behavior , in the Markets card): Restrict to market catalog — Products are filtered to only those available in the resolved market, and market-specific pricing is applied Adjust pricing only — The full catalog remains visible, but variant prices are swapped to market-specific values where available Ignore markets (default) — Market resolution is skipped entirely; base catalog and base pricing are used for all shoppers"}],"session":[{"type":"object","properties":{"returning":[{"type":"boolean","description":"Whether the current session belongs to a returning visitor. Layers derives this from the storefront’s session cookie when not provided."}]},"description":"Session-level signals about the current visit."}],"locale":[{"type":"string","description":"Storefront locale code (e.g., `\"en\"` , `\"fr\"` , `\"pt-br\"` ). Case-insensitive; Layers normalizes to lowercase. When the locale is published in Shopify and served by the resolved market, Layers returns translated display text (titles, descriptions, option values, filter labels) while IDs, prices, and filter values stay in the source language. Regional locales fall back to their base language ( `pt-br` uses `pt` ). The store’s primary locale returns source text. See Translations ."}],"currency":[{"type":"string","description":"ISO 4217 currency code (e.g., `\"USD\"` , `\"EUR\"` ). Case-insensitive; Layers normalizes to uppercase. When Layers can resolve a currency from the shopper’s market or pricing context, the server-resolved value takes precedence."}],"b2bCompany":[{"type":"string","description":"Shopify B2B company location identifier. When `identity.companyLocationId` is provided, Layers resolves the company location server-side and the server value takes precedence."}],"shoppingChannel":[{"type":"string","description":"The shopping channel the customer is browsing from. Used for channel-specific merchandising, sorting, and analytics segmentation. Automatically detected from request headers when not provided (e.g., mobile app requests via Tapcart, Fuego, or Mobiloud Canvas are detected as `\"app\"` ). Accepted values: `\"web\"` — Standard web browser (default) `\"app\"` — Mobile app (e.g., Tapcart, Fuego, Mobiloud Canvas)"}],"custom":[{"type":"object","properties":{},"description":"Custom contextual data specific to your implementation. Structure is flexible and can contain any key-value pairs relevant to your use case."}]},"description":"Contextual information about the customer’s session, behavior, and environment. Automatically collected by the Storefront Pixel; must be manually provided for headless integrations. See Contextual Information for implementation guidance."}],"discountEntitlements":[{"type":"array","items":[{"type":"object","properties":{"entitled":[{"type":"object","properties":{"all":[{"type":"boolean","description":"When `true` , applies discount to all products. When `false` , uses products, variants, or collections arrays."}],"products":[{"type":"array","items":[{"type":"string"}],"description":"Array of product IDs or handles that qualify for the discount. Maximum 250 entries."}],"variants":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Array of variant IDs that qualify for the discount. Maximum 250 entries."}],"collections":[{"type":"array","items":[{"type":"string"}],"description":"Array of collection handles that qualify for the discount. Maximum 250 entries."}],"conditions":[{"type":"object","properties":{},"description":"Optional filter group that qualifies products for the discount based on their attributes (for example, `tags` or `vendor` ). Uses the same shape as the top-level `filter_group` parameter. Matches are additive with `products` , `variants` , and `collections` on the same entitlement."}]},"description":"Defines which products qualify for the discount.","required":true}],"discount":[{"type":"object","properties":{"type":[{"type":"string","description":"The discount type: `PERCENTAGE` or `FIXED_AMOUNT` .","required":true}],"value":[{"type":"number","description":"The discount value. For `PERCENTAGE` , this must be a number between 0 and 100 (e.g., 10 for 10% off). For `FIXED_AMOUNT` , this is the amount in your shop’s base currency, not the shopper’s market currency.","required":true}]},"description":"Defines the discount to apply.","required":true}]}}],"description":"Apply discounts to products, variants, or collections. When provided, price-based sorting and filtering will use discounted prices. See the Discount Entitlements guide for detailed usage. Fixed amounts use your shop’s base currency. Layers skips them on market pricing rows in a different native currency, without converting the discount. Percentage discounts still apply to those localized prices. A variant that falls back to its base price can still receive a fixed-amount discount."}]}}],"examples":{"example":{"value":{"facets":["\u003cstring>"],"retrieveFacetCount":true,"includeFacetRanges":true,"enrichFacetMetaobjects":true,"filter_group":{},"context":{"geo":{"country":"\u003cstring>","province":"\u003cstring>","city":"\u003cstring>"},"productsInCart":[{"title":"\u003cstring>","price":123,"type":"\u003cstring>","productId":"\u003cstring>","variantId":"\u003cstring>","options":{},"quantity":123}],"freeShippingThreshold":123,"productsViewed":[{"id":"\u003cstring>","at":123,"title":"\u003cstring>","type":"\u003cstring>","variantId":"\u003cstring>","options":{}}],"productsPurchased":[{"title":"\u003cstring>","price":123,"type":"\u003cstring>","productId":"\u003cstring>","variantId":"\u003cstring>","options":{}}],"priorSearches":[{"searchQuery":"\u003cstring>","hadClick":true,"hasResults":true,"fromPage":"\u003cstring>"}],"marketing":{"source":"\u003cstring>","medium":"\u003cstring>","campaign":"\u003cstring>","term":"\u003cstring>","content":"\u003cstring>","clickIds":{},"referrer":"\u003cstring>","landingPath":"\u003cstring>","channel":"\u003cstring>"},"experiments":{},"customer":{"signedIn":true,"returning":true,"numberOfOrders":123,"averageOrderValue":123,"daysBetweenOrders":123,"daysSinceLastOrder":123,"daysSinceOldestOrder":123,"totalSpent":123,"tags":[{}],"segments":[{}]},"market":"\u003cstring>","session":{"returning":true},"locale":"\u003cstring>","currency":"\u003cstring>","b2bCompany":"\u003cstring>","shoppingChannel":"\u003cstring>","custom":{}},"discountEntitlements":[{"entitled":{"all":true,"products":["\u003cstring>"],"variants":[{}],"collections":["\u003cstring>"],"conditions":{}},"discount":{"type":"\u003cstring>","value":123}}]}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"facets":[{"type":"object","properties":{},"description":"Object whose keys are facet attribute codes and whose values are objects mapping each facet value to its result count. Only returned when `retrieveFacetCount` is `true` . Counts are scoped to the visibility of the active shopping channel, so they always match the number of products a shopper can actually see in the collection for that channel. Products that are not published to the requester’s channel, are B2B-only, or are hidden by a combined-listing role are excluded from every bucket. When the request is a mobile app request but the store does not have an app sales channel configured, counts fall back to the web channel. When `filter_group` is present, counts follow the standard “OR within a facet, AND across facets” pattern. Facets whose condition uses a multi-select operator ( `IN` , `NOT IN` ) are counted against every other active filter except the facet’s own condition, so other values in the same facet stay selectable. Facets whose condition uses a single-select or predicate operator ( `EQ` , `NEQ` , `GT` , `LT` , `BETWEEN` , `NULL` , and so on) are counted against the fully filtered result set. Facets without an active condition are always counted against the full filter group."}],"facetRanges":[{"type":"object","properties":{},"description":"Object whose keys are facet attribute codes and whose values are objects with `min` and `max` numeric properties. Only returned when `includeFacetRanges` is `true` . Ranges are computed only over products visible on the active shopping channel. A numeric range (for example, a price slider’s `min` and `max` ) cannot come from a product the shopper cannot see. `variants.price` and `variants.compare_at_price` counts and ranges are always converted to the resolved market’s currency. A price slider’s `min` and `max` match the prices a shopper actually sees for their market. The market is resolved from `context.market` when provided, or from `context.geo.country` otherwise, and falls back to the store’s primary market. This matches the pricing behavior of the Browse API with `retrieveFacetCount` enabled. Both endpoints return consistent counts and ranges for the same filter group. When the request also includes `discountEntitlements` , discounts are applied on top of the market-converted price. See Discount entitlements for details."}],"facetDisplay":[{"type":"object","properties":{},"description":"Returned when at least one requested facet has display data to hydrate. Omitted when empty. Keys are facet attribute codes. Values are objects that map each facet value to a display object: For facets backed by a `metaobject_reference` or `list.metaobject_reference` metafield, each entry maps the referenced metaobject’s handle to its `display_name` and `fields` . These entries require `enrichFacetMetaobjects: true` and are hydrated from the local metaobject cache. Handles with no cached metaobject are omitted from `facetDisplay` and remain as plain values under `facets` . See Metaobjects and reference metafields for the normalized field shape. Metaobject entries also carry a `swatch` object when the metaobject defines a color or image field. The swatch is ready to render as an image thumbnail or color chip: `{ \"type\": \"image\", \"url\": \"…\", \"alt\": \"…\" }` when the metaobject has a `file_reference` or `list.file_reference` field that points at an image. `alt` is present only when the image has alt text. Videos and documents in the field are skipped; the swatch comes from the field’s first image. `{ \"type\": \"color\", \"colors\": [\"#191970\"] }` when the metaobject has a `color` or `list.color` field instead. `colors` lists every hex value on the field, so a two-tone value carries two entries. An image swatch wins over a color swatch when the metaobject defines both field types. Among fields of the same kind, the field order on the metaobject definition decides. The `swatch` key is absent when the metaobject has no color or image field. For `variants.pickup_locations` , each entry maps a Shopify location id to the location’s `id` , `name` , `address` , `instructions` , `pickupTime` , and (when the filter is a `geoRadius` ) `distance` and `distanceUnit` . These entries are returned whenever pickup facets are requested, regardless of `enrichFacetMetaobjects` . See Local pickup filtering for the full shape."}],"filters":[{"type":"object","properties":{},"description":"Echo of the filter group expressions that were applied when computing the counts. Useful for verifying that the request’s `filter_group` was interpreted as expected."}]}}],"examples":{"example":{"value":{"facets":{},"facetRanges":{},"facetDisplay":{},"filters":{}}}}}}},"deprecated":false}},"jsLinks":["/_mintlify/custom/protoninc/d2da920448b9ce07/track.js"],"subdomain":"protoninc","siteName":"Layers","title":"Facets API: Get Collection Facets - Layers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T14:45:11.613Z","originalFileLocation":"api-reference/facets.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Layers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Facets API: Get Collection Facets - Layers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Layers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.uselayers.com/api-reference/facets\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://protoninc.mintlify.site/_mintlify/api/og/v2?division=Facets\u0026amp;title=Facets+API%3A+Get+Collection+Facets\u0026amp;description=Facets+API+endpoint+that+returns+facet+values+and+result+counts+for+a+collection+without+running+a+full+browse+query%2C+ideal+for+filter+sidebars.\u0026amp;theme=a10a6113a77cea89cec87611\u0026amp;signature=092468ebbcf84ff241a6625ec5785bc5c750685e328a13a6ecdbddc5d29242a7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Facets API: Get Collection Facets - Layers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://protoninc.mintlify.site/_mintlify/api/og/v2?division=Facets\u0026amp;title=Facets+API%3A+Get+Collection+Facets\u0026amp;description=Facets+API+endpoint+that+returns+facet+values+and+result+counts+for+a+collection+without+running+a+full+browse+query%2C+ideal+for+filter+sidebars.\u0026amp;theme=a10a6113a77cea89cec87611\u0026amp;signature=092468ebbcf84ff241a6625ec5785bc5c750685e328a13a6ecdbddc5d29242a7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/protoninc/-Zid9_7urMZu-aPC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Layers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#607FFD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.uselayers.com/api-reference/facets\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/facets.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.uselayers.com/#organization\",\"name\":\"Layers\",\"url\":\"https://docs.uselayers.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/protoninc/PNs-gxGUVcdBDEEC/logo.svg?fit=max\u0026auto=format\u0026n=PNs-gxGUVcdBDEEC\u0026q=85\u0026s=989e3194cb32f07e7018b8b7186b9007\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.uselayers.com#website\",\"name\":\"Layers\",\"url\":\"https://docs.uselayers.com\",\"publisher\":{\"@id\":\"https://docs.uselayers.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.uselayers.com/api-reference/facets#webpage\",\"url\":\"https://docs.uselayers.com/api-reference/facets\",\"name\":\"Facets API: Get Collection Facets\",\"description\":\"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\",\"dateModified\":\"2026-11-03T14:45:11.613Z\",\"isPartOf\":{\"@id\":\"https://docs.uselayers.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.uselayers.com/api-reference/facets#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.uselayers.com/api-reference/facets#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Layers\",\"item\":\"https://docs.uselayers.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Facets API: Get Collection Facets\",\"item\":\"https://docs.uselayers.com/api-reference/facets\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.uselayers.com/api-reference/facets#apireference\",\"headline\":\"Facets API: Get Collection Facets\",\"name\":\"Facets API: Get Collection Facets\",\"description\":\"Facets API endpoint that returns facet values and result counts for a collection without running a full browse query, ideal for filter sidebars.\",\"url\":\"https://docs.uselayers.com/api-reference/facets\",\"mainEntityOfPage\":{\"@id\":\"https://docs.uselayers.com/api-reference/facets#webpage\"},\"dateModified\":\"2026-11-03T14:45:11.613Z\",\"publisher\":{\"@id\":\"https://docs.uselayers.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.uselayers.com#website\"}}]}\u003c/script>","siteName":"Layers","nav":{"global":null,"anchors":[{"anchor":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"anchor":"Help Center","icon":"map","pages":[{"title":"Help Center","href":"/help/onboarding/install"}]},{"anchor":"Developers","icon":"code","pages":[{"title":"Developers","href":"/developers/overview"}]},{"anchor":"API Reference","icon":"rectangle-terminal","tabs":[{"tab":"Storefront API","groups":[{"group":"Browse","pages":[{"api":"POST /browse/{collection_handle}","title":"Browse API: Browse Collection Page","sidebarTitle":"Collection Page","href":"/api-reference/browse"}]},{"group":"Product Search","pages":[{"group":"Text Search","pages":[{"api":"POST /search/{searchQuery}/prepare","title":"Text Search: Prepare Search","sidebarTitle":"Prepare Search","href":"/api-reference/search-prepare"},{"api":"POST /search/{searchQuery}/execute","title":"Text Search: Execute Search","sidebarTitle":"Execute Search","href":"/api-reference/search"},{"api":"POST /search/feedback","title":"Text Search: Submit Feedback","sidebarTitle":"Submit Feedback","href":"/api-reference/search-feedback"}]},{"group":"Image Search","pages":[{"api":"POST /images/upload","title":"Image Search: Upload Image","sidebarTitle":"Upload Image","href":"/api-reference/upload-image"},{"api":"POST /search/image","title":"Image Search: Execute Search","sidebarTitle":"Execute Search","href":"/api-reference/search-image"}]},{"group":"Autocomplete","pages":[{"api":"GET /search/complete?query={query}","title":"Autocomplete: Get Suggestions","sidebarTitle":"Get Suggestions","href":"/api-reference/predict"}]},{"api":"POST /search/product/{searchProductId}","title":"Search API: Similar Products","sidebarTitle":"Similar Products","href":"/api-reference/similar-products"}]},{"group":"Content Search","pages":[{"api":"POST /search/content/{searchQuery}/execute","title":"Content Search: Execute Search","sidebarTitle":"Execute Search","href":"/api-reference/search-content"}]},{"group":"Blocks","pages":[{"api":"POST /blocks/{blockId}/products","title":"Blocks API: Get Block Products","sidebarTitle":"Block Products","description":"Blocks API endpoint that returns product recommendations for a specific block using its configured strategy, fallback chain, and merchandising rules.","href":"/api-reference/blocks"}]},{"group":"Facets","pages":[{"api":"POST /{collection_handle}/facets","title":"Facets API: Get Collection Facets","sidebarTitle":"Collection Facets","href":"/api-reference/facets"}]},{"group":"Utilities","pages":[{"api":"GET /sort-orders","title":"Sort Orders API: Get Available Sort Orders","sidebarTitle":"Sort Orders","description":"Sort Orders API endpoint listing all configured sort orders for your store, including IDs and labels you can pass to browse and search requests.","href":"/api-reference/sort-orders"}]}]},{"tab":"Tracking API","pages":[{"title":"Tracking API","href":"/tracking-api/overview"}]}]},{"anchor":"Integrations","icon":"plug","href":"https://www.uselayers.com/integrations?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs-to-site"}]},"basePath":"","title":"Facets API: Get Collection Facets - Layers","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js"]}