[{"data":1,"prerenderedAt":626},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-quick-start":210,"-en-getting-started-quick-start-surround":623},[4,23,41,51,65,83,182,196],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Quick start","\u002Fen\u002Fgetting-started\u002Fquick-start","en\u002F1.getting-started\u002F1.quick-start",{"title":15,"path":16,"stem":17},"Trust model","\u002Fen\u002Fgetting-started\u002Ftrust-model","en\u002F1.getting-started\u002F2.trust-model",{"title":19,"path":20,"stem":21},"Enterprise integration journey","\u002Fen\u002Fgetting-started\u002Fenterprise-integration","en\u002F1.getting-started\u002F3.enterprise-integration",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Storefront","i-lucide-store","\u002Fen\u002Fstorefront","en\u002F2.storefront",[29,33,37],{"title":30,"path":31,"stem":32},"Third-party Storefront","\u002Fen\u002Fstorefront\u002Fthird-party-storefront","en\u002F2.storefront\u002F1.third-party-storefront",{"title":34,"path":35,"stem":36},"Turnstile trust boundary","\u002Fen\u002Fstorefront\u002Fchallenge-and-turnstile","en\u002F2.storefront\u002F2.challenge-and-turnstile",{"title":38,"path":39,"stem":40},"Third-party Storefront public API","\u002Fen\u002Fstorefront\u002Fpublic-api","en\u002F2.storefront\u002F3.public-api",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":22},"OAuth and identity","i-lucide-key-round","\u002Fen\u002Foauth","en\u002F3.oauth",[47],{"title":48,"path":49,"stem":50},"Third-party account authorization boundary","\u002Fen\u002Foauth\u002Fauthorization-code-pkce","en\u002F3.oauth\u002F1.authorization-code-pkce",{"title":52,"icon":53,"path":54,"stem":55,"children":56,"page":22},"Developer platform","i-lucide-blocks","\u002Fen\u002Fplatform","en\u002F4.platform",[57,61],{"title":58,"path":59,"stem":60},"Apps, versions, installations, and scopes","\u002Fen\u002Fplatform\u002Fapps-installations-scopes","en\u002F4.platform\u002F1.apps-installations-scopes",{"title":62,"path":63,"stem":64},"Origins, redirects, proxies, and environments","\u002Fen\u002Fplatform\u002Fsecurity-and-environments","en\u002F4.platform\u002F2.security-and-environments",{"title":66,"icon":67,"path":68,"stem":69,"children":70,"page":22},"Runtime extensions","i-lucide-workflow","\u002Fen\u002Fruntime","en\u002F5.runtime",[71,75,79],{"title":72,"path":73,"stem":74},"Installation Webhooks","\u002Fen\u002Fruntime\u002Fwebhooks","en\u002F5.runtime\u002F1.webhooks",{"title":76,"path":77,"stem":78},"Inventory synchronization","\u002Fen\u002Fruntime\u002Finventory-sync","en\u002F5.runtime\u002F2.inventory-sync",{"title":80,"path":81,"stem":82},"Automatic fulfillment providers","\u002Fen\u002Fruntime\u002Fauto-fulfillment","en\u002F5.runtime\u002F3.auto-fulfillment",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":22},"API reference","i-lucide-braces","\u002Fen\u002Freference","en\u002F6.reference",[89,93,97],{"title":90,"path":91,"stem":92},"API Reference","\u002Fen\u002Freference\u002Fapi","en\u002F6.reference\u002F1.api",{"title":94,"path":95,"stem":96},"Errors, idempotency, and rate limits","\u002Fen\u002Freference\u002Ferrors-and-limits","en\u002F6.reference\u002F2.errors-and-limits",{"title":98,"path":99,"stem":100,"children":101,"page":22},"Endpoint catalog","\u002Fen\u002Freference\u002Foperations","en\u002F6.reference\u002F3.operations",[102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,166,170,174,178],{"title":103,"path":104,"stem":105},"Get the public runtime configuration","\u002Fen\u002Freference\u002Foperations\u002Fget-public-runtime-config","en\u002F6.reference\u002F3.operations\u002F01.get-public-runtime-config",{"title":107,"path":108,"stem":109},"Get the public site bootstrap configuration","\u002Fen\u002Freference\u002Foperations\u002Fget-public-bootstrap","en\u002F6.reference\u002F3.operations\u002F02.get-public-bootstrap",{"title":111,"path":112,"stem":113},"Get public contact channels","\u002Fen\u002Freference\u002Foperations\u002Fget-public-contact","en\u002F6.reference\u002F3.operations\u002F03.get-public-contact",{"title":115,"path":116,"stem":117},"List current published legal documents by locale","\u002Fen\u002Freference\u002Foperations\u002Flist-public-legal-documents","en\u002F6.reference\u002F3.operations\u002F04.list-public-legal-documents",{"title":119,"path":120,"stem":121},"Get the published Storefront decoration","\u002Fen\u002Freference\u002Foperations\u002Fget-public-storefront-decoration","en\u002F6.reference\u002F3.operations\u002F05.get-public-storefront-decoration",{"title":123,"path":124,"stem":125},"Get the public store security configuration","\u002Fen\u002Freference\u002Foperations\u002Fget-public-store-security-config","en\u002F6.reference\u002F3.operations\u002F06.get-public-store-security-config",{"title":127,"path":128,"stem":129},"Search public products","\u002Fen\u002Freference\u002Foperations\u002Fsearch-public-products","en\u002F6.reference\u002F3.operations\u002F07.search-public-products",{"title":131,"path":132,"stem":133},"List public categories","\u002Fen\u002Freference\u002Foperations\u002Flist-public-categories","en\u002F6.reference\u002F3.operations\u002F08.list-public-categories",{"title":135,"path":136,"stem":137},"Get the installation credential identity","\u002Fen\u002Freference\u002Foperations\u002Fget-installation-credential-identity","en\u002F6.reference\u002F3.operations\u002F09.get-installation-credential-identity",{"title":139,"path":140,"stem":141},"Get the installation credential readiness","\u002Fen\u002Freference\u002Foperations\u002Fget-installation-credential-readiness","en\u002F6.reference\u002F3.operations\u002F10.get-installation-credential-readiness",{"title":143,"path":144,"stem":145},"List the public product catalog","\u002Fen\u002Freference\u002Foperations\u002Flist-public-products","en\u002F6.reference\u002F3.operations\u002F11.list-public-products",{"title":147,"path":148,"stem":149},"Get a public product by slug","\u002Fen\u002Freference\u002Foperations\u002Fget-public-product","en\u002F6.reference\u002F3.operations\u002F12.get-public-product",{"title":151,"path":152,"stem":153},"Get a public store profile","\u002Fen\u002Freference\u002Foperations\u002Fget-public-merchant","en\u002F6.reference\u002F3.operations\u002F13.get-public-merchant",{"title":155,"path":156,"stem":157},"List public products for a store","\u002Fen\u002Freference\u002Foperations\u002Flist-public-merchant-products","en\u002F6.reference\u002F3.operations\u002F14.list-public-merchant-products",{"title":159,"path":160,"stem":161},"List public categories for a store","\u002Fen\u002Freference\u002Foperations\u002Flist-public-merchant-categories","en\u002F6.reference\u002F3.operations\u002F15.list-public-merchant-categories",{"title":163,"path":164,"stem":165},"Get a public product for a store","\u002Fen\u002Freference\u002Foperations\u002Fget-public-merchant-product","en\u002F6.reference\u002F3.operations\u002F16.get-public-merchant-product",{"title":167,"path":168,"stem":169},"Get the current API Key identity and scopes","\u002Fen\u002Freference\u002Foperations\u002Fget-api-key-identity","en\u002F6.reference\u002F3.operations\u002F17.get-api-key-identity",{"title":171,"path":172,"stem":173},"List public categories with an API Key","\u002Fen\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","en\u002F6.reference\u002F3.operations\u002F18.list-api-key-catalog-categories",{"title":175,"path":176,"stem":177},"List public products with an API Key","\u002Fen\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","en\u002F6.reference\u002F3.operations\u002F19.list-api-key-catalog-products",{"title":179,"path":180,"stem":181},"Get a public product with an API Key","\u002Fen\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","en\u002F6.reference\u002F3.operations\u002F20.get-api-key-catalog-product",{"title":183,"icon":184,"path":185,"stem":186,"children":187,"page":22},"Examples","i-lucide-code-xml","\u002Fen\u002Fexamples","en\u002F7.examples",[188,192],{"title":189,"path":190,"stem":191},"Minimal Nuxt Storefront","\u002Fen\u002Fexamples\u002Fnuxt-storefront","en\u002F7.examples\u002F1.nuxt-storefront",{"title":193,"path":194,"stem":195},"Webhook verification","\u002Fen\u002Fexamples\u002Fwebhook-verification","en\u002F7.examples\u002F2.webhook-verification",{"title":197,"icon":198,"path":199,"stem":200,"children":201,"page":22},"Versions and support","i-lucide-life-buoy","\u002Fen\u002Foperations","en\u002F8.operations",[202,206],{"title":203,"path":204,"stem":205},"Versions, migrations, and changelog","\u002Fen\u002Foperations\u002Fversions-and-migrations","en\u002F8.operations\u002F1.versions-and-migrations",{"title":207,"path":208,"stem":209},"Support and security disclosure","\u002Fen\u002Foperations\u002Fsupport-and-security","en\u002F8.operations\u002F2.support-and-security",{"id":211,"title":11,"body":212,"description":617,"extension":618,"links":619,"meta":620,"navigation":505,"path":12,"seo":621,"stem":13,"__hash__":622},"docs_en\u002Fen\u002F1.getting-started\u002F1.quick-start.md",{"type":213,"value":214,"toc":612},"minimark",[215,219,228,233,300,303,307,314,350,357,361,581,608],[216,217,11],"h1",{"id":218},"quick-start",[220,221,222,223,227],"p",{},"For an enterprise production integration, complete every gate in the ",[224,225,226],"a",{"href":20},"enterprise integration journey",", from readiness through production and incident response. This page covers only the first public read.",[229,230,232],"h2",{"id":231},"choose-the-integration-boundary","Choose the integration boundary",[234,235,236,252],"table",{},[237,238,239],"thead",{},[240,241,242,246,249],"tr",{},[243,244,245],"th",{},"Goal",[243,247,248],{},"Use",[243,250,251],{},"Never use",[253,254,255,267,278,289],"tbody",{},[240,256,257,261,264],{},[258,259,260],"td",{},"Read public catalog",[258,262,263],{},"Public Storefront API",[258,265,266],{},"Merchant session cookie",[240,268,269,272,275],{},[258,270,271],{},"Access a user's account (after review\u002Fopening)",[258,273,274],{},"Authorization Code with PKCE S256 on the official authorization domain",[258,276,277],{},"Password grant, imitated sign-in, or shared Ayalink Cookie",[240,279,280,283,286],{},[258,281,282],{},"Server-to-server app",[258,284,285],{},"Installation token with minimum scopes",[258,287,288],{},"Browser-held client secret",[240,290,291,294,297],{},[258,292,293],{},"Receive business events",[258,295,296],{},"Installation-scoped signed Webhook",[258,298,299],{},"Unsigned callback or query token",[220,301,302],{},"Create the developer organization, app version, and store installation in the Ayalink Merchant developer workspace. Production access is not implied by the documentation: the app version, requested scopes, legal consent, store capability, market, and installation must all be active.",[229,304,306],{"id":305},"configure-the-public-base-url","Configure the public base URL",[220,308,309,310,313],{},"The ",[224,311,312],{"href":190},"Nuxt example"," requires only public configuration:",[315,316,321],"pre",{"className":317,"code":318,"language":319,"meta":320,"style":320},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_PUBLIC_AYALINK_API_BASE=https:\u002F\u002Fapi.example.invalid\u002Fapi\u002Fv1\nNUXT_PUBLIC_AYALINK_AUTH_BASE=https:\u002F\u002Fstorefront.example.invalid\nNUXT_PUBLIC_AYALINK_CLIENT_ID=replace-with-public-client-id\nNUXT_PUBLIC_AYALINK_REDIRECT_URI=https:\u002F\u002Fshop.example.invalid\u002Foauth\u002Fcallback\n","env","",[322,323,324,332,338,344],"code",{"__ignoreMap":320},[325,326,329],"span",{"class":327,"line":328},"line",1,[325,330,331],{},"NUXT_PUBLIC_AYALINK_API_BASE=https:\u002F\u002Fapi.example.invalid\u002Fapi\u002Fv1\n",[325,333,335],{"class":327,"line":334},2,[325,336,337],{},"NUXT_PUBLIC_AYALINK_AUTH_BASE=https:\u002F\u002Fstorefront.example.invalid\n",[325,339,341],{"class":327,"line":340},3,[325,342,343],{},"NUXT_PUBLIC_AYALINK_CLIENT_ID=replace-with-public-client-id\n",[325,345,347],{"class":327,"line":346},4,[325,348,349],{},"NUXT_PUBLIC_AYALINK_REDIRECT_URI=https:\u002F\u002Fshop.example.invalid\u002Foauth\u002Fcallback\n",[220,351,352,353,356],{},"The values above are inert placeholders, not production endpoints. Never prefix a secret with ",[322,354,355],{},"NUXT_PUBLIC_",".",[229,358,360],{"id":359},"request-public-data","Request public data",[315,362,366],{"className":363,"code":364,"language":365,"meta":320,"style":320},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const response = await fetch(`${apiBase}\u002Fcatalog\u002Fproducts`, {\n  headers: {\n    accept: 'application\u002Fjson',\n    'accept-language': 'en',\n    'x-ayalink-market': 'US'\n  }\n})\n\nif (!response.ok) throw new Error(`AYALINK_HTTP_${response.status}`)\nconst envelope = await response.json()\n","ts",[322,367,368,415,426,445,466,486,492,500,507,558],{"__ignoreMap":320},[325,369,370,374,378,382,386,390,393,396,399,402,406,409,412],{"class":327,"line":328},[325,371,373],{"class":372},"spNyl","const",[325,375,377],{"class":376},"sTEyZ"," response ",[325,379,381],{"class":380},"sMK4o","=",[325,383,385],{"class":384},"s7zQu"," await",[325,387,389],{"class":388},"s2Zo4"," fetch",[325,391,392],{"class":376},"(",[325,394,395],{"class":380},"`${",[325,397,398],{"class":376},"apiBase",[325,400,401],{"class":380},"}",[325,403,405],{"class":404},"sfazB","\u002Fcatalog\u002Fproducts",[325,407,408],{"class":380},"`",[325,410,411],{"class":380},",",[325,413,414],{"class":380}," {\n",[325,416,417,421,424],{"class":327,"line":334},[325,418,420],{"class":419},"swJcz","  headers",[325,422,423],{"class":380},":",[325,425,414],{"class":380},[325,427,428,431,433,436,439,442],{"class":327,"line":340},[325,429,430],{"class":419},"    accept",[325,432,423],{"class":380},[325,434,435],{"class":380}," '",[325,437,438],{"class":404},"application\u002Fjson",[325,440,441],{"class":380},"'",[325,443,444],{"class":380},",\n",[325,446,447,450,453,455,457,459,462,464],{"class":327,"line":346},[325,448,449],{"class":380},"    '",[325,451,452],{"class":419},"accept-language",[325,454,441],{"class":380},[325,456,423],{"class":380},[325,458,435],{"class":380},[325,460,461],{"class":404},"en",[325,463,441],{"class":380},[325,465,444],{"class":380},[325,467,469,471,474,476,478,480,483],{"class":327,"line":468},5,[325,470,449],{"class":380},[325,472,473],{"class":419},"x-ayalink-market",[325,475,441],{"class":380},[325,477,423],{"class":380},[325,479,435],{"class":380},[325,481,482],{"class":404},"US",[325,484,485],{"class":380},"'\n",[325,487,489],{"class":327,"line":488},6,[325,490,491],{"class":380},"  }\n",[325,493,495,497],{"class":327,"line":494},7,[325,496,401],{"class":380},[325,498,499],{"class":376},")\n",[325,501,503],{"class":327,"line":502},8,[325,504,506],{"emptyLinePlaceholder":505},true,"\n",[325,508,510,513,516,519,522,524,527,530,533,536,538,540,543,546,548,550,553,556],{"class":327,"line":509},9,[325,511,512],{"class":384},"if",[325,514,515],{"class":376}," (",[325,517,518],{"class":380},"!",[325,520,521],{"class":376},"response",[325,523,356],{"class":380},[325,525,526],{"class":376},"ok) ",[325,528,529],{"class":384},"throw",[325,531,532],{"class":380}," new",[325,534,535],{"class":388}," Error",[325,537,392],{"class":376},[325,539,408],{"class":380},[325,541,542],{"class":404},"AYALINK_HTTP_",[325,544,545],{"class":380},"${",[325,547,521],{"class":376},[325,549,356],{"class":380},[325,551,552],{"class":376},"status",[325,554,555],{"class":380},"}`",[325,557,499],{"class":376},[325,559,561,563,566,568,570,573,575,578],{"class":327,"line":560},10,[325,562,373],{"class":372},[325,564,565],{"class":376}," envelope ",[325,567,381],{"class":380},[325,569,385],{"class":384},[325,571,572],{"class":376}," response",[325,574,356],{"class":380},[325,576,577],{"class":388},"json",[325,579,580],{"class":376},"()\n",[220,582,583,584,587,588,587,591,587,594,587,597,600,601,604,605,356],{},"Do not invent products when the API is unavailable. Treat ",[322,585,586],{},"401",", ",[322,589,590],{},"403",[322,592,593],{},"404",[322,595,596],{},"409",[322,598,599],{},"422",", and ",[322,602,603],{},"429"," as distinct states described in ",[224,606,607],{"href":95},"errors and rate limits",[609,610,611],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":320,"searchDepth":334,"depth":334,"links":613},[614,615,616],{"id":231,"depth":334,"text":232},{"id":305,"depth":334,"text":306},{"id":359,"depth":334,"text":360},"Choose an integration environment and make the first public API request without storing secrets in a browser.","md",null,{},{"title":11,"description":617},"jbJUY8k5bNoMoEgjrBVRq4QmlsH7_rvYvOFGZZN0Wr4",[619,624],{"title":15,"path":16,"stem":17,"description":625,"children":-1},"Understand the public documentation, platform, store, installation, user, and provider trust boundaries.",1785955323143]