A short introduction to the Voyado Elevate Storefront API
The Storefront API offers the endpoints needed for a site integration to Voyado Elevate. This includes queries and all unauthorized notifications. The Storefront API is a versioned API.
Queries are used to request and render product listings and content by the storefront. The queries have been designed to allow all Elevate-driven page content to be retrieved through a single request. This enables features, such as result deduplication, and allows for other performance optimizations, such as minimizing the number of required request round trips.The queries are divided by usage area and are built to have a natural mapping to each page type or feature area when possible. As usage of the queries affects both visitor statistics and behavior analysis, it’s important that the usage of a query aligns with its intended purpose.
Retailers that need to use queries for a non-intended purpose should append those queries with notify=false, and contact their appointed Customer Success Manager to follow up on correct usage.
Queries are also referred to as page requests, as they are modeled to fetch the content of a page.Most types of page requests have a page configuration that specifies what type of content and product listings the page contains. The page configuration can either be supplied as part of the request at query time, via the Experience App or separately through page imports, enabling merchandising of pages.For example, a regular landing page request by default includes a single faceted product listing. When requesting a landing page for an intermediate category page, the page configuration could specify to additionally include one or more recommendation listings.Page requests can be made either as a GET request, supporting page integrations, or as a POST request with a page configuration supplied in the body.
Any conflicting configuration made through a Page Integration always supersedes the supplied page configuration in a request body.
Notifications are used to share visitor behavior with Elevate as well as for reporting and behavior analysis.Notifications are a vital part of evaluating real-time relevance and should always be supplied at the time of user interaction and implemented to the fullest extent possible.
Click and add to cart notifications are essential and must be supplied. Payments are also mandatory, but are part of the Admin API as they require authorization.
Utilities provide helper endpoints for supporting data and other requests that are not triggered by user actions. They are not intended for standard site page requests and must not be used instead of queries.
Each page type has a set of defined response objects, found in the API specification. Some response objects apply to multiple pages and reoccur within different types of responses, such as product groups. When dealing with response objects, always consider the following:
Always account for the possibility that lists may be empty, unless explicitly specified otherwise.
An attribute that is returned as null from Elevate is automatically removed from the response object.
When using templates to define the response objects, attributes may be added or removed compared to this documentation.
Only the first product in the products array matches the current context. The other products can be used to portray thumbnails and swatches to inform the visitor of additional similar options. If multiple products within the same product group match a result, they will be returned as separate product groups with each product positioned as the first item in the products array respectively. If the number of products returned per group has been limited, remaining will indicate how many products were not included.
There are different types of facets that can be returned, each supporting facet-specific details to enable facet-specific rendering, such as a range of values for sliders, or a boolean checkbox. All facets have some shared properties, but depending on facet type, unique additional properties apply.
The navigation object consists of breadcrumbs and a tree of navigation nodes, where the returned object is the root of the tree. The format of the navigation tree request response differs slightly from the standard navigation format of the search pages and category and landing pages responses.
Last modified on October 28, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Product Discovery developer docs","description":"Product Discovery developer docs","colors":{"primary":"#fe4a49","light":"#ff8785","dark":"#4c093e"},"logo":{"light":"https://mintcdn.com/elevatedocs/1uBQSi2ovHREOrJm/assets/logo/voyado-light-logo.svg?fit=max\u0026auto=format\u0026n=1uBQSi2ovHREOrJm\u0026q=85\u0026s=6ab6674fd4ef6d98e2e482644482eaf8","dark":"https://mintcdn.com/elevatedocs/1uBQSi2ovHREOrJm/assets/logo/voyado-dark-logo.svg?fit=max\u0026auto=format\u0026n=1uBQSi2ovHREOrJm\u0026q=85\u0026s=ce9a169f8b3235ef225c95f50b3e3853","href":"/docs/home/about"},"favicon":"https://mintcdn.com/elevatedocs/U2rlNuBdHmV1mTwc/assets/logo/favicon-bw-32x32.png?fit=max\u0026auto=format\u0026n=U2rlNuBdHmV1mTwc\u0026q=85\u0026s=5b0c7f8a7b5c7f1c304eacf65bc6b39d","api":{"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","javascript","java","csharp","python"],"prefill":true}},"appearance":{"default":"light"},"background":{"color":{"light":"#ffffff","dark":"#1e2129"}},"navbar":{"links":[{"icon":"/assets/icons/help-center-link.png","href":"https://help.elevate.voyado.com/hc/en-gb","label":"Help Center"}],"primary":{"type":"button","label":"Contact us","href":"https://voyado.com/about-voyado/contact-us/"}},"seo":{"metatags":{"og:site_name":"Product Discovery developer docs","og:type":"website"},"organization":{"id":"https://voyado.com/","legalName":"Voyado Lund AB","url":"https://voyado.com/","logo":"https://voyado.com/wp-content/uploads/2023/01/cropped-Favicon-192x192.png","sameAs":["https://www.linkedin.com/company/voyadoab/","https://www.facebook.com/voyado/","https://www.instagram.com/voyado_official/"]},"indexing":"navigable"},"fonts":{"heading":{"family":"Voyado Text","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Medium.woff2","format":"woff2"},"body":{"family":"Voyado Regular","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"cookies":{"key":"mintlify_telemetry","value":"granted"}},"contextual":{"options":["claude","chatgpt","assistant","copy","view","mcp"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"elevatedocs","hasAudioNarration":false,"actualSubdomain":"elevatedocs","customDomains":["product-discovery.developer.voyado.com"],"gitSource":{"type":"github","owner":"voyado","repo":"elevate-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae1b640661bff0c6e7268b7","collectionId":"6995d297-6474-4fdf-99f9-16c317ed200c","liveDeploymentHistoryId":"6ae1b640661bff0c6e7268b7","schemaVersion":"v3"},"feedback":{"thumbs":false,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1b640661bff0c6e7268b7","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API","count":69},{"language":"default","tag":"Admin","count":42},{"language":"default","tag":"v3","count":39},{"language":"default","tag":"Guides","count":24},{"language":"default","tag":"v4","count":23},{"language":"default","tag":"Integration","count":23},{"language":"default","tag":"Storefront","count":22},{"language":"default","tag":"Add-ons","count":12},{"language":"default","tag":"Export","count":12},{"language":"default","tag":"Import","count":12}],"searchSettings":{"maxResults":8,"showContentSnippets":false,"isFiltersEnabled":false}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"type":"link","url":"https://voyado.com/about-voyado/contact-us/"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"styles/style.css","content":".border-b{border-bottom-width:2px;border-color:rgb(var(--gray-200))}html.dark .border-b,html.dark .prose pre{border-color:rgba(255,255,255,.18)}.prose-sm{font-size:.9rem;line-height:1.7}html.dark{--gray-50:222 227 234;--gray-100:213 218 226;--gray-200:197 203 213;--gray-300:176 183 194;--gray-400:145 152 164}html.dark .prose{--tw-prose-body:#b3b9c4;--tw-prose-headings:#d2d7e0;--tw-prose-lead:#a7aeba;--tw-prose-links:#c5cbd5;--tw-prose-bold:#dde2ea;--tw-prose-counters:#8d95a2;--tw-prose-bullets:#626a78;--tw-prose-hr:#363c47;--tw-prose-quotes:#cdd3dc;--tw-prose-quote-borders:#454c58;--tw-prose-captions:#8d95a2;--tw-prose-code:#cdd3dc;--tw-prose-pre-code:#cdd3dc;--tw-prose-th-borders:#5c6474;--tw-prose-td-borders:#4a5162}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:500;background-color:#f8f8f7;border:1px solid #c7dbe8;border-radius:4px;padding-left:.25em;padding-right:.25em}html.dark .prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:#cdd3dc;background-color:#272c36;border-color:#3a404b}.prose pre code{background-color:transparent!important;border:0!important;color:inherit!important;font-weight:400;padding-left:0!important}.py-1\\.5{padding-top:1px;padding-bottom:1px}@media (min-width:1024px){.lg\\:mt-8{margin-top:1rem}}html.dark #navigation-items a[aria-current=page]{background-color:rgb(var(--primary)/.14);color:#ff8785}html.dark #navigation-items a[aria-current=page] *{color:inherit}html.dark .code-block.dark\\:bg-white\\/5,html.dark .dark\\:bg-codeblock{background-color:#1e2129}html.dark .dark\\:bg-codeblock\\/50{background-color:rgb(30 33 41/.5)}html.dark .prose table thead tr,html.dark [data-component-part=code-block-header]{background-color:rgba(255,255,255,.06)}html.dark .code-block-background,html.dark [data-fade-overlay],html.dark pre.shiki{--shiki-dark-bg:#1e2129!important;--fade-color-dark:#1e2129!important}.sidebar-title{margin-bottom:-.3rem;font-size:15px}#pagination{display:none!important}.help-center-card [data-component-part=card-icon]{width:2rem;height:2rem;flex-shrink:0;display:flex;align-items:center;justify-content:center}.help-center-card [data-component-part=card-icon] img{width:2rem;height:2rem;object-fit:contain}#topbar-cta-button a>span:first-child{background-color:rgb(var(--primary)/.1);border:1px solid rgb(var(--primary)/.25)}html.dark #topbar-cta-button a>span:first-child{background-color:rgb(var(--primary)/.14);border-color:rgb(var(--primary)/.3)}#topbar-cta-button a:hover>span:first-child{background-color:rgb(var(--primary)/.18);opacity:1}html.dark #topbar-cta-button a:hover>span:first-child{background-color:rgb(var(--primary)/.22)}#topbar-cta-button a span,#topbar-cta-button a svg,#topbar-cta-button a>div{color:rgb(var(--primary))}html.dark #topbar-cta-button a span,html.dark #topbar-cta-button a svg,html.dark #topbar-cta-button a>div{color:#ff8785}.prose table{border-collapse:collapse;width:100%;max-width:100%;table-layout:auto}.prose table td,.prose table th{border:0;padding:.4rem .5rem;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.accordion [data-table-wrapper=true],[data-component-part=accordion-content] [data-table-wrapper=true]{--page-padding:0px;max-width:100%}.prose table thead tr{background-color:rgba(0,0,0,.05)}html.dark .prose table thead{border-color:#4b5261}html.dark .prose table tr{border-color:#3b4250}.prose table thead th{font-weight:600}.prose table tbody td{background-color:#fff}html.dark .prose table tbody td{background-color:transparent}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.7em}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.6em}#mobile-nav [data-elevate-tab-dropdown]{display:none}#mobile-nav [data-elevate-tab-list]{padding-bottom:.75rem;border-bottom:1px solid rgb(var(--gray-200)/.7)}html.dark #mobile-nav [data-elevate-tab-list]{border-bottom-color:rgb(255 255 255/.07)}#mobile-nav [data-elevate-tab-list] ul{display:flex;flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none}#mobile-nav [data-elevate-tab-list] a{display:block;padding:.375rem .75rem .375rem 1rem;border-radius:.75rem;font-size:1rem;font-weight:500;line-height:1.5rem;color:rgb(var(--gray-700));text-decoration:none}html.dark #mobile-nav [data-elevate-tab-list] a{color:rgb(var(--gray-300))}#mobile-nav [data-elevate-tab-list] a:hover{background-color:rgb(var(--gray-600)/.05)}html.dark #mobile-nav [data-elevate-tab-list] a:hover{background-color:rgb(var(--gray-200)/.05)}#mobile-nav [data-elevate-tab-list] a[data-active]{background-color:rgb(var(--primary)/.1);color:rgb(var(--primary))}html.dark #mobile-nav [data-elevate-tab-list] a[data-active]{background-color:rgb(var(--primary-light)/.1);color:rgb(var(--primary-light))}"}],"page":{"pagePath":"docs/api/storefront/overview","slug":"/docs/api/storefront/overview","pageMetadata":{"title":"Overview","description":"A short introduction to the Voyado Elevate Storefront API","href":"/docs/api/storefront/overview"},"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: \"A short introduction to the Voyado Elevate Storefront API\"\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`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The Storefront API offers the endpoints needed for a site integration to Voyado Elevate. This includes queries and all unauthorized notifications. The Storefront API is a `,_jsx(_components.a,{href:`/docs/api/api-versioning`,children:`versioned API`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`queries`,children:`Queries`}),`\n`,_jsx(_components.p,{children:`Queries are used to request and render product listings and content by the storefront. The queries have been designed to allow all Elevate-driven page content to be retrieved through a single request. This enables features, such as result deduplication, and allows for other performance optimizations, such as minimizing the number of required request round trips.`}),`\n`,_jsx(_components.p,{children:`The queries are divided by usage area and are built to have a natural mapping to each page type or feature area when possible. As usage of the queries affects both visitor statistics and behavior analysis, it’s important that the usage of a query aligns with its intended purpose.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Retailers that need to use queries for a non-intended purpose should append those queries with `,_jsx(_components.code,{children:`notify=false`}),`, and contact their appointed Customer Success Manager to follow up on correct usage.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`page-configurations`,children:`Page configurations`}),`\n`,_jsx(_components.p,{children:`Queries are also referred to as page requests, as they are modeled to fetch the content of a page.`}),`\n`,_jsxs(_components.p,{children:[`Most types of page requests have a page configuration that specifies what type of content and product listings the page contains. The page configuration can either be supplied as part of the request at query time, via the `,_jsx(_components.a,{href:`https://help.elevate.voyado.com/hc/en-gb/articles/27611143921308-Overview-of-Pages`,children:`Experience App`}),` or separately through `,_jsx(_components.a,{href:`/docs/guides/pages-and-navigation/import-export-pages`,children:`page imports`}),`, enabling merchandising of pages.`]}),`\n`,_jsx(_components.p,{children:`For example, a regular landing page request by default includes a single faceted product listing. When requesting a landing page for an intermediate category page, the page configuration could specify to additionally include one or more recommendation listings.`}),`\n`,_jsxs(_components.p,{children:[`Page requests can be made either as a `,_jsx(_components.code,{children:`GET`}),` request, supporting page integrations, or as a `,_jsx(_components.code,{children:`POST`}),` request with a page configuration supplied in the body.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Any conflicting configuration made through a Page Integration always supersedes the supplied page configuration in a request body.`})}),`\n`,_jsx(Heading,{level:`2`,id:`notifications`,children:`Notifications`}),`\n`,_jsx(_components.p,{children:`Notifications are used to share visitor behavior with Elevate as well as for reporting and behavior analysis.`}),`\n`,_jsx(_components.p,{children:`Notifications are a vital part of evaluating real-time relevance and should always be supplied at the time of user interaction and implemented to the fullest extent possible.`}),`\n`,_jsx(Heading,{level:`3`,id:`mandatory`,children:`Mandatory`}),`\n`,_jsxs(_components.p,{children:[`Click and add to cart notifications are essential and must be supplied. Payments are also mandatory, but are part of the `,_jsx(_components.a,{href:`/docs/api/admin/overview`,children:`Admin API`}),` as they require authorization.`]}),`\n`,_jsx(Heading,{level:`3`,id:`situational`,children:`Situational`}),`\n`,_jsxs(_components.p,{children:[`Add and remove favorite notifications are required when the `,_jsx(_components.a,{href:`https://help.elevate.voyado.com/hc/en-gb/articles/18090541967004-Recommendation-types/`,children:`Favorites recommendation`}),` is to be used.`]}),`\n`,_jsx(Heading,{level:`3`,id:`optional`,children:`Optional`}),`\n`,_jsx(_components.p,{children:`End notifications are optional and can be used to terminate personalization when a visitor logs out.`}),`\n`,_jsx(Heading,{level:`2`,id:`utilities`,children:`Utilities`}),`\n`,_jsx(_components.p,{children:`Utilities provide helper endpoints for supporting data and other requests that are not triggered by user actions. They are not intended for standard site page requests and must not be used instead of queries.`}),`\n`,_jsx(Heading,{level:`2`,id:`response-objects`,children:`Response objects`}),`\n`,_jsx(_components.p,{children:`Each page type has a set of defined response objects, found in the API specification. Some response objects apply to multiple pages and reoccur within different types of responses, such as product groups. When dealing with response objects, always consider the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Always account for the possibility that lists may be empty, unless explicitly specified otherwise.`}),`\n`,_jsxs(_components.li,{children:[`An attribute that is returned as `,_jsx(_components.code,{children:`null`}),` from Elevate is automatically removed from the response object.`]}),`\n`,_jsxs(_components.li,{children:[`When using `,_jsx(_components.a,{href:`/docs/guides/storefront-responses/product-list-response-templates`,children:`templates`}),` to define the response objects, attributes may be added or removed compared to this documentation.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`product-groups`,children:`Product groups`}),`\n`,_jsxs(_components.p,{children:[`Only the first product in the `,_jsx(_components.code,{children:`products`}),` array matches the current context. The other products can be used to portray thumbnails and swatches to inform the visitor of additional similar options. If multiple products within the same product group match a result, they will be returned as separate product groups with each product positioned as the first item in the `,_jsx(_components.code,{children:`products`}),` array respectively. If the number of products returned per group has been limited, `,_jsx(_components.code,{children:`remaining`}),` will indicate how many products were not included.`]}),`\n`,_jsx(Heading,{level:`3`,id:`facets`,children:`Facets`}),`\n`,_jsx(_components.p,{children:`There are different types of facets that can be returned, each supporting facet-specific details to enable facet-specific rendering, such as a range of values for sliders, or a boolean checkbox. All facets have some shared properties, but depending on facet type, unique additional properties apply.`}),`\n`,_jsx(Heading,{level:`3`,id:`navigation`,children:`Navigation`}),`\n`,_jsxs(_components.p,{children:[`The navigation object consists of breadcrumbs and a tree of navigation nodes, where the returned object is the root of the tree. The format of the `,_jsx(_components.a,{href:`/docs/api/storefront/v3/queries/navigation-tree`,children:`navigation tree`}),` request response differs slightly from the standard navigation format of the `,_jsx(_components.a,{href:`/docs/api/storefront/v3/queries/search-page`,children:`search pages`}),` and `,_jsx(_components.a,{href:`/docs/api/storefront/v3/queries/landing-page`,children:`category and landing pages`}),` responses.`]})]})}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":{"title":"Overview","description":"A short introduction to the Voyado Elevate Storefront API","href":"/docs/api/storefront/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Queries","slug":"queries","depth":2,"children":[{"title":"Page configurations","slug":"page-configurations","depth":3,"children":[]}]},{"title":"Notifications","slug":"notifications","depth":2,"children":[{"title":"Mandatory","slug":"mandatory","depth":3,"children":[]},{"title":"Situational","slug":"situational","depth":3,"children":[]},{"title":"Optional","slug":"optional","depth":3,"children":[]}]},{"title":"Utilities","slug":"utilities","depth":2,"children":[]},{"title":"Response objects","slug":"response-objects","depth":2,"children":[{"title":"Product groups","slug":"product-groups","depth":3,"children":[]},{"title":"Facets","slug":"facets","depth":3,"children":[]},{"title":"Navigation","slug":"navigation","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/elevatedocs/e981000376caad84/scripts/disable-accordion-link-copy.js","/_mintlify/custom/elevatedocs/9f72db540c8d3f36/scripts/mobile-nav-tab-list.js","/_mintlify/custom/elevatedocs/3c15ab69a2191b51/scripts/gtm.js"],"subdomain":"elevatedocs","siteName":"Product Discovery developer docs","title":"Overview - Product Discovery developer docs","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ae1b58f9b9ae8ac48c05f39","deploymentId":"6a638c2b4251baa99ac33cca","questionText":"What are queries used for?","status":"active","generatedBy":"contextual","path":"docs/api/storefront/overview","createdAt":"2026-10-28T08:42:55.541Z","updatedAt":"2026-10-28T08:42:55.541Z","__v":0},{"_id":"6ae1b58f9b9ae8ac48c05f38","deploymentId":"6a638c2b4251baa99ac33cca","questionText":"How do page configurations work?","status":"active","generatedBy":"contextual","path":"docs/api/storefront/overview","createdAt":"2026-10-28T08:42:55.541Z","updatedAt":"2026-10-28T08:42:55.541Z","__v":0},{"_id":"6ae1b58f9b9ae8ac48c05f37","deploymentId":"6a638c2b4251baa99ac33cca","questionText":"What queries does the API offer?","status":"active","generatedBy":"contextual","path":"docs/api/storefront/overview","createdAt":"2026-10-28T08:42:55.541Z","updatedAt":"2026-10-28T08:42:55.541Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T08:42:51.159Z","gitLastModified":"2026-10-28T08:42:39.000Z","originalFileLocation":"docs/api/storefront/overview.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=\"light\"}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=\"A short introduction to the Voyado Elevate Storefront API\">\u003cmeta data-mint-head name=\"application-name\" content=\"Product Discovery developer docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_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/elevatedocs/pFLF7Ck4WVv5gLWu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - Product Discovery developer docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"A short introduction to the Voyado Elevate Storefront API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Product Discovery developer docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://elevatedocs.mintlify.app/_mintlify/api/og/v2?division=Storefront\u0026amp;title=Overview\u0026amp;description=A+short+introduction+to+the+Voyado+Elevate+Storefront+API\u0026amp;theme=f58243c8184ccc363977f3a7\u0026amp;signature=f76197bdafc8c7760e9fa9e9840fad89a30f077956ed11d104b99d7b217da5fc\">\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=\"Overview - Product Discovery developer docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A short introduction to the Voyado Elevate Storefront API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://elevatedocs.mintlify.app/_mintlify/api/og/v2?division=Storefront\u0026amp;title=Overview\u0026amp;description=A+short+introduction+to+the+Voyado+Elevate+Storefront+API\u0026amp;theme=f58243c8184ccc363977f3a7\u0026amp;signature=f76197bdafc8c7760e9fa9e9840fad89a30f077956ed11d104b99d7b217da5fc\">\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/elevatedocs/pFLF7Ck4WVv5gLWu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Product Discovery developer docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fe4a49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/storefront/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://voyado.com/\",\"name\":\"Product Discovery developer docs\",\"legalName\":\"Voyado Lund AB\",\"url\":\"https://voyado.com/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://voyado.com/wp-content/uploads/2023/01/cropped-Favicon-192x192.png\"},\"sameAs\":[\"https://www.linkedin.com/company/voyadoab/\",\"https://www.facebook.com/voyado/\",\"https://www.instagram.com/voyado_official/\"]},{\"@type\":\"WebSite\",\"@id\":\"https://product-discovery.developer.voyado.com#website\",\"name\":\"Product Discovery developer docs\",\"url\":\"https://product-discovery.developer.voyado.com\",\"publisher\":{\"@id\":\"https://voyado.com/\"}},{\"@type\":\"WebPage\",\"@id\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview#webpage\",\"url\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview\",\"name\":\"Overview\",\"description\":\"A short introduction to the Voyado Elevate Storefront API\",\"dateModified\":\"2026-10-28T08:42:39.000Z\",\"isPartOf\":{\"@id\":\"https://product-discovery.developer.voyado.com#website\"},\"breadcrumb\":{\"@id\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Product Discovery developer docs\",\"item\":\"https://product-discovery.developer.voyado.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"description\":\"A short introduction to the Voyado Elevate Storefront API\",\"url\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview\",\"mainEntityOfPage\":{\"@id\":\"https://product-discovery.developer.voyado.com/docs/api/storefront/overview#webpage\"},\"dateModified\":\"2026-10-28T08:42:39.000Z\",\"publisher\":{\"@id\":\"https://voyado.com/\"},\"isPartOf\":{\"@id\":\"https://product-discovery.developer.voyado.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Product Discovery developer docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Product Discovery developer docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/docs/home/about"}]},{"tab":"Integration","pages":[{"title":"Integration","href":"/docs/integration/overview"}]},{"tab":"API","groups":[{"group":"Overview","pages":[{"title":"API overview","href":"/docs/api/getting-started"},{"title":"API versioning","href":"/docs/api/api-versioning"},{"title":"OpenAPI specifications","href":"/docs/api/specifications"},{"title":"Postman collections","href":"/docs/api/postman"},{"title":"JavaScript library","href":"/docs/api/javascript-library"}]},{"group":"Admin","pages":[{"title":"Overview","href":"/docs/api/admin/overview"},{"group":"v4","expanded":true,"pages":[{"title":"Overview","href":"/docs/api/admin/v4/overview"},{"title":"Catalog upgrade guide","href":"/docs/api/admin/v4/v4-upgrade"},{"group":"Event data","pages":[{"title":"Create Export Customer Job","href":"/docs/api/admin/v4/event-data/create-export-customer-job"},{"title":"Create Remove Customer Job","href":"/docs/api/admin/v4/event-data/create-remove-customer-job"},{"title":"Export Customer Job Result","href":"/docs/api/admin/v4/event-data/export-customer-job-result"},{"title":"Job Status","href":"/docs/api/admin/v4/event-data/job-status"}]},{"group":"Export","pages":[{"title":"Catalog","href":"/docs/api/admin/v4/export/catalog"},{"title":"Configuration","href":"/docs/api/admin/v4/export/configuration"},{"title":"Navigation","href":"/docs/api/admin/v4/export/navigation"},{"title":"Pages","href":"/docs/api/admin/v4/export/pages"},{"title":"Product Sets","href":"/docs/api/admin/v4/export/product-sets"},{"title":"Templates","href":"/docs/api/admin/v4/export/templates"},{"title":"Upgrade Catalog","href":"/docs/api/admin/v4/export/upgrade-catalog"}]},{"group":"Import","pages":[{"title":"Catalog","href":"/docs/api/admin/v4/import/catalog"},{"title":"Configuration","href":"/docs/api/admin/v4/import/configuration"},{"title":"Navigation","href":"/docs/api/admin/v4/import/navigation"},{"title":"Pages","href":"/docs/api/admin/v4/import/pages"},{"title":"Product Sets","href":"/docs/api/admin/v4/import/product-sets"},{"title":"Status","href":"/docs/api/admin/v4/import/status"},{"title":"Templates","href":"/docs/api/admin/v4/import/templates"}]},{"group":"Notifications","pages":[{"title":"Latest","href":"/docs/api/admin/v4/notifications/latest"},{"title":"Payment","href":"/docs/api/admin/v4/notifications/payment"}]},{"title":"Status","href":"/docs/api/admin/v4/status"}]},{"group":"v3","expanded":false,"pages":[{"title":"Overview","href":"/docs/api/admin/v3/overview"},{"group":"Event data","pages":[{"title":"Create Export Customer Job","deprecated":true,"href":"/docs/api/admin/v3/event-data/create-export-customer-job"},{"title":"Create Remove Customer Job","deprecated":true,"href":"/docs/api/admin/v3/event-data/create-remove-customer-job"},{"title":"Export Customer Job Result","deprecated":true,"href":"/docs/api/admin/v3/event-data/export-customer-job-result"},{"title":"Job Status","deprecated":true,"href":"/docs/api/admin/v3/event-data/job-status"}]},{"group":"Export","pages":[{"title":"Data","deprecated":true,"href":"/docs/api/admin/v3/export/data"},{"title":"Navigation","deprecated":true,"href":"/docs/api/admin/v3/export/navigation"},{"title":"Pages","deprecated":true,"href":"/docs/api/admin/v3/export/pages"},{"title":"Product Groups","deprecated":true,"href":"/docs/api/admin/v3/export/product-groups"},{"title":"Templates","deprecated":true,"href":"/docs/api/admin/v3/export/templates"}]},{"group":"Import","pages":[{"title":"Data","deprecated":true,"href":"/docs/api/admin/v3/import/data"},{"title":"Navigation","deprecated":true,"href":"/docs/api/admin/v3/import/navigation"},{"title":"Pages","deprecated":true,"href":"/docs/api/admin/v3/import/pages"},{"title":"Status","deprecated":true,"href":"/docs/api/admin/v3/import/status"},{"title":"Templates","deprecated":true,"href":"/docs/api/admin/v3/import/templates"}]},{"group":"Notifications","pages":[{"title":"Latest","deprecated":true,"href":"/docs/api/admin/v3/notifications/latest"},{"title":"Payment","deprecated":true,"href":"/docs/api/admin/v3/notifications/payment"}]},{"title":"Status","description":"The status endpoint can be used to check if the service is available.","deprecated":true,"href":"/docs/api/admin/v3/status"}]}]},{"group":"Storefront","pages":[{"title":"Overview","href":"/docs/api/storefront/overview"},{"group":"v3","expanded":true,"pages":[{"title":"Overview","description":"Storefront API specification v3","href":"/docs/api/storefront/v3/overview"},{"group":"Notifications","pages":[{"title":"Ad Impression","href":"/docs/api/storefront/v3/notifications/ad-impression"},{"title":"Add Favorite","href":"/docs/api/storefront/v3/notifications/add-favorite"},{"title":"Add To Cart","href":"/docs/api/storefront/v3/notifications/add-to-cart"},{"title":"Click","href":"/docs/api/storefront/v3/notifications/click"},{"title":"End","href":"/docs/api/storefront/v3/notifications/end"},{"title":"Remove Favorite","href":"/docs/api/storefront/v3/notifications/remove-favorite"},{"title":"Remove Recent Searches","href":"/docs/api/storefront/v3/notifications/remove-recent-searches"},{"title":"Remove Recently Viewed","href":"/docs/api/storefront/v3/notifications/remove-recently-viewed"}]},{"group":"Queries","pages":[{"title":"Add To Cart Popup","href":"/docs/api/storefront/v3/queries/add-to-cart-popup"},{"title":"Autocomplete","href":"/docs/api/storefront/v3/queries/autocomplete"},{"title":"Cart Page","href":"/docs/api/storefront/v3/queries/cart-page"},{"title":"Content Information","href":"/docs/api/storefront/v3/queries/content-information"},{"title":"Content Search Page","href":"/docs/api/storefront/v3/queries/content-search-page"},{"title":"Discovery Agent Topic","href":"/docs/api/storefront/v3/queries/discovery-agent-topic"},{"title":"Landing Page","href":"/docs/api/storefront/v3/queries/landing-page"},{"title":"Navigation Tree","href":"/docs/api/storefront/v3/queries/navigation-tree"},{"title":"Product Page","href":"/docs/api/storefront/v3/queries/product-page"},{"title":"Search Page","href":"/docs/api/storefront/v3/queries/search-page"},{"title":"Sponsored Page","href":"/docs/api/storefront/v3/queries/sponsored-page"}]},{"group":"Utilities","pages":[{"title":"Product Information","href":"/docs/api/storefront/v3/utilities/product-information"}]}]}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/docs/guides/overview"}]},{"tab":"Add-ons","pages":[{"title":"Add-ons","href":"/docs/addons/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/docs/changelog/changelog"}]}]},"basePath":"","title":"Overview - Product Discovery developer docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}