1:"$Sreact.fragment"
b:I[168027,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
:HL["/docs/_next/static/chunks/1ddb69276dca9f27.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","style"]
:HL["/docs/_next/static/chunks/2b0d21c764299abd.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","style"]
:HL["/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/docs/_next/static/media/PaperMono_Variable.p.4fb029ee.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
0:{"P":null,"b":"Iu3DAxbxtX6ydxf0nyfzg","p":"/docs","c":["","_sites","text-56a1eab5","api","agent-chat","v3.6"],"i":false,"f":[[["",{"children":["%5Fsites",{"children":[["subdomain","text-56a1eab5","d"],{"children":["(multitenant)",{"children":[["slug","api/agent-chat/v3.6","oc"],{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/docs/_next/static/chunks/1ddb69276dca9f27.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/docs/_next/static/chunks/2b0d21c764299abd.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}]],["$","html",null,{"suppressHydrationWarning":true,"lang":"en","className":"inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark","data-banner-state":"visible","data-assistant-state":"closed","data-page-mode":"none","data-current-path":"/","children":[["$","head",null,{"children":[["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"!function(){var b=\"/docs\";\nfunction a(p){if(p==null)return\"/\";p=\"\"+p;if(\"\"===p)return\"/\";return\"/\"===p.charAt(0)?p:\"/\"+p}\nfunction u(p){if(p==null)return p;p=\"\"+p;if(!p||p.charAt(p.length-1)===\"/\")return p.slice(0,-1);return p}\nfunction i(p){if(p==null)return p;p=\"\"+p;if(6<=p.length&&p.substring(p.length-6)===\"/index\")return p.substring(0,p.length-6);if(\"index\"===p)return\"\";return p}\nvar p=(location.pathname||\"\").split(\"?\")[0].split(\"#\")[0]||\"\";\nif(b)if(p===b)p=\"\";else if(0===p.indexOf(b+\"/\"))p=p.substring(b.length);\np=a(p);p=u(p);p=i(p);p=\"\"===p||\"index\"===p?\"/\":a(p);\ndocument.documentElement.setAttribute(\"data-current-path\",p);\n}();"}}],"$undefined",["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"(() => {\n  const isIOS =\n    /iP(hone|ad|od)/.test(navigator.userAgent) ||\n    (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints > 1);\n  if (!isIOS) return;\n  const apply = () => {\n    for (const meta of document.querySelectorAll('meta[name=\"viewport\"]')) {\n      const content = meta.getAttribute('content') || '';\n      if (!content.includes('maximum-scale')) {\n        meta.setAttribute('content', content + ', maximum-scale=1');\n      }\n    }\n  };\n  apply();\n  new MutationObserver(apply).observe(document.head, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['content'],\n  });\n})();"}}],["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"!function(){\nfunction read(){try{\nvar e=performance.getEntriesByType?performance.getEntriesByType(\"navigation\"):[];\nvar st=(e[0]&&e[0].serverTiming)||[];\nvar g={};\nfor(var i=0;i<st.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}\nif(n===\"country\")g.country=d;else if(n===\"region\")g.region=d;else if(n===\"continent\")g.continent=d;}\nvar w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;\n}catch(x){}}\nread();document.addEventListener(\"DOMContentLoaded\",read);\n}();"}}],["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"!function(){try{\nvar w=window;w.mintlify=w.mintlify||{};\nvar q=w.mintlify.__apiPlaygroundInputsQueue;\nif(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}\nw.mintlify.api=w.mintlify.api||{};\nw.mintlify.api.playground=w.mintlify.api.playground||{};\nif(typeof w.mintlify.api.playground.setServerVariables!==\"function\"){\nw.mintlify.api.playground.setServerVariables=function(v){q.push({type:\"set\",variables:v});};\n}\nif(typeof w.mintlify.api.playground.clearServerVariables!==\"function\"){\nw.mintlify.api.playground.clearServerVariables=function(){q.push({type:\"clear\"});};\n}\n}catch(e){}}();"}}],"$L2","$L3",false]}],"$L4"]}]]}],{"children":["%5Fsites","$L5",{"children":[["subdomain","text-56a1eab5","d"],"$L6",{"children":["(multitenant)","$L7",{"children":[["slug","api/agent-chat/v3.6","oc"],"$L8",{"children":["__PAGE__","$L9",{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],"$La",false]],"m":"$undefined","G":["$b",["$Lc","$Ld"]],"s":false,"S":true}
e:I[667786,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"MintlifyApiPlaygroundInputsInit"]
f:I[339756,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
10:I[556357,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/52d12440cce26829.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
11:I[837457,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
12:I[894587,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ThemeProvider"]
13:I[152823,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ColorVariables"]
14:I[531961,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"FontScript"]
15:I[649328,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"RoundedVariables"]
16:I[702910,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6ced912350830acb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"RecommendedPagesList"]
17:I[570420,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"DataCurrentPathUpdater"]
18:I[172816,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"MintlifyNavigateEvents"]
19:I[341175,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/98e778c271c59648.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
1c:I[897367,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"OutletBoundary"]
1e:I[711533,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AsyncMetadataOutlet"]
20:I[897367,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ViewportBoundary"]
22:I[897367,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"MetadataBoundary"]
23:"$Sreact.suspense"
2:["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"(function(){\nif(typeof CSS===\"undefined\"||!(\"registerProperty\" in CSS))return;\nif(CSS.supports&&CSS.supports(\"-webkit-backdrop-filter:none\"))return;\nvar n=[\"--scroll-area-overflow-x-start\",\"--scroll-area-overflow-x-end\",\"--scroll-area-overflow-y-start\",\"--scroll-area-overflow-y-end\"];\nvar d={\"syntax\":\"<length>\",\"inherits\":false,\"initialValue\":\"0px\"};\nfor(var i=0;i<n.length;i++){try{CSS.registerProperty({name:n[i],syntax:d.syntax,inherits:d.inherits,initialValue:d.initialValue})}catch(e){}}\n})();"}}]
3:["$","script",null,{"type":"text/javascript","dangerouslySetInnerHTML":{"__html":"(function(a,b){try{let c=document.querySelector(\"div#banner\")?.innerText;if(c){for(let d=0;d<localStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)&&localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,\"hidden\")}document.documentElement.setAttribute(b,\"visible\");return}for(let c=0;c<localStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)&&localStorage.getItem(d))return void document.documentElement.setAttribute(b,\"hidden\")}document.documentElement.setAttribute(b,\"visible\")}catch(a){document.documentElement.setAttribute(b,\"hidden\")}})(\n  \"bannerDismissed\",\n  \"data-banner-state\",\n)"}}]
4:["$","body",null,{"className":"antialiased","children":[["$","$Le",null,{}],false,["$","$Lf",null,{"parallelRouterKey":"children","error":"$10","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/docs/_next/static/chunks/52d12440cce26829.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-1",{"src":"/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-2",{"src":"/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-3",{"src":"/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}]],"template":["$","$L11",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L12",null,{"children":[["$","$L13",null,{}],["$","$L14",null,{}],["$","$L15",null,{}],["$","style",null,{"children":":root {\n  --primary: 17 120 102;\n  --primary-light: 74 222 128;\n  --primary-dark: 22 101 52;\n  --background-light: 255 255 255;\n  --background-dark: 15 17 23;\n}"}],["$","main",null,{"className":"h-screen bg-background-light dark:bg-background-dark text-left","children":["$","article",null,{"className":"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full","children":["$","div",null,{"className":"w-full max-w-xl px-10","children":[["$","span",null,{"className":"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary","children":["Error ",404]}],["$","h1",null,{"className":"font-semibold mb-3 text-3xl","children":"Page not found!"}],["$","p",null,{"className":"text-lg text-gray-600 dark:text-gray-400 mb-6","children":"We couldn't find the page."}],["$","$L16",null,{}]]}]}]}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],false,["$","$L17",null,{}],["$","$L18",null,{}]]}]
5:["$","$1","c",{"children":[null,["$","$Lf",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L11",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]
6:["$","$1","c",{"children":[null,["$","$Lf",null,{"parallelRouterKey":"children","error":"$19","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/docs/_next/static/chunks/98e778c271c59648.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-1",{"src":"/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-2",{"src":"/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}],["$","script","script-3",{"src":"/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true}]],"template":["$","$L11",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L12",null,{"children":[["$","$L13",null,{}],["$","$L14",null,{}],["$","$L15",null,{}],["$","style",null,{"children":":root {\n  --primary: 17 120 102;\n  --primary-light: 74 222 128;\n  --primary-dark: 22 101 52;\n  --background-light: 255 255 255;\n  --background-dark: 15 17 23;\n}"}],["$","main",null,{"className":"h-screen bg-background-light dark:bg-background-dark text-left","children":["$","article",null,{"className":"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full","children":["$","div",null,{"className":"w-full max-w-xl px-10","children":[["$","span",null,{"className":"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary","children":["Error ",404]}],["$","h1",null,{"className":"font-semibold mb-3 text-3xl","children":"Page not found!"}],["$","p",null,{"className":"text-lg text-gray-600 dark:text-gray-400 mb-6","children":"We couldn't find the page."}],["$","$L16",null,{}]]}]}]}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]
7:["$","$1","c",{"children":[[["$","script","script-0",{"src":"/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-15",{"src":"/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-16",{"src":"/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-17",{"src":"/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-18",{"src":"/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}]],"$L1a"]}]
8:["$","$1","c",{"children":[null,["$","$Lf",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L11",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]
9:["$","$1","c",{"children":["$L1b",[["$","script","script-0",{"src":"/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","async":true,"nonce":"$undefined"}]],["$","$L1c",null,{"children":["$L1d",["$","$L1e",null,{"promise":"$@1f"}]]}]]}]
a:["$","$1","h",{"children":[null,[["$","$L20",null,{"children":"$L21"}],null],["$","$L22",null,{"children":["$","div",null,{"hidden":true,"children":["$","$23",null,{"fallback":null,"children":"$L24"}]}]}]]}]
c:["$","link","0",{"rel":"stylesheet","href":"/docs/_next/static/chunks/1ddb69276dca9f27.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
d:["$","link","1",{"rel":"stylesheet","href":"/docs/_next/static/chunks/2b0d21c764299abd.css?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
21:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover"}]]
1d:null
1f:{"metadata":[["$","title","0",{"children":"Using the Agent Chat API - Text Documentation"}],["$","meta","1",{"name":"description","content":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API."}],["$","meta","2",{"name":"application-name","content":"Text Documentation"}],["$","meta","3",{"name":"generator","content":"Mintlify"}],["$","meta","4",{"name":"msapplication-config","content":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/browserconfig.xml"}],["$","meta","5",{"name":"apple-mobile-web-app-title","content":"Text Documentation"}],["$","meta","6",{"name":"msapplication-TileColor","content":"#131317"}],["$","link","7",{"rel":"canonical","href":"https://www.text.com/docs/api/agent-chat/v3.6"}],["$","link","8",{"rel":"alternate","type":"application/xml","href":"/docs/sitemap.xml"}],["$","link","9",{"rel":"alternate","type":"text/markdown","href":"/docs/api/agent-chat/v3.6.md"}],["$","meta","10",{"property":"og:title","content":"Using the Agent Chat API - Text Documentation"}],["$","meta","11",{"property":"og:description","content":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API."}],["$","meta","12",{"property":"og:url","content":"https://www.text.com/docs/api/agent-chat/v3.6"}],["$","meta","13",{"property":"og:site_name","content":"Text Documentation"}],["$","meta","14",{"property":"og:image","content":"https://text-56a1eab5.mintlify.app/public/images/og-image.png"}],["$","meta","15",{"property":"og:image:width","content":"1200"}],["$","meta","16",{"property":"og:image:height","content":"630"}],["$","meta","17",{"property":"og:type","content":"website"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:title","content":"Using the Agent Chat API - Text Documentation"}],["$","meta","20",{"name":"twitter:description","content":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API."}],["$","meta","21",{"name":"twitter:image","content":"https://text-56a1eab5.mintlify.app/public/images/og-image.png"}],["$","meta","22",{"name":"twitter:image:width","content":"1200"}],["$","meta","23",{"name":"twitter:image:height","content":"630"}],["$","link","24",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/android-chrome-192x192.png","type":"image/png","sizes":"192x192","media":"(prefers-color-scheme: light)"}],["$","link","25",{"rel":"apple-touch-icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/apple-touch-icon.png","type":"image/png","sizes":"180x180","media":"$undefined"}],["$","link","26",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/favicon-16x16.png","type":"image/png","sizes":"16x16","media":"(prefers-color-scheme: light)"}],["$","link","27",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/favicon-32x32.png","type":"image/png","sizes":"32x32","media":"(prefers-color-scheme: light)"}],["$","link","28",{"rel":"shortcut icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon/favicon.ico","type":"image/x-icon","sizes":"$undefined","media":"(prefers-color-scheme: light)"}],["$","link","29",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon-dark/android-chrome-192x192.png","type":"image/png","sizes":"192x192","media":"(prefers-color-scheme: dark)"}],["$","link","30",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon-dark/favicon-16x16.png","type":"image/png","sizes":"16x16","media":"(prefers-color-scheme: dark)"}],["$","link","31",{"rel":"icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon-dark/favicon-32x32.png","type":"image/png","sizes":"32x32","media":"(prefers-color-scheme: dark)"}],"$L25","$L26"],"error":null,"digest":"$undefined"}
24:"$1f:metadata"
27:I[27201,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"IconMark"]
25:["$","link","32",{"rel":"shortcut icon","href":"/docs/_mintlify/favicons/text-56a1eab5/DxfvlVY-f3AGJ5uG/_generated/favicon-dark/favicon.ico","type":"image/x-icon","sizes":"$undefined","media":"(prefers-color-scheme: dark)"}]
26:["$","$L27","33",{}]
28:I[707934,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"WebMcpRegistration"]
29:I[590280,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"LivePreviewProvider"]
2a:I[973254,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"LivePreviewFavicon"]
2b:I[197336,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
2c:I[91557,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AuthProvider"]
2d:I[91557,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"DeploymentMetadataProvider"]
2e:I[91557,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"DocsConfigProvider"]
1a:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Text Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}"}}],["$","$L28",null,{"subdomain":"text-56a1eab5","siteName":"Text Documentation"}],["$","$L29",null,{"isLivePreviewRoute":false,"children":[["$","$L2a",null,{}],["$","$L12",null,{"appearance":{"default":"system"},"codeblockTheme":"system","children":[["$","blockquote",null,{"className":"sr-only","data-agent-docs-index":true,"aria-hidden":"true","children":[["$","h2",null,{"children":"Documentation Index"}],["$","p",null,{"children":["Fetch the complete documentation index at:"," ",["$","a",null,{"href":"/docs/llms.txt","tabIndex":-1,"children":"/docs/llms.txt"}]]}],["$","p",null,{"children":"Use this file to discover all available pages before exploring further."}]]}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root{--banner-height:0px!important}"}}],null,null,["$","script",null,{"id":"_mintlify-banner-script","dangerouslySetInnerHTML":{"__html":"(function i(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split(\"/\").filter(a=>\"\"!==a&&\"global\"!==a).slice(0,2)}catch{h=[]}let i=h.map(a=>c.find(b=>b.toLowerCase()===a.toLowerCase())).find(a=>void 0!==a),j=[];for(let c of(i?j.push(i):j.push(b),j.push(\"global\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\"hidden\");let k=!0,l=0;for(;l<localStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b&&b===f){k=!1;break}g&&(a.startsWith(`lang:${g}_`)||!a.startsWith(\"lang:\"))&&(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?\"visible\":\"hidden\")}catch(a){console.error(a),document.documentElement.setAttribute(d,\"hidden\")}})(\n  {},\n  \"en\",\n  [],\n  \"data-banner-state\",\n  \"bannerDismissed\",\n)"},"suppressHydrationWarning":true}],["$","$L2b",null,{"appId":"$undefined","autoBoot":true,"children":["$","$L2c",null,{"value":{"auth":"$undefined","userAuth":"$undefined"},"children":["$","$L2d",null,{"value":{"subdomain":"text-56a1eab5","hasAudioNarration":false,"actualSubdomain":"text-56a1eab5","customDomains":["www.text.com"],"gitSource":{"type":"github","owner":"livechat","repo":"text-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6acf68e64788a74327b725d2","collectionId":"a3543234-02db-417f-af75-270b0e02129c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acf68e64788a74327b725d2"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6acf68e64788a74327b725d2","clientVersion":"0.0.3857","preview":"$undefined","searchFilterCounts":[{"language":"default","tag":"API reference","count":768},{"language":"default","tag":"Configuration API","count":200},{"language":"default","tag":"Agent Chat API","count":147},{"language":"default","tag":"Customer Chat API","count":137},{"language":"default","tag":"Ticketing API","count":133},{"language":"default","tag":"Chats","count":77},{"language":"default","tag":"Properties","count":72},{"language":"default","tag":"Other","count":56},{"language":"default","tag":"Reports API","count":52},{"language":"default","tag":"Overview","count":47}],"searchSettings":"$undefined","disableKonamiCode":"$undefined"},"children":["$","$L2e",null,{"value":{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Text Documentation","colors":{"primary":"#131317","light":"#F6F6F7"},"logo":{"light":"https://mintcdn.com/text-56a1eab5/YeUyNnZpquLAcjyj/public/images/text_logo_black.svg?fit=max&auto=format&n=YeUyNnZpquLAcjyj&q=85&s=1d56259972e440ba1f6676fd28c39793","dark":"https://mintcdn.com/text-56a1eab5/YeUyNnZpquLAcjyj/public/images/text_logo_white.svg?fit=max&auto=format&n=YeUyNnZpquLAcjyj&q=85&s=96feaea7dee928883eeed3d0f39435e7"},"favicon":"https://mintcdn.com/text-56a1eab5/YeUyNnZpquLAcjyj/public/images/favicon.svg?fit=max&auto=format&n=YeUyNnZpquLAcjyj&q=85&s=bce902fa5907c7dedd9904b7bd847c85","api":{"params":{"expanded":"closed"},"playground":{"display":"interactive"}},"appearance":"$1a:2:props:children:1:props:appearance","background":{"color":{"light":"#FCFCF7","dark":"#000000"}},"navbar":{"links":[{"href":"/sign-in","label":"Sign in"}],"primary":{"type":"button","label":"Create account","href":"https://accounts.livechat.com/signup?landing_page=https%3A%2F%2Fwww.text.com%2F&client_id=fc7bf1555adb6d3d2a441f10fd5b6eb5&redirect_uri=https%3A%2F%2Fwww.text.com%2Fapp&response_type=token&source_type=website&source_id=header-signup&source_url=https%3A%2F%2Fwww.text.com%2F"}},"footer":{"socials":{"x":"https://x.com/text_hq","github":"https://github.com/livechat","linkedin":"https://linkedin.com/company/text","discord":"https://discord.gg/MGFyhbdFxt"},"links":[{"header":"For partners","items":[{"label":"Technology partners","href":"https://www.text.com/partners/technology?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"Solution partners","href":"https://www.text.com/partners/solution?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"Affiliate partners","href":"https://www.text.com/partners/affiliate?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"}]},{"header":"Resources","items":[{"label":"Solutions","href":"https://www.text.com/solutions?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"Changelog","href":"/api/changelog"},{"label":"API status","href":"https://status.text.com/"},{"label":"llms.txt","href":"/llms.txt"}]},{"header":"Products","items":[{"label":"Text","href":"https://www.text.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"LiveChat","href":"https://www.livechat.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"ChatBot","href":"https://www.chatbot.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"HelpDesk","href":"https://www.helpdesk.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"OpenWidget","href":"https://openwidget.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"},{"label":"KnowledgeBase","href":"https://www.knowledgebase.com/?utm_source=text.com%2Fdocs&utm_medium=referral&utm_campaign=footer"}]}]},"seo":{"metatags":{"canonical":"https://www.text.com/docs","title":"Text Documentation and API Reference | Text","description":"Text API reference and developer guides for building chat integrations, automations, and custom agent tools.","og:image":"/public/images/og-image.png"}},"fonts":{"family":"Inter"},"icons":{"library":"fontawesome"},"errors":{"404":{"redirect":false,"title":"Whoops!","description":"You're not supposed to be here. <br /> <br />[Back to homepage ›](/)"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false,"codeblocks":"system"},"navigation":{"pages":[]}},"docsNavWithMetadata":"$undefined","anonymizedNav":"$undefined","hasFullNav":false},"children":"$L2f"}]}]}]}]]}]]}]]
30:I[604804,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"LoginButtonProvider"]
31:I[141180,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"SidebarLoginButtonProvider"]
32:I[343590,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"NavigationContextController"]
33:I[378486,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"PageListProvider"]
34:I[742977,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"PrefetchProvider"]
35:I[237978,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"PageModeOverrideProvider"]
36:I[378896,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ConfiguredVariationProvider"]
37:I[557611,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"Fonts"]
38:I[330080,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"BannerProvider"]
39:I[864506,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"NavbarTransitionScript"]
3b:I[540345,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ConsentProvider"]
3c:I[529058,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"LocalStorageAndAnalyticsProviders"]
3d:I[958547,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
3a:T9e0,(function () {
  var measure = function(){let a=document.querySelectorAll("header#navbar, [data-top-chrome]"),b=0;a.forEach(a=>{let c=a.getBoundingClientRect();c.height>0&&(b=Math.max(b,c.bottom))});let c=0,d=document.getElementById("content-container");if(d){let{overflowY:a}=getComputedStyle(d);("auto"===a||"scroll"===a)&&(c=Math.max(0,d.getBoundingClientRect().top))}let e=`${Math.round(Math.max(0,b-c))+40}px`,f=document.documentElement.style;f.getPropertyValue("--scroll-mt")!==e&&f.setProperty("--scroll-mt",e)};
  (function(a){let b=[],c=0,d="undefined"==typeof ResizeObserver?null:new ResizeObserver(f);function e(){let c=Array.from(document.querySelectorAll("header#navbar, [data-top-chrome]"));(c.length!==b.length||c.some((a,c)=>a!==b[c]))&&d&&(d.disconnect(),c.forEach(a=>d.observe(a))),b=c,a()}function f(){c||(c=requestAnimationFrame(()=>{c=0,e()}))}let g="header#navbar, [data-top-chrome]";function h(a){let b=a.target;if(b instanceof Element&&b.closest(g))return!0;for(let b of a.addedNodes)if(b instanceof Element&&(b.matches(g)||b.querySelector(g)))return!0;for(let b of a.removedNodes)if(b instanceof Element&&(b.matches(g)||b.querySelector(g)))return!0;return!1}new MutationObserver(a=>{a.some(h)&&f()}).observe(document.documentElement,{childList:!0,subtree:!0}),window.addEventListener("resize",f),"loading"===document.readyState&&document.addEventListener("DOMContentLoaded",e),e()})(measure);
  (function(a){let b=window.location.hash.slice(1);if(!b)return;function c(){return"smooth"===getComputedStyle(document.documentElement).scrollBehavior}function d(c){let d=document.getElementById(b);return!!d&&(a(),d.scrollIntoView(c?{behavior:c}:void 0),!0)}if("complete"===document.readyState)return void d();let e=new MutationObserver(()=>{!c()&&d("instant")&&f()});function f(){e.disconnect(),window.removeEventListener("load",g)}function g(){let a=c();f(),a&&requestAnimationFrame(()=>{d(),function(){let a=["wheel","touchstart","keydown","pointerdown"],c=0,e=window.scrollY,f=setInterval(()=>{c+=1;let a=document.getElementById(b);if(!a||c>=6)return g();let f=Math.abs(window.scrollY-e)>1;if(e=window.scrollY,f)return;let h=parseFloat(getComputedStyle(a).scrollMarginTop)||0;Math.abs(a.getBoundingClientRect().top-h)>4&&d()},350);function g(){clearInterval(f),a.forEach(a=>window.removeEventListener(a,g))}a.forEach(a=>window.addEventListener(a,g,{passive:!0}))}()})}window.addEventListener("load",g),e.observe(document.documentElement,{childList:!0,subtree:!0}),!c()&&d("instant")&&f()})(measure);
})();2f:["$","$L30",null,{"children":["$","$L31",null,{"children":["$","$L32",null,{"children":["$","$L33",null,{"pageListDataMap":{},"children":["$","$L34",null,{"disabled":"$undefined","children":["$","$L35",null,{"children":["$","$L36",null,{"children":[["$","$L14",null,{"fonts":"$1a:2:props:children:1:props:children:5:props:children:props:children:props:children:props:value:docsConfig:fonts","theme":"palm","subdomain":"text-56a1eab5"}],[["$","$L13",null,{"docsConfig":"$1a:2:props:children:1:props:children:5:props:children:props:children:props:children:props:value:docsConfig"}],null,["$","$L15",null,{"theme":"palm"}],["$","$L37",null,{"fonts":"$1a:2:props:children:1:props:children:5:props:children:props:children:props:children:props:value:docsConfig:fonts","children":["$","$L38",null,{"bannersByLocale":{},"subdomain":"text-56a1eab5","children":[["$","$L39",null,{"theme":"palm"}],["$","script",null,{"id":"_mintlify-scroll-margin-script","dangerouslySetInnerHTML":{"__html":"$3a"},"suppressHydrationWarning":true}],["$","$L3b",null,{"privacy":"$undefined","children":["$","$L3c",null,{"subdomain":"text-56a1eab5","isAtlas":false,"children":["$","$L3d",null,{"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":"editor-v7-file-tree","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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"editor-private-page-search","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":"teamspace","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":"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":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"children":"$L3e"}]}]}]]}]}]]]}]}]}]}]}]}]}]
3f:I[604780,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"CaptchaProvider"]
40:I[859465,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AssistantUiProvider"]
41:I[832740,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AssistantTransportProviderSelector"]
42:I[601054,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"SearchProvider"]
43:I[28330,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"SkipToContent"]
44:I[382229,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AssistantLayoutScript"]
45:I[87732,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"AssistantLayoutWrapper"]
46:I[118717,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/35f878cad2c6a403.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"NotFoundHydrator"]
3e:["$","$L3f",null,{"enabled":false,"children":["$","$L40","text-56a1eab5",{"children":["$","$L41",null,{"children":["$","$L42",null,{"subdomain":"text-56a1eab5","hasChatPermissions":false,"isLoggedInCli":false,"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true},"starterQuestions":"$undefined","children":[["$","$L43",null,{}],["$","$L44",null,{"hasChatPermissions":false}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"html{--assistant-sheet-width:0px!important}"}}],["$","$L45",null,{"children":[["$","$Lf",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L11",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L46",null,{"source":"multitenant"}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],"$undefined"]}]]}]}]}]}]
47:I[597003,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ScopedNavProvider"]
48:T571,Creates an imported ticket.

By default this endpoint creates a **ticket without attachments**.
If you want to create a ticket containing attachments:
1. Create new import transaction by issuing `POST` request to `/v1/importedTickets/transactions` endpoint
2. Upload attachments by issuing `POST` request(s) to `/v1/importedTickets/attachments` with proper `transactionID` acquired in step 1. The response will contain array with `attachmentIDs` you can use in step 3.
3. Create new ticket issuing `POST` request to `/v1/importedTickets` endpoint with additional `transactionID` parameter acquired in step 1

Remarks:
- First event has to be of type `message`
- Date of first message event is considered ticket creating date
- Events have to be chronologically ordered and in the past
- Events of type `message` and `attachments` are grouped together when the date parameter in both events match `attachment.files` array contains IDs generated during attachment upload
- All uploaded attachments have to be used during ticket import
- `TransactionID` stays valid for 24 hours
- Ticket status can be changed using status event (last such status is used as final status)
- Agent-issued message or attachment requires `agentID`, `agentName` and `isPrivate` parameters. Messages without these parameters are considered as requester-issued. These rules concern both message and attachments events.
1b:["$","$L47",null,{"scopedNav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/getting-started"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/reports-api-template"}]},{"tab":"API reference","dropdowns":[{"dropdown":"Agent Chat API","icon":"globe","description":"Web","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/agent-chat/v3.7"}]},{"version":"v3.6","default":true,"tag":"stable","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Agent Chat API","description":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API.","href":"/api/agent-chat/v3.6"},{"title":"Data structures","description":"Reference of data structures available in the Agent Chat API v3.6.","href":"/api/agent-chat/v3.6/data-structures"}]},{"group":"Chats","pages":[{"title":"List chats","description":"Returns summaries of the chats an agent has access to.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/list_chats","href":"/api/agent-chat/v3.6/chats/list-chats","autogeneratedByOpenApi":true},{"title":"List threads","description":"Returns threads that the current agent has access to in a given chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/list_threads","href":"/api/agent-chat/v3.6/chats/list-threads","autogeneratedByOpenApi":true},{"title":"Get chat","description":"Returns a thread that the current agent has access to in a given chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/get_chat","href":"/api/agent-chat/v3.6/chats/get-chat","autogeneratedByOpenApi":true},{"title":"List archives","description":"Returns a list of the chats an agent has access to.\n\nTogether with a chat, the events of one thread from this chat are returned.\n\nThe list classification is based on threads — one chat per thread. The same chat object may appear on the list several times, but each time with a different thread. The returned chat is a complete object, not only a chat summary.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/list_archives","href":"/api/agent-chat/v3.6/chats/list-archives","autogeneratedByOpenApi":true},{"title":"Start chat","description":"Starts a chat.\n\nAuthors (except the requester) of all initial events must be listed in the `users` field. Default visibility of events and users is `all` and cannot be changed. The method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/start_chat","href":"/api/agent-chat/v3.6/chats/start-chat","autogeneratedByOpenApi":true},{"title":"Resume chat","description":"Restarts an archived chat.\n\nAuthors (except the requester) of all initial events must be listed in the `users` field. Default visibility of events and users is `all` and cannot be changed. The method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/resume_chat","href":"/api/agent-chat/v3.6/chats/resume-chat","autogeneratedByOpenApi":true},{"title":"Deactivate chat","description":"Deactivates a chat by closing the currently open thread.\n\nSending messages to this thread will no longer be possible.\n\nThe requester must be present on the list of chat users (can be overridden with `ignore_requester_presence`).","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/deactivate_chat","href":"/api/agent-chat/v3.6/chats/deactivate-chat","autogeneratedByOpenApi":true},{"title":"Follow chat","description":"Marks a chat as followed.\n\nAll changes to the chat will be sent to the requester until the chat is reactivated or unfollowed.\n\nChat members don't need to follow their chats; they receive all chat pushes regardless of follower status.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/follow_chat","href":"/api/agent-chat/v3.6/chats/follow-chat","autogeneratedByOpenApi":true},{"title":"Unfollow chat","description":"Removes the requester from the chat followers.\n\nAfter that, only key changes to the chat (like `transfer_chat` or `close_active_thread`) will be sent to the requester.\n\nChat members cannot unfollow the chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/unfollow_chat","href":"/api/agent-chat/v3.6/chats/unfollow-chat","autogeneratedByOpenApi":true}]},{"group":"Chat access","pages":[{"title":"Transfer chat","description":"Transfers a chat to an agent or a group.\n\nThe following restrictions apply:\n\n- The transferred chat must be active.\n- The requester must be present on the list of chat users. You can override it by setting the `ignore_requester_presence` parameter.\n- When transferring directly to an agent, the agent must have access to the transferred chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/transfer_chat","href":"/api/agent-chat/v3.6/chat-access/transfer-chat","autogeneratedByOpenApi":true}]},{"group":"Chat users","pages":[{"title":"Add user to chat","description":"Adds a user to the chat.\n\nThe following restrictions apply:\n\n- The chat must be active.\n- The requester must be present on the list of chat users. You can override it by setting the `ignore_requester_presence` parameter.\n- You can't have more than one `customer` in the chat.\n- Additional agents must also have access to the chat.\n- `customer` must be added with `visibility: all`.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/add_user_to_chat","href":"/api/agent-chat/v3.6/chat-users/add-user-to-chat","autogeneratedByOpenApi":true},{"title":"Remove user from chat","description":"Removes a user from the chat.\n\nThe following restrictions apply:\n\n- You can't remove the `customer`.\n- The requester must be present on the list of chat users. You can override it by setting the `ignore_requester_presence` parameter.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/remove_user_from_chat","href":"/api/agent-chat/v3.6/chat-users/remove-user-from-chat","autogeneratedByOpenApi":true}]},{"group":"Events","pages":[{"title":"Send event preview","description":"Sends an event that isn't saved in the chat.\n\nUse this method when you're preparing a longer response and want to send a partial update before sending the final message with Send Event.\n\nOnly the `message` type is supported. Visibility must be set to `all` or skipped. The user must be added to the chat before they can send an event.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/send_event_preview","href":"/api/agent-chat/v3.6/events/send-event-preview","autogeneratedByOpenApi":true},{"title":"Send event","description":"Sends an [event object](/api/agent-chat/v3.6/data-structures#events).\n\nUse this method to send a message by specifying the `message` event type in the request.\n\nThe user must be added to the chat before they can send an event. Events with `visibility: agents` are sent to agents only; events with `visibility: all` are sent to all users. Users with `visibility: agents` cannot send events with `visibility: all`.\n\nThe method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/send_event","href":"/api/agent-chat/v3.6/events/send-event","autogeneratedByOpenApi":true},{"title":"Upload file","description":"Uploads a file to the server as a temporary file.\n\nReturns a URL that expires after 24 hours unless the URL is used in `send_event`, in which case it never expires.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/upload_file","href":"/api/agent-chat/v3.6/events/upload-file","autogeneratedByOpenApi":true},{"title":"Send rich message postback","description":"Sends a postback for a rich message event.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/send_rich_message_postback","href":"/api/agent-chat/v3.6/events/send-rich-message-postback","autogeneratedByOpenApi":true}]},{"group":"Properties","pages":[{"title":"Update chat properties","description":"Updates the properties of a chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/update_chat_properties","href":"/api/agent-chat/v3.6/properties/update-chat-properties","autogeneratedByOpenApi":true},{"title":"Delete chat properties","description":"Deletes the properties of a chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/delete_chat_properties","href":"/api/agent-chat/v3.6/properties/delete-chat-properties","autogeneratedByOpenApi":true},{"title":"Update thread properties","description":"Updates the properties of a thread.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/update_thread_properties","href":"/api/agent-chat/v3.6/properties/update-thread-properties","autogeneratedByOpenApi":true},{"title":"Delete thread properties","description":"Deletes the properties of a thread.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/delete_thread_properties","href":"/api/agent-chat/v3.6/properties/delete-thread-properties","autogeneratedByOpenApi":true},{"title":"Update event properties","description":"Updates the properties of an event.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/update_event_properties","href":"/api/agent-chat/v3.6/properties/update-event-properties","autogeneratedByOpenApi":true},{"title":"Delete event properties","description":"Deletes the properties of an event.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/delete_event_properties","href":"/api/agent-chat/v3.6/properties/delete-event-properties","autogeneratedByOpenApi":true}]},{"group":"Thread tags","pages":[{"title":"Tag thread","description":"Tags a given thread.\n\nRead how to [list all available tags](/api/configuration/v3.6/tags/list-tags) and [create a new tag](/api/configuration/v3.6/tags/create-tag).","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/tag_thread","href":"/api/agent-chat/v3.6/thread-tags/tag-thread","autogeneratedByOpenApi":true},{"title":"Untag thread","description":"Untags a given thread.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/untag_thread","href":"/api/agent-chat/v3.6/thread-tags/untag-thread","autogeneratedByOpenApi":true}]},{"group":"Customers","pages":[{"title":"Get customer","description":"Returns the info about the customer with a given `id`.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/get_customer","href":"/api/agent-chat/v3.6/customers/get-customer","autogeneratedByOpenApi":true},{"title":"Update customer","description":"Updates customer's properties.\n\nApart from `id`, which is a required parameter, you also need to include at least one of the optional parameters.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/update_customer","href":"/api/agent-chat/v3.6/customers/update-customer","autogeneratedByOpenApi":true},{"title":"Ban customer","description":"Bans the customer for a specific period of time.\n\nIt immediately disconnects all active sessions of this customer and does not accept new ones during the ban lifespan.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/ban_customer","href":"/api/agent-chat/v3.6/customers/ban-customer","autogeneratedByOpenApi":true}]},{"group":"Status","pages":[{"title":"Set routing status","description":"Changes the status of an agent or a bot agent.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/set_routing_status","href":"/api/agent-chat/v3.6/status/set-routing-status","autogeneratedByOpenApi":true},{"title":"List routing statuses","description":"Returns the current routing status of each agent selected by the provided filters.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/list_routing_statuses","href":"/api/agent-chat/v3.6/status/list-routing-statuses","autogeneratedByOpenApi":true}]},{"group":"Other","pages":[{"title":"Mark events as seen","description":"Marks an agent's events up to a specific time as read in a customer's chat window.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/mark_events_as_seen","href":"/api/agent-chat/v3.6/other/mark-events-as-seen","autogeneratedByOpenApi":true},{"title":"Send thinking indicator","description":"Sends a thinking indicator to a chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/send_thinking_indicator","href":"/api/agent-chat/v3.6/other/send-thinking-indicator","autogeneratedByOpenApi":true},{"title":"Send typing indicator","description":"Sends a typing indicator to a chat.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/send_typing_indicator","href":"/api/agent-chat/v3.6/other/send-typing-indicator","autogeneratedByOpenApi":true},{"title":"Multicast","description":"Sends a chat-unrelated multicast.\n\nMessages sent using `multicast` are not being saved. For example, it could be used in an app that sends notifications to agents when a specific condition is met (for instance, when an important customer starts a chat).","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/multicast","href":"/api/agent-chat/v3.6/other/multicast","autogeneratedByOpenApi":true},{"title":"List agents for transfer","description":"Returns the agents you can transfer a chat to.\n\nAgents are sorted ascendingly by the total number of active chats they have. Note that:\n\n- The method only returns agents with statuses **online** and **not accepting chats**. Offline agents aren't returned.\n- Only chats **with customers** are taken into account in `total_active_chats`.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/list_agents_for_transfer","href":"/api/agent-chat/v3.6/other/list-agents-for-transfer","autogeneratedByOpenApi":true},{"title":"Request thread summary","description":"Requests an AI-generated summary of a specific thread.\n\nA deactivated thread can be summarized only once. For active threads, this method can be called multiple times, and the resulting summaries will be delivered as [system events](/api/events-and-properties/system-activities#summary) inside a thread for which the summary was requested.","deprecated":null,"version":null,"openapi":"/api/agent-chat/v3.6/openapi.json post /action/request_thread_summary","href":"/api/agent-chat/v3.6/other/request-thread-summary","autogeneratedByOpenApi":true}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/agent-chat/v3.5"}]}]},{"dropdown":"Agent Chat API","icon":"tower-broadcast","description":"RTM","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/agent-chat/v3.7/rtm/index"}]},{"version":"v3.6","default":true,"tag":"stable","pages":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Agent Chat RTM API","description":"Maintain a WebSocket connection for agent tools to exchange chat events and receive conversation updates in real time.","href":"/api/agent-chat/v3.6/rtm"},{"title":"Data structures","description":"Reference of data structures available in the Agent Chat API v3.6.","href":"/api/agent-chat/v3.6/rtm/data-structures"},{"title":"Pushes","description":"Reference of push messages for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/pushes"}]},{"group":"Methods","icon":"brackets-curly","pages":[{"title":"Chats","description":"Reference of Chats methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/chats"},{"title":"Chat access","description":"Reference of Chat access methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/chat-access"},{"title":"Chat users","description":"Reference of Chat users methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/chat-users"},{"title":"Events","description":"Reference of Events methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/events"},{"title":"Properties","description":"Reference of Properties methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/properties"},{"title":"Thread tags","description":"Reference of Thread tags methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/thread-tags"},{"title":"Customers","description":"Reference of Customers methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/customers"},{"title":"Status","description":"Reference of Status methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/status"},{"title":"Other","description":"Reference of Other methods for the Agent Chat RTM API v3.6.","href":"/api/agent-chat/v3.6/rtm/other"}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/agent-chat/v3.5/rtm/index"}]}]},{"dropdown":"Customer Chat API","icon":"message","description":"Web","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/customer-chat/v3.7/index"}]},{"version":"v3.6","default":true,"tag":"stable","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Customer Chat API","description":"Build a custom customer chat interface that connects to Text and supports conversations inside your website or product.","href":"/api/customer-chat/v3.6"},{"title":"Data structures","description":"Reference of data structures available in the Customer Chat API v3.6.","href":"/api/customer-chat/v3.6/data-structures"}]},{"group":"Chats","pages":[{"title":"List chats","description":"Returns summaries of the chats a customer participated in.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/list_chats","href":"/api/customer-chat/v3.6/chats/list-chats","autogeneratedByOpenApi":true},{"title":"List threads","description":"Returns threads that the current customer has access to in a given chat.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/list_threads","href":"/api/customer-chat/v3.6/chats/list-threads","autogeneratedByOpenApi":true},{"title":"Get chat","description":"Returns a thread that the current customer has access to in a given chat.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/get_chat","href":"/api/customer-chat/v3.6/chats/get-chat","autogeneratedByOpenApi":true},{"title":"Start chat","description":"Starts a chat.\n\nThe method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/start_chat","href":"/api/customer-chat/v3.6/chats/start-chat","autogeneratedByOpenApi":true},{"title":"Resume chat","description":"Restarts an archived chat.\n\nThe method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/resume_chat","href":"/api/customer-chat/v3.6/chats/resume-chat","autogeneratedByOpenApi":true},{"title":"Deactivate chat","description":"Deactivates a chat by closing the currently open thread.\n\nSending messages to this thread will no longer be possible.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/deactivate_chat","href":"/api/customer-chat/v3.6/chats/deactivate-chat","autogeneratedByOpenApi":true}]},{"group":"Configuration","pages":[{"title":"Get dynamic configuration","description":"Returns the dynamic configuration of a given group.\n\nIt provides data to call Get Configuration and Get Localization.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json get /action/get_dynamic_configuration","href":"/api/customer-chat/v3.6/configuration/get-dynamic-configuration","autogeneratedByOpenApi":true},{"title":"Get configuration","description":"Returns the configuration of a given group in a given version.\n\nContains data based on which the Chat Widget can be built.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json get /action/get_configuration","href":"/api/customer-chat/v3.6/configuration/get-configuration","autogeneratedByOpenApi":true}]},{"group":"Events","pages":[{"title":"Send event","description":"Sends an [event object](/api/customer-chat/v3.6/data-structures#events).\n\nUse this method to send a message by specifying the Message event type in the request.\n\nThe method updates the requester's `events_seen_up_to` as if they've seen all chat events.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/send_event","href":"/api/customer-chat/v3.6/events/send-event","autogeneratedByOpenApi":true},{"title":"Delete event","description":"Deletes an [event object](/api/customer-chat/v3.6/data-structures#events).\n\nDeleted events are hidden from all Customer Chat API responses but remain visible via the Agent Chat API.\n\nIn the Agent Chat API, the Delete Event method replaces the original event with a Deleted Event for agents with the `normal` role. Agents with higher roles (`administrator`, `viceowner`, and `owner`) see the original event with a `deleted` flag.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/delete_event","href":"/api/customer-chat/v3.6/events/delete-event","autogeneratedByOpenApi":true},{"title":"Upload file","description":"Uploads a file to the server as a temporary file.\n\nIt returns a URL that expires after 24 hours unless the URL is used in `send_event`.\n\n`incoming_event` returns a URL that never expires.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/upload_file","href":"/api/customer-chat/v3.6/events/upload-file","autogeneratedByOpenApi":true},{"title":"Send rich message postback","description":"Sends a rich message postback.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/send_rich_message_postback","href":"/api/customer-chat/v3.6/events/send-rich-message-postback","autogeneratedByOpenApi":true},{"title":"Send sneak peek","description":"Sends a sneak peek to a chat.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/send_sneak_peek","href":"/api/customer-chat/v3.6/events/send-sneak-peek","autogeneratedByOpenApi":true}]},{"group":"Localization","pages":[{"title":"Get localization","description":"Returns the localization of a given language and group in a given version.\n\nContains translated phrases for the Chat Widget.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json get /action/get_localization","href":"/api/customer-chat/v3.6/localization/get-localization","autogeneratedByOpenApi":true}]},{"group":"Properties","pages":[{"title":"Update chat properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/update_chat_properties","href":"/api/customer-chat/v3.6/properties/update-chat-properties","autogeneratedByOpenApi":true},{"title":"Delete chat properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/delete_chat_properties","href":"/api/customer-chat/v3.6/properties/delete-chat-properties","autogeneratedByOpenApi":true},{"title":"Update thread properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/update_thread_properties","href":"/api/customer-chat/v3.6/properties/update-thread-properties","autogeneratedByOpenApi":true},{"title":"Delete thread properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/delete_thread_properties","href":"/api/customer-chat/v3.6/properties/delete-thread-properties","autogeneratedByOpenApi":true},{"title":"Update event properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/update_event_properties","href":"/api/customer-chat/v3.6/properties/update-event-properties","autogeneratedByOpenApi":true},{"title":"Delete event properties","description":null,"deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/delete_event_properties","href":"/api/customer-chat/v3.6/properties/delete-event-properties","autogeneratedByOpenApi":true},{"title":"List license properties","description":"Returns the properties of a given license.\n\nIt only returns the properties a customer has access to.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json get /action/list_license_properties","href":"/api/customer-chat/v3.6/properties/list-license-properties","autogeneratedByOpenApi":true},{"title":"List group properties","description":"Returns the properties of a given group.\n\nIt only returns the properties a customer has access to.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json get /action/list_group_properties","href":"/api/customer-chat/v3.6/properties/list-group-properties","autogeneratedByOpenApi":true}]},{"group":"Customers","pages":[{"title":"Update customer","description":"Updates customer's properties.\n\nAt least one optional parameter needs to be included in the request.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/update_customer","href":"/api/customer-chat/v3.6/customers/update-customer","autogeneratedByOpenApi":true},{"title":"Set customer session fields","description":"Updates customer session fields.\n\nUser agent and referrer are updated by default using the browser's headers.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/set_customer_session_fields","href":"/api/customer-chat/v3.6/customers/set-customer-session-fields","autogeneratedByOpenApi":true},{"title":"Get customer","description":"Returns the info about the customer requesting it.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/get_customer","href":"/api/customer-chat/v3.6/customers/get-customer","autogeneratedByOpenApi":true}]},{"group":"Status","pages":[{"title":"List group statuses","description":"Lists group statuses.\n\nOne of the optional parameters needs to be included in the request.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/list_group_statuses","href":"/api/customer-chat/v3.6/status/list-group-statuses","autogeneratedByOpenApi":true}]},{"group":"Other","pages":[{"title":"Check goals","description":"Triggers checking if goals were achieved.\n\nWorks only for offline customers.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/check_goals","href":"/api/customer-chat/v3.6/other/check-goals","autogeneratedByOpenApi":true},{"title":"Get form","description":"Returns an empty ticket form of a prechat or postchat survey.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/get_form","href":"/api/customer-chat/v3.6/other/get-form","autogeneratedByOpenApi":true},{"title":"Get predicted agent","description":"Gets the predicted agent — the one the customer will chat with when the chat starts.\n\nTo use this method, the customer needs to be logged in.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/get_predicted_agent","href":"/api/customer-chat/v3.6/other/get-predicted-agent","autogeneratedByOpenApi":true},{"title":"Get URL info","description":"Returns the info on a given URL.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/get_url_info","href":"/api/customer-chat/v3.6/other/get-url-info","autogeneratedByOpenApi":true},{"title":"Mark events as seen","description":"Marks events as seen up to a specified time.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/mark_events_as_seen","href":"/api/customer-chat/v3.6/other/mark-events-as-seen","autogeneratedByOpenApi":true},{"title":"Accept greeting","description":"Marks an incoming greeting as seen.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/accept_greeting","href":"/api/customer-chat/v3.6/other/accept-greeting","autogeneratedByOpenApi":true},{"title":"Cancel greeting","description":"Cancels a greeting (an invitation to the chat).","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/cancel_greeting","href":"/api/customer-chat/v3.6/other/cancel-greeting","autogeneratedByOpenApi":true},{"title":"Request welcome message","description":"Requests a welcome message from the system.\n\nThe response contains the predicted agent the customer will chat with once the chat starts. This method requires the customer to be logged in.\n\nThe welcome message event is sent asynchronously via the `incoming_welcome_message` push.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/request_welcome_message","href":"/api/customer-chat/v3.6/other/request-welcome-message","autogeneratedByOpenApi":true},{"title":"Send greeting button clicked","description":"Records that a customer clicked a greeting button.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/send_greeting_button_clicked","href":"/api/customer-chat/v3.6/other/send-greeting-button-clicked","autogeneratedByOpenApi":true},{"title":"Request email verification","description":"Requests the verification of the customer's email address by sending them a verification email with the identity confirmation link.\n\nOnce the customer verifies their identity, a POST callback is sent to the URL provided in the `callback_uri` parameter. The callback contains the verified email in the payload.","deprecated":null,"version":null,"openapi":"/api/customer-chat/v3.6/openapi.json post /action/request_email_verification","href":"/api/customer-chat/v3.6/other/request-email-verification","autogeneratedByOpenApi":true}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/customer-chat/v3.5/index"}]}]},{"dropdown":"Customer Chat API","icon":"comment","description":"RTM","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/customer-chat/v3.7/rtm/index"}]},{"version":"v3.6","default":true,"tag":"stable","pages":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Customer Chat RTM API","description":"Keep a customer-facing chat interface connected to Text over WebSocket and receive conversation updates as they happen.","href":"/api/customer-chat/v3.6/rtm"},{"title":"Data structures","description":"Reference of data structures available in the Customer Chat API v3.6.","href":"/api/customer-chat/v3.6/rtm/data-structures"},{"title":"Pushes","description":"Reference of push messages for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/pushes"}]},{"group":"Methods","icon":"brackets-curly","pages":[{"title":"Chats","description":"Reference of Chats methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/chats"},{"title":"Events","description":"Reference of Events methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/events"},{"title":"Properties","description":"Reference of Properties methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/properties"},{"title":"Customers","description":"Reference of Customers methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/customers"},{"title":"Status","description":"Reference of Status methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/status"},{"title":"Other","description":"Reference of other methods for the Customer Chat RTM API v3.6.","href":"/api/customer-chat/v3.6/rtm/other"}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/customer-chat/v3.5/rtm/index"}]}]},{"dropdown":"Ticketing API","icon":"ticket","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Ticketing API","description":"Integrate Text ticketing with your systems to synchronize ticket data and automate support workflows across your organization.","href":"/api/ticketing"}]},{"group":"Agents","pages":[{"title":"List agents","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/agents","href":"/api/ticketing/agents/list-agents","autogeneratedByOpenApi":true},{"title":"Create agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/agents","href":"/api/ticketing/agents/create-agent","autogeneratedByOpenApi":true},{"title":"Batch update agents","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/agents","href":"/api/ticketing/agents/batch-update-agents","autogeneratedByOpenApi":true},{"title":"Get agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/agents/{agentID}","href":"/api/ticketing/agents/get-agent","autogeneratedByOpenApi":true},{"title":"Delete agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/agents/{agentID}","href":"/api/ticketing/agents/delete-agent","autogeneratedByOpenApi":true},{"title":"Update agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/agents/{agentID}","href":"/api/ticketing/agents/update-agent","autogeneratedByOpenApi":true}]},{"group":"Canned responses","pages":[{"title":"List canned responses","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/cannedResponses","href":"/api/ticketing/canned-responses/list-canned-responses","autogeneratedByOpenApi":true},{"title":"Create canned response","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/cannedResponses","href":"/api/ticketing/canned-responses/create-canned-response","autogeneratedByOpenApi":true},{"title":"Get canned response","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/cannedResponses/{cannedResponseID}","href":"/api/ticketing/canned-responses/get-canned-response","autogeneratedByOpenApi":true},{"title":"Delete canned response","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/cannedResponses/{cannedResponseID}","href":"/api/ticketing/canned-responses/delete-canned-response","autogeneratedByOpenApi":true},{"title":"Update canned response","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/cannedResponses/{cannedResponseID}","href":"/api/ticketing/canned-responses/update-canned-response","autogeneratedByOpenApi":true}]},{"group":"Custom fields","pages":[{"title":"List custom fields","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/customFields","href":"/api/ticketing/custom-fields/list-custom-fields","autogeneratedByOpenApi":true},{"title":"Create custom field","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/customFields","href":"/api/ticketing/custom-fields/create-custom-field","autogeneratedByOpenApi":true},{"title":"Get custom field","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/customFields/{customFieldID}","href":"/api/ticketing/custom-fields/get-custom-field","autogeneratedByOpenApi":true},{"title":"Delete custom field","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/customFields/{customFieldID}","href":"/api/ticketing/custom-fields/delete-custom-field","autogeneratedByOpenApi":true},{"title":"Update custom field","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/customFields/{customFieldID}","href":"/api/ticketing/custom-fields/update-custom-field","autogeneratedByOpenApi":true}]},{"group":"Email domains","pages":[{"title":"Email domains list","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/emailDomains","href":"/api/ticketing/email-domains/email-domains-list","autogeneratedByOpenApi":true},{"title":"Create email domain","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/emailDomains","href":"/api/ticketing/email-domains/create-email-domain","autogeneratedByOpenApi":true},{"title":"Get email domain","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/emailDomains/{emailDomainID}","href":"/api/ticketing/email-domains/get-email-domain","autogeneratedByOpenApi":true},{"title":"Delete email domain","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/emailDomains/{emailDomainID}","href":"/api/ticketing/email-domains/delete-email-domain","autogeneratedByOpenApi":true},{"title":"Verify email domain","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/emailDomains/{emailDomainID}/verify","href":"/api/ticketing/email-domains/verify-email-domain","autogeneratedByOpenApi":true},{"title":"Check domain availability","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/emailDomains/available","href":"/api/ticketing/email-domains/check-domain-availability","autogeneratedByOpenApi":true}]},{"group":"Mailboxes (inboxes)","pages":[{"title":"List mailboxes","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/mailboxes","href":"/api/ticketing/mailboxes-inboxes/list-mailboxes","autogeneratedByOpenApi":true},{"title":"Create mailbox","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/mailboxes","href":"/api/ticketing/mailboxes-inboxes/create-mailbox","autogeneratedByOpenApi":true},{"title":"Get mailbox","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/mailboxes/{mailboxID}","href":"/api/ticketing/mailboxes-inboxes/get-mailbox","autogeneratedByOpenApi":true},{"title":"Delete mailbox","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/mailboxes/{mailboxID}","href":"/api/ticketing/mailboxes-inboxes/delete-mailbox","autogeneratedByOpenApi":true},{"title":"Update mailbox","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/mailboxes/{mailboxID}","href":"/api/ticketing/mailboxes-inboxes/update-mailbox","autogeneratedByOpenApi":true}]},{"group":"Licenses","pages":[{"title":"List licenses","description":"Returns list of licenses.\n\nNormally it contains only one element.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/licenses","href":"/api/ticketing/licenses/list-licenses","autogeneratedByOpenApi":true},{"title":"Create license","description":"Creates new license object.\n\nOnly required during first app login after account in Text has been created.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/licenses","href":"/api/ticketing/licenses/create-license","autogeneratedByOpenApi":true},{"title":"Get license","description":"Returns license data by `licenseID`.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/licenses/{licenseID}","href":"/api/ticketing/licenses/get-license","autogeneratedByOpenApi":true},{"title":"Update license","description":"Updates license settings.\n\n- default team\n- default template\n- company name\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/licenses/{licenseID}","href":"/api/ticketing/licenses/update-license","autogeneratedByOpenApi":true},{"title":"Send forwarding instructions","description":"Sends email with instructions on setting up email forwarding.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json put /v1/licenses/{licenseID}/forwardingInstructions","href":"/api/ticketing/licenses/send-forwarding-instructions","autogeneratedByOpenApi":true}]},{"group":"Reply addresses","pages":[{"title":"List reply addresses","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/replyAddresses","href":"/api/ticketing/reply-addresses/list-reply-addresses","autogeneratedByOpenApi":true},{"title":"Create reply address","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/replyAddresses","href":"/api/ticketing/reply-addresses/create-reply-address","autogeneratedByOpenApi":true},{"title":"Get reply address","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/replyAddresses/{replyAddressID}","href":"/api/ticketing/reply-addresses/get-reply-address","autogeneratedByOpenApi":true},{"title":"Delete reply address","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/replyAddresses/{replyAddressID}","href":"/api/ticketing/reply-addresses/delete-reply-address","autogeneratedByOpenApi":true}]},{"group":"Reports","pages":[{"title":"Create custom report","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/reports","href":"/api/ticketing/reports/create-custom-report","autogeneratedByOpenApi":true},{"title":"New tickets","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/newTickets","href":"/api/ticketing/reports/new-tickets","autogeneratedByOpenApi":true},{"title":"Ticket sources","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/ticketSources","href":"/api/ticketing/reports/ticket-sources","autogeneratedByOpenApi":true},{"title":"Ticket rating","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/rating","href":"/api/ticketing/reports/ticket-rating","autogeneratedByOpenApi":true},{"title":"Agent rating","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/agentRating","href":"/api/ticketing/reports/agent-rating","autogeneratedByOpenApi":true},{"title":"Rating per agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/ratingPerAgent","href":"/api/ticketing/reports/rating-per-agent","autogeneratedByOpenApi":true},{"title":"Rating per team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/ratingPerTeam","href":"/api/ticketing/reports/rating-per-team","autogeneratedByOpenApi":true},{"title":"Ticket status","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/status","href":"/api/ticketing/reports/ticket-status","autogeneratedByOpenApi":true},{"title":"Tickets status per agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusPerAgent","href":"/api/ticketing/reports/tickets-status-per-agent","autogeneratedByOpenApi":true},{"title":"Tickets status per team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusPerTeam","href":"/api/ticketing/reports/tickets-status-per-team","autogeneratedByOpenApi":true},{"title":"Response time","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/responseTime","href":"/api/ticketing/reports/response-time","autogeneratedByOpenApi":true},{"title":"Response time per agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/responseTimePerAgent","href":"/api/ticketing/reports/response-time-per-agent","autogeneratedByOpenApi":true},{"title":"Response time per team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/responseTimePerTeam","href":"/api/ticketing/reports/response-time-per-team","autogeneratedByOpenApi":true},{"title":"Resolution time","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/resolutionTime","href":"/api/ticketing/reports/resolution-time","autogeneratedByOpenApi":true},{"title":"Resolution time per agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/resolutionTimePerAgent","href":"/api/ticketing/reports/resolution-time-per-agent","autogeneratedByOpenApi":true},{"title":"Resolution time per team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/resolutionTimePerTeam","href":"/api/ticketing/reports/resolution-time-per-team","autogeneratedByOpenApi":true},{"title":"New tickets (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/newTickets24","href":"/api/ticketing/reports/new-tickets-24h-distribution","autogeneratedByOpenApi":true},{"title":"Ticket sources (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/ticketSources24","href":"/api/ticketing/reports/ticket-sources-24h-distribution","autogeneratedByOpenApi":true},{"title":"Ticket rating (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/rating24","href":"/api/ticketing/reports/ticket-rating-24h-distribution","autogeneratedByOpenApi":true},{"title":"Ticket status (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/status24","href":"/api/ticketing/reports/ticket-status-24h-distribution","autogeneratedByOpenApi":true},{"title":"Response time (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/responseTime24","href":"/api/ticketing/reports/response-time-24h-distribution","autogeneratedByOpenApi":true},{"title":"Resolution time (24h distribution)","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/resolutionTime24","href":"/api/ticketing/reports/resolution-time-24h-distribution","autogeneratedByOpenApi":true},{"title":"Failed outgoing emails","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/failedEmails","href":"/api/ticketing/reports/failed-outgoing-emails","autogeneratedByOpenApi":true},{"title":"Tickets status duration","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusDuration","href":"/api/ticketing/reports/tickets-status-duration","autogeneratedByOpenApi":true},{"title":"Tickets status duration total","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusDurationTotal","href":"/api/ticketing/reports/tickets-status-duration-total","autogeneratedByOpenApi":true},{"title":"Tickets status duration per agent","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusDurationPerAgent","href":"/api/ticketing/reports/tickets-status-duration-per-agent","autogeneratedByOpenApi":true},{"title":"Tickets status duration per team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/reports/statusDurationPerTeam","href":"/api/ticketing/reports/tickets-status-duration-per-team","autogeneratedByOpenApi":true}]},{"group":"Rules","pages":[{"title":"List rules","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/rules","href":"/api/ticketing/rules/list-rules","autogeneratedByOpenApi":true},{"title":"Create rule","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/rules","href":"/api/ticketing/rules/create-rule","autogeneratedByOpenApi":true},{"title":"Get rule","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/rules/{ruleID}","href":"/api/ticketing/rules/get-rule","autogeneratedByOpenApi":true},{"title":"Delete rule","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/rules/{ruleID}","href":"/api/ticketing/rules/delete-rule","autogeneratedByOpenApi":true},{"title":"Update rule","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/rules/{ruleID}","href":"/api/ticketing/rules/update-rule","autogeneratedByOpenApi":true}]},{"group":"Macros","pages":[{"title":"Macros list","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/macros","href":"/api/ticketing/macros/macros-list","autogeneratedByOpenApi":true},{"title":"Create macro","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/macros","href":"/api/ticketing/macros/create-macro","autogeneratedByOpenApi":true},{"title":"Get macro","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/macros/{macroID}","href":"/api/ticketing/macros/get-macro","autogeneratedByOpenApi":true},{"title":"Delete macro","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/macros/{macroID}","href":"/api/ticketing/macros/delete-macro","autogeneratedByOpenApi":true},{"title":"Update macro","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/macros/{macroID}","href":"/api/ticketing/macros/update-macro","autogeneratedByOpenApi":true}]},{"group":"Spam management","pages":[{"title":"List trusted emails","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/trustedEmails","href":"/api/ticketing/spam-management/list-trusted-emails","autogeneratedByOpenApi":true},{"title":"Trust an email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/trustedEmails","href":"/api/ticketing/spam-management/trust-an-email","autogeneratedByOpenApi":true},{"title":"Get trusted email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/trustedEmails/{trustedEmailID}","href":"/api/ticketing/spam-management/get-trusted-email","autogeneratedByOpenApi":true},{"title":"Remove trusted email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/trustedEmails/{trustedEmailID}","href":"/api/ticketing/spam-management/remove-trusted-email","autogeneratedByOpenApi":true},{"title":"List blocked emails","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/blockedEmails","href":"/api/ticketing/spam-management/list-blocked-emails","autogeneratedByOpenApi":true},{"title":"Block an email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/blockedEmails","href":"/api/ticketing/spam-management/block-an-email","autogeneratedByOpenApi":true},{"title":"Get blocked email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/blockedEmails/{blockedEmailID}","href":"/api/ticketing/spam-management/get-blocked-email","autogeneratedByOpenApi":true},{"title":"Remove blocked email","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/blockedEmails/{blockedEmailID}","href":"/api/ticketing/spam-management/remove-blocked-email","autogeneratedByOpenApi":true}]},{"group":"Tags","pages":[{"title":"List tags","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/tags","href":"/api/ticketing/tags/list-tags","autogeneratedByOpenApi":true},{"title":"Create tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tags","href":"/api/ticketing/tags/create-tag","autogeneratedByOpenApi":true},{"title":"Get tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/tags/{tagID}","href":"/api/ticketing/tags/get-tag","autogeneratedByOpenApi":true},{"title":"Delete tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tags/{tagID}","href":"/api/ticketing/tags/delete-tag","autogeneratedByOpenApi":true},{"title":"Update tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/tags/{tagID}","href":"/api/ticketing/tags/update-tag","autogeneratedByOpenApi":true}]},{"group":"Teams","pages":[{"title":"List teams","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/teams","href":"/api/ticketing/teams/list-teams","autogeneratedByOpenApi":true},{"title":"Create team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/teams","href":"/api/ticketing/teams/create-team","autogeneratedByOpenApi":true},{"title":"Update teams","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/teams","href":"/api/ticketing/teams/update-teams","autogeneratedByOpenApi":true},{"title":"Get team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/teams/{teamID}","href":"/api/ticketing/teams/get-team","autogeneratedByOpenApi":true},{"title":"Delete team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/teams/{teamID}","href":"/api/ticketing/teams/delete-team","autogeneratedByOpenApi":true},{"title":"Update team","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/teams/{teamID}","href":"/api/ticketing/teams/update-team","autogeneratedByOpenApi":true}]},{"group":"Templates","pages":[{"title":"List templates","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/templates","href":"/api/ticketing/templates/list-templates","autogeneratedByOpenApi":true},{"title":"Create template","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/templates","href":"/api/ticketing/templates/create-template","autogeneratedByOpenApi":true},{"title":"Get template","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/templates/{templateID}","href":"/api/ticketing/templates/get-template","autogeneratedByOpenApi":true},{"title":"Delete template","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/templates/{templateID}","href":"/api/ticketing/templates/delete-template","autogeneratedByOpenApi":true},{"title":"Update template","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/templates/{templateID}","href":"/api/ticketing/templates/update-template","autogeneratedByOpenApi":true},{"title":"Send test message","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/templates/sendTestMessage","href":"/api/ticketing/templates/send-test-message","autogeneratedByOpenApi":true},{"title":"Generate template preview","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/templates/preview","href":"/api/ticketing/templates/generate-template-preview","autogeneratedByOpenApi":true}]},{"group":"Audit log","pages":[{"title":"Returns audit log events","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/auditLog","href":"/api/ticketing/audit-log/returns-audit-log-events","autogeneratedByOpenApi":true}]},{"group":"Tickets","pages":[{"title":"List tickets","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/tickets","href":"/api/ticketing/tickets/list-tickets","autogeneratedByOpenApi":true},{"title":"Create ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tickets","href":"/api/ticketing/tickets/create-ticket","autogeneratedByOpenApi":true},{"title":"Get ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/tickets/{ticketID}","href":"/api/ticketing/tickets/get-ticket","autogeneratedByOpenApi":true},{"title":"Delete ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tickets/{ticketID}","href":"/api/ticketing/tickets/delete-ticket","autogeneratedByOpenApi":true},{"title":"Update ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/tickets/{ticketID}","href":"/api/ticketing/tickets/update-ticket","autogeneratedByOpenApi":true},{"title":"Add tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tickets/{ticketID}/tags","href":"/api/ticketing/tickets/add-tag","autogeneratedByOpenApi":true},{"title":"Remove tag","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tickets/{ticketID}/tags/{tagID}","href":"/api/ticketing/tickets/remove-tag","autogeneratedByOpenApi":true},{"title":"Add followers","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tickets/{ticketID}/followers","href":"/api/ticketing/tickets/add-followers","autogeneratedByOpenApi":true},{"title":"Remove follower","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tickets/{ticketID}/followers/{followerID}","href":"/api/ticketing/tickets/remove-follower","autogeneratedByOpenApi":true},{"title":"Merge ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tickets/{ticketID}/childTickets","href":"/api/ticketing/tickets/merge-ticket","autogeneratedByOpenApi":true},{"title":"Unmerge ticket","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tickets/{ticketID}/childTickets/{childTicketID}","href":"/api/ticketing/tickets/unmerge-ticket","autogeneratedByOpenApi":true},{"title":"Send rating request","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/tickets/{ticketID}/ratingRequests","href":"/api/ticketing/tickets/send-rating-request","autogeneratedByOpenApi":true},{"title":"Get original message content","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/tickets/{ticketID}/events/{eventID}/originalContent","href":"/api/ticketing/tickets/get-original-message-content","autogeneratedByOpenApi":true},{"title":"Move ticket to silo","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json put /v1/tickets/{ticketID}/silo","href":"/api/ticketing/tickets/move-ticket-to-silo","autogeneratedByOpenApi":true},{"title":"Delete tickets attachment","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/tickets/{ticketID}/events/{eventID}/attachments/{attachmentID}","href":"/api/ticketing/tickets/delete-tickets-attachment","autogeneratedByOpenApi":true}]},{"group":"Transactions","pages":[{"title":"Create transaction","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/transactions","href":"/api/ticketing/transactions/create-transaction","autogeneratedByOpenApi":true},{"title":"Get transaction","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/transactions/{transactionID}","href":"/api/ticketing/transactions/get-transaction","autogeneratedByOpenApi":true},{"title":"Upload attachment","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/transactions/{transactionID}/attachments","href":"/api/ticketing/transactions/upload-attachment","autogeneratedByOpenApi":true},{"title":"Delete attachment","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/transactions/{transactionID}/attachments/{attachmentID}","href":"/api/ticketing/transactions/delete-attachment","autogeneratedByOpenApi":true}]},{"group":"Views","pages":[{"title":"Views list","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/views","href":"/api/ticketing/views/views-list","autogeneratedByOpenApi":true},{"title":"Create view","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/views","href":"/api/ticketing/views/create-view","autogeneratedByOpenApi":true},{"title":"Get view","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/views/{viewID}","href":"/api/ticketing/views/get-view","autogeneratedByOpenApi":true},{"title":"Delete view","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/views/{viewID}","href":"/api/ticketing/views/delete-view","autogeneratedByOpenApi":true},{"title":"Update view","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/views/{viewID}","href":"/api/ticketing/views/update-view","autogeneratedByOpenApi":true}]},{"group":"Webhooks","pages":[{"title":"Webhooks list","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/webhooks","href":"/api/ticketing/webhooks/webhooks-list","autogeneratedByOpenApi":true},{"title":"Create webhook","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/webhooks","href":"/api/ticketing/webhooks/create-webhook","autogeneratedByOpenApi":true},{"title":"Get webhook","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json get /v1/webhooks/{webhookID}","href":"/api/ticketing/webhooks/get-webhook","autogeneratedByOpenApi":true},{"title":"Delete webhook","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json delete /v1/webhooks/{webhookID}","href":"/api/ticketing/webhooks/delete-webhook","autogeneratedByOpenApi":true},{"title":"Update webhook","description":null,"deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json patch /v1/webhooks/{webhookID}","href":"/api/ticketing/webhooks/update-webhook","autogeneratedByOpenApi":true}]},{"group":"Imported tickets","pages":[{"title":"Create imported ticket","description":"$48","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/importedTickets","href":"/api/ticketing/imported-tickets/create-imported-ticket","autogeneratedByOpenApi":true},{"title":"Create imported ticket transaction","description":"Creates new import transaction.\n\nTransaction ID is required for ticket creation with attachments.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/importedTickets/transactions","href":"/api/ticketing/imported-tickets/create-imported-ticket-transaction","autogeneratedByOpenApi":true},{"title":"Upload attachments for imported ticket","description":"Uploads attachments for imported ticket.\n\nAttachments are required for ticket creation with attachments.\n\nUse multipart with `attachments` as key. Multiple files are allowed.\n","deprecated":null,"version":null,"openapi":"/api/ticketing/openapi.json post /v1/importedTickets/attachments","href":"/api/ticketing/imported-tickets/upload-attachments-for-imported-ticket","autogeneratedByOpenApi":true}]}]},{"dropdown":"Configuration API","icon":"gear","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/configuration/v3.7/index"}]},{"version":"v3.6","default":true,"tag":"stable","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Configuration API","description":"Manage the organization-wide accounts, settings, and rules used to handle customer conversations in Text.","href":"/api/configuration/v3.6"}]},{"group":"Agents","pages":[{"title":"Create agent","description":"Creates a new agent with specified parameters within a license.\n\nCan be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_agent","href":"/api/configuration/v3.6/agents/create-agent","autogeneratedByOpenApi":true},{"title":"Get agent","description":"Returns the info about an agent specified by `id`.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_agent","href":"/api/configuration/v3.6/agents/get-agent","autogeneratedByOpenApi":true},{"title":"List agents","description":"Returns all agents within a license.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_agents","href":"/api/configuration/v3.6/agents/list-agents","autogeneratedByOpenApi":true},{"title":"Update agent","description":"Updates the properties of an agent specified by `id`.\n\nCan be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_agent","href":"/api/configuration/v3.6/agents/update-agent","autogeneratedByOpenApi":true},{"title":"Delete agent","description":"Deletes an agent specified by `id`.\n\nCan be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_agent","href":"/api/configuration/v3.6/agents/delete-agent","autogeneratedByOpenApi":true},{"title":"Suspend agent","description":"Suspends an agent specified by `id`.\n\nThis method is not yet available for public use. Can be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/suspend_agent","href":"/api/configuration/v3.6/agents/suspend-agent","autogeneratedByOpenApi":true},{"title":"Unsuspend agent","description":"Unsuspends an agent specified by `id`.\n\nThis method is not yet available for public use. Can be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/unsuspend_agent","href":"/api/configuration/v3.6/agents/unsuspend-agent","autogeneratedByOpenApi":true},{"title":"Request agent unsuspension","description":"Sends emails to license owners and vice owners with an unsuspension request.\n\nCan be used by a suspended agent.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/request_agent_unsuspension","href":"/api/configuration/v3.6/agents/request-agent-unsuspension","autogeneratedByOpenApi":true},{"title":"Approve agent","description":"Approves an agent, allowing the agent to use the application.\n\nThis method is not yet available for public use. Can be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/approve_agent","href":"/api/configuration/v3.6/agents/approve-agent","autogeneratedByOpenApi":true}]},{"group":"Auto access","pages":[{"title":"Add auto access","description":"Creates an auto access rule.\n\nAn auto access rule is a set of conditions for the tracking URL and geolocation of a customer. Auto access rules are ordered using a linked list; each rule points to the next element via the `next_id` field.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/add_auto_access","href":"/api/configuration/v3.6/auto-access/add-auto-access","autogeneratedByOpenApi":true},{"title":"List auto accesses","description":"Returns all existing auto access data structures.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_auto_accesses","href":"/api/configuration/v3.6/auto-access/list-auto-accesses","autogeneratedByOpenApi":true},{"title":"Delete auto access","description":"Deletes an existing auto access data structure specified by its ID.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_auto_access","href":"/api/configuration/v3.6/auto-access/delete-auto-access","autogeneratedByOpenApi":true},{"title":"Update auto access","description":"Updates an existing auto access rule.\n\nOnly specified fields are updated (overwritten), leaving unspecified fields unchanged. Modifying `next_id` moves the auto access specified by `id` before the auto access specified by `next_id`. If `next_id` is an empty string, the auto access is placed at the end of the list. Omit `next_id` entirely if no reordering is needed.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_auto_access","href":"/api/configuration/v3.6/auto-access/update-auto-access","autogeneratedByOpenApi":true}]},{"group":"Bots","pages":[{"title":"Create bot template","description":"Creates a bot template for the Client ID provided in the request.\n\nOne Client ID can register up to five bot templates. A bot based on a template will be automatically created on the license when the application is installed. Such a bot will have the same ID as the bot template. If the application is already installed on the license, the bot will be created only if `affect_existing_installations` is set to `true`.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_bot_template","href":"/api/configuration/v3.6/bots/create-bot-template","autogeneratedByOpenApi":true},{"title":"Create bot","description":"Creates a new bot.\n\nTo make the bot available for receiving chats or webhooks, use the Set Routing Status method. Can be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_bot","href":"/api/configuration/v3.6/bots/create-bot","autogeneratedByOpenApi":true},{"title":"Delete bot template","description":"Deletes a bot template.\n\nThe bots associated with the template will be deleted only if `affect_existing_installations` is set to `true`.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_bot_template","href":"/api/configuration/v3.6/bots/delete-bot-template","autogeneratedByOpenApi":true},{"title":"Delete bot","description":"Deletes a bot specified by `id`.\n\nCan be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_bot","href":"/api/configuration/v3.6/bots/delete-bot","autogeneratedByOpenApi":true},{"title":"Update bot template","description":"Updates an existing bot template.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_bot_template","href":"/api/configuration/v3.6/bots/update-bot-template","autogeneratedByOpenApi":true},{"title":"Update bot","description":"Updates an existing bot.\n\nCan be [sent in batch](/api/configuration/v3.6/batch-requests).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_bot","href":"/api/configuration/v3.6/bots/update-bot","autogeneratedByOpenApi":true},{"title":"List bot templates","description":"Returns the list of bot templates created for a Client ID (application).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_bot_templates","href":"/api/configuration/v3.6/bots/list-bot-templates","autogeneratedByOpenApi":true},{"title":"List bots","description":"Returns the list of bots created within a license.\n\nThe method behavior differs depending on who created the bot and what authorization method is used for the call.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_bots","href":"/api/configuration/v3.6/bots/list-bots","autogeneratedByOpenApi":true},{"title":"Get bot","description":"Returns the info about a bot with a given `id`.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_bot","href":"/api/configuration/v3.6/bots/get-bot","autogeneratedByOpenApi":true},{"title":"Issue bot token","description":"Issues a new token for the bot.\n\nThe token is valid for 24 hours and cannot be revoked. The token has the following scopes that allow chatting: `chats--access:rw`, `agents-bot--my:rw`, `customers:rw`. The required `bot_secret` is returned in the Create Bot Template and Create Bot methods. If you lost the secret, you can reset it using the Reset Bot Template Secret or Reset Bot Secret methods.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/issue_bot_token","href":"/api/configuration/v3.6/bots/issue-bot-token","autogeneratedByOpenApi":true},{"title":"Reset bot template secret","description":"Resets the secret for a given bot template.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/reset_bot_template_secret","href":"/api/configuration/v3.6/bots/reset-bot-template-secret","autogeneratedByOpenApi":true},{"title":"Reset bot secret","description":"Resets the secret for a given bot.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/reset_bot_secret","href":"/api/configuration/v3.6/bots/reset-bot-secret","autogeneratedByOpenApi":true}]},{"group":"Customer bans","pages":[{"title":"List customer bans","description":"Returns all active bans for a customer.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_customer_bans","href":"/api/configuration/v3.6/customer-bans/list-customer-bans","autogeneratedByOpenApi":true},{"title":"Unban customer","description":"Lifts a ban from a customer.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/unban_customer","href":"/api/configuration/v3.6/customer-bans/unban-customer","autogeneratedByOpenApi":true}]},{"group":"Greetings","pages":[{"title":"Create greeting","description":"Creates a new greeting.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_greeting","href":"/api/configuration/v3.6/greetings/create-greeting","autogeneratedByOpenApi":true},{"title":"Update greeting","description":"Updates the properties of a greeting.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_greeting","href":"/api/configuration/v3.6/greetings/update-greeting","autogeneratedByOpenApi":true},{"title":"Delete greeting","description":"Deletes a greeting.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_greeting","href":"/api/configuration/v3.6/greetings/delete-greeting","autogeneratedByOpenApi":true},{"title":"List greetings","description":"Returns a list of greetings.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_greetings","href":"/api/configuration/v3.6/greetings/list-greetings","autogeneratedByOpenApi":true},{"title":"Get greeting","description":"Returns the details of a specific greeting.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_greeting","href":"/api/configuration/v3.6/greetings/get-greeting","autogeneratedByOpenApi":true}]},{"group":"Groups","pages":[{"title":"Create group","description":"Creates a new group.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_group","href":"/api/configuration/v3.6/groups/create-group","autogeneratedByOpenApi":true},{"title":"Update group","description":"Updates an existing group.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_group","href":"/api/configuration/v3.6/groups/update-group","autogeneratedByOpenApi":true},{"title":"Delete group","description":"Deletes an existing group.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_group","href":"/api/configuration/v3.6/groups/delete-group","autogeneratedByOpenApi":true},{"title":"List groups","description":"Lists all the existing groups.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_groups","href":"/api/configuration/v3.6/groups/list-groups","autogeneratedByOpenApi":true},{"title":"Get group","description":"Returns details about a group specified by its `id`.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_group","href":"/api/configuration/v3.6/groups/get-group","autogeneratedByOpenApi":true}]},{"group":"Properties","pages":[{"title":"Register property","description":"Registers a new private property for a given Client Id.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/register_property","href":"/api/configuration/v3.6/properties/register-property","autogeneratedByOpenApi":true},{"title":"Unregister property","description":"Unregisters a private property.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/unregister_property","href":"/api/configuration/v3.6/properties/unregister-property","autogeneratedByOpenApi":true},{"title":"Publish property","description":"Publishes a private property.\n\nA published property cannot be unpublished or unregistered. Published properties can be accessed by tokens belonging to any Client Id.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/publish_property","href":"/api/configuration/v3.6/properties/publish-property","autogeneratedByOpenApi":true},{"title":"List properties","description":"Lists private and public properties owned by a given Client Id.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_properties","href":"/api/configuration/v3.6/properties/list-properties","autogeneratedByOpenApi":true},{"title":"Update license properties","description":"Updates a property value within a license.\n\nDoesn't overwrite existing values.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_license_properties","href":"/api/configuration/v3.6/properties/update-license-properties","autogeneratedByOpenApi":true},{"title":"List license properties","description":"Returns the properties set within a license.\n\nFor properties without an explicit value assignment, the method will return the default values (if they exist).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_license_properties","href":"/api/configuration/v3.6/properties/list-license-properties","autogeneratedByOpenApi":true},{"title":"Delete license properties","description":"Deletes the properties set within a license.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_license_properties","href":"/api/configuration/v3.6/properties/delete-license-properties","autogeneratedByOpenApi":true},{"title":"Update group properties","description":"Updates a property value within a group as the property location.\n\nDoesn't overwrite existing values.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_group_properties","href":"/api/configuration/v3.6/properties/update-group-properties","autogeneratedByOpenApi":true},{"title":"List groups properties","description":"Returns the properties set within specified groups.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_groups_properties","href":"/api/configuration/v3.6/properties/list-groups-properties","autogeneratedByOpenApi":true},{"title":"Delete group properties","description":"Deletes the properties set within a group.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_group_properties","href":"/api/configuration/v3.6/properties/delete-group-properties","autogeneratedByOpenApi":true}]},{"group":"Tags","pages":[{"title":"Create tag","description":"Creates a new tag.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_tag","href":"/api/configuration/v3.6/tags/create-tag","autogeneratedByOpenApi":true},{"title":"Delete tag","description":"Deletes an existing tag.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_tag","href":"/api/configuration/v3.6/tags/delete-tag","autogeneratedByOpenApi":true},{"title":"List tags","description":"Lists the existing tags.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_tags","href":"/api/configuration/v3.6/tags/list-tags","autogeneratedByOpenApi":true},{"title":"Update tag","description":"Updates an existing tag.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_tag","href":"/api/configuration/v3.6/tags/update-tag","autogeneratedByOpenApi":true}]},{"group":"Webhooks","pages":[{"title":"Register webhook","description":"Registers a webhook for the Client ID provided in the request.\n\nOne Client ID can register up to three webhooks for every `action`. The `license` webhooks are enabled automatically when the webhook is regisered.\n\nFor `bot` webhooks, you need to create a bot, register webhooks, and then call Set Routing Status.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/register_webhook","href":"/api/configuration/v3.6/webhooks/register-webhook","autogeneratedByOpenApi":true},{"title":"List webhooks","description":"Lists all webhooks registered for the given Client ID.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_webhooks","href":"/api/configuration/v3.6/webhooks/list-webhooks","autogeneratedByOpenApi":true},{"title":"Unregister webhook","description":"Unregisters a webhook previously registered for a Client ID (application).","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/unregister_webhook","href":"/api/configuration/v3.6/webhooks/unregister-webhook","autogeneratedByOpenApi":true},{"title":"List webhook names","description":"Lists all webhooks that are supported in a given API version.\n\nThis method requires no authorization.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_webhook_names","href":"/api/configuration/v3.6/webhooks/list-webhook-names","autogeneratedByOpenApi":true},{"title":"Enable license webhooks","description":"Enables webhooks that were disabled via Disable License Webhooks.\n\nUse this method only if you disabled the webhooks on the license via Disable License Webhooks. Otherwise, the webhooks will be automatically enabled when the associated application is installed on the license.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/enable_license_webhooks","href":"/api/configuration/v3.6/webhooks/enable-license-webhooks","autogeneratedByOpenApi":true},{"title":"Disable license webhooks","description":"Disables the webhooks on the license.\n\nThe webhooks will stay disabled even after the associated application is reinstalled. To enable the webhooks again (and to rely on automatic webhooks enablement), use Enable License Webhooks.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/disable_license_webhooks","href":"/api/configuration/v3.6/webhooks/disable-license-webhooks","autogeneratedByOpenApi":true},{"title":"Get license webhooks state","description":"Returns the state of webhooks registered for a given Client ID on the license associated with the access token.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_license_webhooks_state","href":"/api/configuration/v3.6/webhooks/get-license-webhooks-state","autogeneratedByOpenApi":true}]},{"group":"Canned responses","pages":[{"title":"Create canned response","description":"Creates a canned response.\n\nThe `text` field is sanitized on creation. If sanitization removes all content and the input becomes empty, the system rejects the request as invalid.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/create_canned_response","href":"/api/configuration/v3.6/canned-responses/create-canned-response","autogeneratedByOpenApi":true},{"title":"Update canned response","description":"Updates a canned response.\n\nThe `text` field is sanitized on update. If sanitization removes all content and the input becomes empty, the system rejects the request as invalid.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_canned_response","href":"/api/configuration/v3.6/canned-responses/update-canned-response","autogeneratedByOpenApi":true},{"title":"List canned responses","description":"Returns a paginated list of canned responses.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_canned_responses","href":"/api/configuration/v3.6/canned-responses/list-canned-responses","autogeneratedByOpenApi":true},{"title":"Delete canned response","description":"Deletes a canned response.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/delete_canned_response","href":"/api/configuration/v3.6/canned-responses/delete-canned-response","autogeneratedByOpenApi":true}]},{"group":"Other","pages":[{"title":"List channels","description":"Returns the summary of communication channels for your Text product.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/list_channels","href":"/api/configuration/v3.6/other/list-channels","autogeneratedByOpenApi":true},{"title":"Check product limits for plan","description":"Compares your organization's current resources against a given plan and returns those that exceed its limits.\n\nUseful when considering downgrading the plan.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/check_product_limits_for_plan","href":"/api/configuration/v3.6/other/check-product-limits-for-plan","autogeneratedByOpenApi":true},{"title":"Get product source","description":"Retrieves the `source` parameters that were passed when activating the Text product.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/get_product_source","href":"/api/configuration/v3.6/other/get-product-source","autogeneratedByOpenApi":true},{"title":"Reactivate email","description":"Reactivates email if it has been bounced.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/reactivate_email","href":"/api/configuration/v3.6/other/reactivate-email","autogeneratedByOpenApi":true},{"title":"Update company details","description":"Updates company details of the license.","deprecated":null,"version":null,"openapi":"/api/configuration/v3.6/openapi.json post /action/update_company_details","href":"/api/configuration/v3.6/other/update-company-details","autogeneratedByOpenApi":true}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/configuration/v3.5/index"}]}]},{"dropdown":"Customer Data Platform API","icon":"database","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Customer Data Platform API","description":"Store persistent customer profile data in Text, keep customer records up to date, and make that context available across conversations.","href":"/api/customer-data-platform"}]},{"group":"Customers","pages":[{"title":"Get customer","description":"Returns the customer data.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /get_customer","href":"/api/customer-data-platform/customers/get-customer","autogeneratedByOpenApi":true},{"title":"Get merged customer","description":"Returns the merged customer data.\n\nFor more information, see [Customer identities and merged customers](/api/customer-data-platform#customer-identities-and-merged-customers).","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /get_merged_customer","href":"/api/customer-data-platform/customers/get-merged-customer","autogeneratedByOpenApi":true},{"title":"Get merged customer chat IDs","description":"Returns the merged customer chat IDs.\n\nFor more information, see [Customer identities and merged customers](/api/customer-data-platform#customer-identities-and-merged-customers).","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /get_merged_customer_chats","href":"/api/customer-data-platform/customers/get-merged-customer-chat-ids","autogeneratedByOpenApi":true},{"title":"Get merged customer ticket IDs","description":"Returns the merged customer ticket IDs.\n\nFor more information, see [Customer identities and merged customers](/api/customer-data-platform#customer-identities-and-merged-customers).","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /get_merged_customer_tickets","href":"/api/customer-data-platform/customers/get-merged-customer-ticket-ids","autogeneratedByOpenApi":true},{"title":"List customers","description":"Searches and lists customers with filtering, sorting, and pagination.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/list_customers","href":"/api/customer-data-platform/customers/list-customers","autogeneratedByOpenApi":true},{"title":"Get customers count","description":"Returns a count of customers matching the specified search criteria.\n\nThe request accepts the same `query` and `filters` fields as [List customers](/api/customer-data-platform/customers/list-customers).","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/get_customers_count","href":"/api/customer-data-platform/customers/get-customers-count","autogeneratedByOpenApi":true},{"title":"Has sales events","description":"Returns whether the organization has recorded any sales activity.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/has_sales_events","href":"/api/customer-data-platform/customers/has-sales-events","autogeneratedByOpenApi":true},{"title":"Update customer","description":"Updates the relationship level for the specified customer.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/update_customer","href":"/api/customer-data-platform/customers/update-customer","autogeneratedByOpenApi":true}]},{"group":"Customer properties","pages":[{"title":"Create customer property definition","description":"Creates a customer property definition for the organization.\n\nThe organization's plan determines the maximum number of customer properties.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/create_customer_property_definition","href":"/api/customer-data-platform/customer-properties/create-customer-property-definition","autogeneratedByOpenApi":true},{"title":"Update customer property definition","description":"Updates the editable fields of a customer property definition.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/update_customer_property_definition","href":"/api/customer-data-platform/customer-properties/update-customer-property-definition","autogeneratedByOpenApi":true},{"title":"Delete customer property definition","description":"Deletes a customer property definition.\n\nResponses that list property definitions no longer include the deleted definition.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/delete_customer_property_definition","href":"/api/customer-data-platform/customer-properties/delete-customer-property-definition","autogeneratedByOpenApi":true},{"title":"List customer property definitions","description":"Returns all customer property definitions for the organization.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/get_customer_properties_definitions","href":"/api/customer-data-platform/customer-properties/list-customer-property-definitions","autogeneratedByOpenApi":true},{"title":"Set customer properties values","description":"Sets one or more customer properties' values for the specified customer.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/set_customer_properties_values","href":"/api/customer-data-platform/customer-properties/set-customer-properties-values","autogeneratedByOpenApi":true}]},{"group":"Segments","pages":[{"title":"Get segment definitions","description":"Returns every active segment definition for the organization.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/get_segment_definitions","href":"/api/customer-data-platform/segments/get-segment-definitions","autogeneratedByOpenApi":true},{"title":"Create segment definition","description":"Creates a custom segment definition, creates the qualified lead definition, or restores a deleted lead or qualified lead definition.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/create_segment_definition","href":"/api/customer-data-platform/segments/create-segment-definition","autogeneratedByOpenApi":true},{"title":"Update segment definition","description":"Replaces the complete tree of a segment definition.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/update_segment_definition","href":"/api/customer-data-platform/segments/update-segment-definition","autogeneratedByOpenApi":true},{"title":"Delete segment definition","description":"Soft-deletes a custom, lead, or qualified lead segment definition.\n\nThe deleted definition stops being evaluated and is absent from `get_segment_definitions`, which can leave the organization with no definitions. Customer memberships associated with the definition are preserved. The service does not reuse a custom ID. Use `create_segment_definition` to restore a deleted lead or qualified lead definition.","deprecated":null,"version":null,"openapi":"/api/customer-data-platform/openapi.json post /v1/delete_segment_definition","href":"/api/customer-data-platform/segments/delete-segment-definition","autogeneratedByOpenApi":true}]}]},{"dropdown":"Product Directory API","icon":"boxes-stacked","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Product Directory API","description":"Upload and maintain your product catalog in Text so AI Agents can access product information during customer conversations.","href":"/api/product-directory"}]},{"group":"Catalog","pages":[{"title":"Upload a product catalog","description":"Uploads a JSON file containing a product catalog.\n\nTo update the product catalog, upload a file with the updated product data.","deprecated":null,"version":null,"openapi":"/api/product-directory/openapi.json post /v1/catalogs/imports","href":"/api/product-directory/catalog/upload-a-product-catalog","autogeneratedByOpenApi":true},{"title":"Check import status","description":"Returns the processing status of a catalog import.","deprecated":null,"version":null,"openapi":"/api/product-directory/openapi.json get /v1/catalogs/imports/{job_id}","href":"/api/product-directory/catalog/check-import-status","autogeneratedByOpenApi":true},{"title":"List catalogs","description":"Returns the product catalogs in the organization.\n\n Only one product catalog is supported per organization.","deprecated":null,"version":null,"openapi":"/api/product-directory/openapi.json get /v1/catalogs","href":"/api/product-directory/catalog/list-catalogs","autogeneratedByOpenApi":true},{"title":"Get catalog details","description":"Returns the status of a catalog's first import and its current product count.\n\n To track an import already in progress, poll [Check import status](/api/product-directory/catalog/check-import-status) instead — the `status` field returned here doesn't change on later uploads.","deprecated":null,"version":null,"openapi":"/api/product-directory/openapi.json get /v1/catalogs/{catalog_id}","href":"/api/product-directory/catalog/get-catalog-details","autogeneratedByOpenApi":true}]},{"group":"Products","pages":[{"title":"Delete a product","description":"Removes a single product from the catalog.\n\nDeleting a product that's already gone still returns a success response — the endpoint is idempotent.","deprecated":null,"version":null,"openapi":"/api/product-directory/openapi.json delete /v1/catalogs/{catalog_id}/products/{product_id}","href":"/api/product-directory/products/delete-a-product","autogeneratedByOpenApi":true}]}]},{"dropdown":"Global Accounts API","icon":"users","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Global Accounts API","description":"Manage accounts and organizations while controlling identity, access, and authentication throughout the entire Text ecosystem.","href":"/api/global-accounts"}]},{"group":"Accounts","pages":[{"title":"List accounts","description":"Accounts are listed by using `organization_id` obtained from the access token.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /accounts","href":"/api/global-accounts/accounts/list-accounts","autogeneratedByOpenApi":true},{"title":"Create a new account","description":"Create an account for a given `organization_id`.\n\nThis endpoint is idempotent.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /accounts","href":"/api/global-accounts/accounts/create-a-new-account","autogeneratedByOpenApi":true},{"title":"Get an account","description":"Get an account for a given `account_id`.\n\nThe ID can be replaced with `me` to get the account that performs the request. To get an account along with its role, you need the `accounts.roles--all:ro` scope.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /accounts/{account_id}","href":"/api/global-accounts/accounts/get-an-account","autogeneratedByOpenApi":true},{"title":"Delete an account","description":"Deletes an account for a given `account_id`.\n\nThe ID can be replaced with `me` to delete the account that performs the request.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /accounts/{account_id}","href":"/api/global-accounts/accounts/delete-an-account","autogeneratedByOpenApi":true},{"title":"Update an account","description":"Update an account for a given `account_id`.\n\nThe ID can be replaced with `me` to update the account that performs the request. To set a role for an account, you need the `accounts.roles--all:rw` scope.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json patch /accounts/{account_id}","href":"/api/global-accounts/accounts/update-an-account","autogeneratedByOpenApi":true},{"title":"Set account roles","description":"Set or delete roles for a given `account_id`.\n\nSet overwrites a role group in case of conflicts.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json put /accounts/{account_id}/roles","href":"/api/global-accounts/accounts/set-account-roles","autogeneratedByOpenApi":true},{"title":"Set a password","description":"Sets a new password.\n\nA successful call revokes all session tokens. It's possible to set a password for other accounts only when they belong to a single organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /accounts/{account_id}/password/reset","href":"/api/global-accounts/accounts/set-a-password","autogeneratedByOpenApi":true},{"title":"Get an account invitations","description":"Returns all invitations issued within an organization.\n\nIf the `email` parameter is provided, it returns only the invitations sent for the account assigned with the `email` (within the requester's organization).","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /accounts/invitations","href":"/api/global-accounts/accounts/get-an-account-invitations","autogeneratedByOpenApi":true},{"title":"Create an account invitation","description":"Create an account invitation for the given `email`, `organization_id`, and `product`.\n\nAfter the successful creation, it sends an email to all users with the invitation approval scopes, informing them about the new account awaiting the approval. `organization_id` and `creator_id` are retrieved from the access token.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /accounts/invitations","href":"/api/global-accounts/accounts/create-an-account-invitation","autogeneratedByOpenApi":true},{"title":"Approve an account invitation","description":"Approve an account invitation.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json put /accounts/invitations/{invitation_id}","href":"/api/global-accounts/accounts/approve-an-account-invitation","autogeneratedByOpenApi":true},{"title":"Decline an account invitation","description":"Decline and delete an account invitation.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /accounts/invitations/{invitation_id}","href":"/api/global-accounts/accounts/decline-an-account-invitation","autogeneratedByOpenApi":true}]},{"group":"Roles","pages":[{"title":"List roles","description":"List the roles available for an organization.\n\nThe result combines predefined and user-defined roles.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /roles","href":"/api/global-accounts/roles/list-roles","autogeneratedByOpenApi":true},{"title":"Get a role","description":"Get a single role for a given `role_id`.\n\nThe role is returned with the scopes assigned to it.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /roles/{role_id}","href":"/api/global-accounts/roles/get-a-role","autogeneratedByOpenApi":true},{"title":"Delete a role","description":"Delete a single role for a given `role_id`.\n\nOnly the `custom` role can be deleted. All tokens related to a given role will be revoked.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /roles/{role_id}","href":"/api/global-accounts/roles/delete-a-role","autogeneratedByOpenApi":true}]},{"group":"Sessions","pages":[{"title":"List sessions","description":"Returns all sessions for a given account ID.\n\nThe account ID is obtained from an authorization grant.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /sessions","href":"/api/global-accounts/sessions/list-sessions","autogeneratedByOpenApi":true},{"title":"Remove all sessions","description":"Removes all sessions for a given account ID.\n\nThe account ID is obtained from an authorization grant. It's impossible to remove a session for other accounts. All access tokens related to the sessions will be revoked.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /sessions","href":"/api/global-accounts/sessions/remove-all-sessions","autogeneratedByOpenApi":true},{"title":"Remove a session","description":"Removes a specific session for a given account ID.\n\nThe account ID is obtained from an authorization grant. It's impossible to remove a session for other accounts. All access tokens related to the sessions will be revoked.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /sessions/{session_id}","href":"/api/global-accounts/sessions/remove-a-session","autogeneratedByOpenApi":true}]},{"group":"Organizations","pages":[{"title":"List organizations","description":"Lists all organizations that an account belongs to, based on authorization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /organizations","href":"/api/global-accounts/organizations/list-organizations","autogeneratedByOpenApi":true},{"title":"Create an organization","description":"Creates an organization and an account.\n\nCalling this endpoint won't result in email notifications. Alternatively, you can use Bearer/Basic authorization instead of creating a new account for an organization; it will create a new organization for the account associated with the token.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /organizations","href":"/api/global-accounts/organizations/create-an-organization","autogeneratedByOpenApi":true},{"title":"Get an organization","description":"Returns a single organization based on the provided organization ID.\n\nYou can use `my` instead of an ID to get the organization linked with the access token used in the request.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /organizations/{organization_id}","href":"/api/global-accounts/organizations/get-an-organization","autogeneratedByOpenApi":true},{"title":"Update an organization","description":"Updates an organization.\n\nYou can use `my` instead of an ID to get the organization linked with the access token used in the request.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json patch /organizations/{organization_id}","href":"/api/global-accounts/organizations/update-an-organization","autogeneratedByOpenApi":true}]},{"group":"Tokens","pages":[{"title":"Introspect","description":"Returns detailed information about the provided OAuth access token.\n\nUseful for token validation and introspection. The access token can be provided via authorization or a query string.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /info","href":"/api/global-accounts/tokens/introspect","autogeneratedByOpenApi":true},{"title":"Token","description":"Exchanges an authorization code for an access token.\n\nDepending on the application type, the following parameters are required for `grant_type=code`:\n* Confidential (private) client – `client_secret` is required\n* Public client – matching `code_verifier` is required for `code_challenge` sent during the authentication request.\n\nRefresh tokens issued for public clients are single-use only – a new refresh token is issued upon successful authorization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /token","href":"/api/global-accounts/tokens/token","autogeneratedByOpenApi":true},{"title":"Revoke","description":"Access tokens that come in pairs with a refresh token are revoked in pairs.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /token","href":"/api/global-accounts/tokens/revoke","autogeneratedByOpenApi":true}]},{"group":"Account organization settings","pages":[{"title":"Get account settings for an organization","description":"Returns a list of account organization settings.\n\nThese settings are tailored to each organization, providing customized configurations for their accounts.\nFor global settings, you can use the `/accounts` endpoint.\n\nThe `account_id` parameter is interchangeable with `me`, the `organization_id` parameter is interchangeable with `my`. The values will be sourced from authorization in such cases.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /accounts/{account_id}/organization_settings/{organization_id}","href":"/api/global-accounts/account-organization-settings/get-account-settings-for-an-organization","autogeneratedByOpenApi":true},{"title":"Update account settings for an organization","description":"Updates account organization settings.\n\nLimitations: \n  * You cannot provide both an avatar image and an avatar URL simultaneously.\n  * If the provided avatar is not a square, it will be automatically cropped to fit into a square shape.\n  * The avatar's size should be within the range of 50x50 pixels (minimum) to 1024x1024 pixels (maximum). \n  * The supported formats for avatars are PNG and JPEG, with a maximum file size of 1MB.\n\nThe `account_id` parameter is interchangeable with `me`, the `organization_id` parameter is interchangeable with `my`. The values will be sourced from the authorization in such cases.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json patch /accounts/{account_id}/organization_settings/{organization_id}","href":"/api/global-accounts/account-organization-settings/update-account-settings-for-an-organization","autogeneratedByOpenApi":true}]},{"group":"Organization domains","pages":[{"title":"List organization domains","description":"Lists all organization domains.\n\nThe list is used for whitelisting email address domains, that are free to join to given organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /organizations/{organization_id}/domains","href":"/api/global-accounts/organization-domains/list-organization-domains","autogeneratedByOpenApi":true},{"title":"Create organization domain","description":"Adds a new domain to the organization's email address domain whitelist.\n\nIt's forbidden to add domains used for disposable email addresses or used by free email providers. Maximum number of domains added to an organization is 10.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /organizations/{organization_id}/domains","href":"/api/global-accounts/organization-domains/create-organization-domain","autogeneratedByOpenApi":true},{"title":"Delete organization domain","description":"Delete an organization domain by its ID.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /organizations/{organization_id}/domains/{domain_id}","href":"/api/global-accounts/organization-domains/delete-organization-domain","autogeneratedByOpenApi":true}]},{"group":"SAML","pages":[{"title":"Get configuration","description":"Returns the SAML configuration for the organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /organizations/my/saml","href":"/api/global-accounts/saml/get-configuration","autogeneratedByOpenApi":true},{"title":"Create SAML configuration","description":"Creates SAML configuration for the organization.\n\nTo create a SAML configuration, the organization needs to have at least one product with an enterprise subscription.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /organizations/my/saml","href":"/api/global-accounts/saml/create-saml-configuration","autogeneratedByOpenApi":true},{"title":"Delete SAML configuration","description":"Removes SAML configuration for the organization.\n\nIt will enable other authentication methods for the organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /organizations/my/saml","href":"/api/global-accounts/saml/delete-saml-configuration","autogeneratedByOpenApi":true},{"title":"Modify SAML configuration","description":"Modifies SAML configuration for the organization.\n\nWhen changing the active parameter, it will enable SAML configuration. This will cause other authentication (login/password, etc.) methods to be disabled for that organization. Activation of SAML configuration will be blocked if there is no product on an enterprise plan or the organization contains an account that is added to another organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json patch /organizations/my/saml","href":"/api/global-accounts/saml/modify-saml-configuration","autogeneratedByOpenApi":true}]},{"group":"Organization login methods","pages":[{"title":"Get login methods","description":"Returns the login methods for the organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json get /organizations/my/login_methods","href":"/api/global-accounts/organization-login-methods/get-login-methods","autogeneratedByOpenApi":true},{"title":"Enforce login method","description":"Enforces a login method for the organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json post /organizations/my/login_methods","href":"/api/global-accounts/organization-login-methods/enforce-login-method","autogeneratedByOpenApi":true},{"title":"Disable login method","description":"Disables a login method for the organization.","deprecated":null,"version":null,"openapi":"/api/global-accounts/openapi.json delete /organizations/my/login_methods/{login_method}","href":"/api/global-accounts/organization-login-methods/disable-login-method","autogeneratedByOpenApi":true}]}]},{"dropdown":"Customer Accounts API","icon":"user-check","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Customer Accounts API","description":"Authenticate and authorize customers in Text with the access tokens required for Customer Chat API requests.","href":"/api/customer-accounts"}]},{"group":"Tokens","pages":[{"title":"Get token details","description":"Retrieves information about an access token.\n\nYou can provide the token via authorization or a query string.","deprecated":null,"version":null,"openapi":"/api/customer-accounts/openapi.json get /info","href":"/api/customer-accounts/tokens/get-token-details","autogeneratedByOpenApi":true},{"title":"Create a token","description":"Creates a new customer access token.","deprecated":null,"version":null,"openapi":"/api/customer-accounts/openapi.json post /token","href":"/api/customer-accounts/tokens/create-a-token","autogeneratedByOpenApi":true},{"title":"Revoke token","description":"Revoke a token provided via authorization.","deprecated":null,"version":null,"openapi":"/api/customer-accounts/openapi.json delete /token","href":"/api/customer-accounts/tokens/revoke-token","autogeneratedByOpenApi":true},{"title":"Create an identity transfer token","description":"Creates a new identity transfer token, which can be exchanged for a customer access token.","deprecated":null,"version":null,"openapi":"/api/customer-accounts/openapi.json post /identity_transfer","href":"/api/customer-accounts/tokens/create-an-identity-transfer-token","autogeneratedByOpenApi":true},{"title":"Create a group token","description":"Creates a new customer access token for a different group within the same organization.\n\nUse this token to separate customer identity across groups within one organization.","deprecated":null,"version":null,"openapi":"/api/customer-accounts/openapi.json post /{organization_id}/{group_id}/token/","href":"/api/customer-accounts/tokens/create-a-group-token","autogeneratedByOpenApi":true}]}]},{"dropdown":"Partner API","icon":"handshake","hidden":true,"groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Partner API","description":"Automate Text Partner Program operations and connect partnership performance data with your reporting and business systems.","href":"/api/partner"}]},{"group":"Solution partner","expanded":true,"pages":[{"group":"Organizations","pages":[{"title":"Create organization","description":"Creates a new organization for a client.","deprecated":null,"version":null,"sidebarTitle":"Create organization","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/organizations","href":"/api/partner/solution/create-organization","autogeneratedByOpenApi":true},{"title":"Get organization licenses","description":"Returns the organization's licenses.","deprecated":null,"version":null,"sidebarTitle":"Get organization licenses","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/organizations/{organization_id}/licenses","href":"/api/partner/solution/get-organization-licenses","autogeneratedByOpenApi":true},{"title":"Get organization details","description":"Returns the organization details.","deprecated":null,"version":null,"sidebarTitle":"Get organization details","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/organizations/{organization_id}","href":"/api/partner/solution/get-organization-details","autogeneratedByOpenApi":true}]},{"group":"Licenses","pages":[{"title":"Create license","description":"Creates a new license inside an organization for a client.","deprecated":null,"version":null,"sidebarTitle":"Create license","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/organizations/{organization_id}/licenses","href":"/api/partner/solution/create-license","autogeneratedByOpenApi":true},{"title":"Get solution licenses","description":"Returns the list of licenses.","deprecated":null,"version":null,"sidebarTitle":"Get solution licenses","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses","href":"/api/partner/solution/get-solution-licenses","autogeneratedByOpenApi":true},{"title":"Get solution licenses by status","description":"Returns the list of licenses by status.","deprecated":null,"version":null,"sidebarTitle":"Get solution licenses by status","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/{status}","href":"/api/partner/solution/get-solution-licenses-by-status","autogeneratedByOpenApi":true},{"title":"Get license details","description":"Returns the license details.","deprecated":null,"version":null,"sidebarTitle":"Get license details","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/{product}/{license_id}","href":"/api/partner/solution/get-license-details","autogeneratedByOpenApi":true},{"title":"Update license details","description":"Updates the license details.","deprecated":null,"version":null,"sidebarTitle":"Update license details","openapi":"/api/partner/solution/openapi.json put /v2/partners/solutions/licenses/{product}/{license_id}","href":"/api/partner/solution/update-license-details","autogeneratedByOpenApi":true},{"title":"Invite license operators","description":"Invites operators to a license.","deprecated":null,"version":null,"sidebarTitle":"Invite license operators","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/licenses/{product}/{license_id}/operators","href":"/api/partner/solution/invite-license-operators","autogeneratedByOpenApi":true},{"title":"Get Text feature","description":"Returns the limit and usage for a Text license feature.","deprecated":null,"version":null,"sidebarTitle":"Get Text feature","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/features/{feature}","href":"/api/partner/solution/get-text-feature","autogeneratedByOpenApi":true},{"title":"Transfer license","description":"Transfers a license to the client.\n\nThis method does not support Text licenses. You cannot transfer Text licenses to clients.","deprecated":null,"version":null,"sidebarTitle":"Transfer license","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/licenses/{product}/{license_id}/transfer","href":"/api/partner/solution/transfer-license","autogeneratedByOpenApi":true}]},{"group":"Invoices","pages":[{"title":"Get license invoices","description":"Returns invoices for a given license.\n\nThis method does not support Text licenses. For Text licenses, use [Get Text license invoices](/api/partner/solution/get-text-license-invoices).","deprecated":null,"version":null,"sidebarTitle":"Get license invoices","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/{license_id}/invoices","href":"/api/partner/solution/get-license-invoices","autogeneratedByOpenApi":true},{"title":"Get license invoice PDF","description":"Returns a PDF invoice.\n\nThis method does not support Text licenses. For Text licenses, use [Get Text license invoice PDF](/api/partner/solution/get-text-license-invoice-pdf).","deprecated":null,"version":null,"sidebarTitle":"Get license invoice PDF","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/{license_id}/invoices/{invoice_no}","href":"/api/partner/solution/get-license-invoice-pdf","autogeneratedByOpenApi":true},{"title":"Get Text license invoices","description":"Returns invoices for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Get Text license invoices","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/invoices","href":"/api/partner/solution/get-text-license-invoices","autogeneratedByOpenApi":true},{"title":"Get Text license invoice PDF","description":"Returns a PDF invoice for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Get Text license invoice PDF","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/invoices/{invoice_id}","href":"/api/partner/solution/get-text-license-invoice-pdf","autogeneratedByOpenApi":true}]},{"group":"Billing and payments","pages":[{"title":"Get Text billing profile","description":"Returns a billing profile for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Get Text billing profile","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/billing_profiles/{billing_profile_id}","href":"/api/partner/solution/get-text-billing-profile","autogeneratedByOpenApi":true},{"title":"Update license billing","description":"Updates the subscription billing information for a license.\n\nThis method does not support Text licenses. For Text licenses, use [Create Text payment method](/api/partner/solution/create-text-payment-method) or [Update Text payment method](/api/partner/solution/update-text-payment-method).","deprecated":null,"version":null,"sidebarTitle":"Update license billing","openapi":"/api/partner/solution/openapi.json put /v2/partners/solutions/licenses/{product}/{license_id}/billing","href":"/api/partner/solution/update-license-billing","autogeneratedByOpenApi":true},{"title":"Create Text payment method","description":"Creates a payment method for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Create Text payment method","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/payment_methods","href":"/api/partner/solution/create-text-payment-method","autogeneratedByOpenApi":true},{"title":"Get Text payment method","description":"Returns a payment method for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Get Text payment method","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/payment_methods/{payment_method_id}","href":"/api/partner/solution/get-text-payment-method","autogeneratedByOpenApi":true},{"title":"Update Text payment method","description":"Updates a payment method for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Update Text payment method","openapi":"/api/partner/solution/openapi.json put /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/payment_methods/{payment_method_id}","href":"/api/partner/solution/update-text-payment-method","autogeneratedByOpenApi":true},{"title":"Get Recurly token","description":"Returns the token from Recurly.\n\nThe token is required when creating a new subscription or updating an existing one with the new billing info.","deprecated":null,"version":null,"sidebarTitle":"Get recurly token","openapi":"/api/partner/solution/openapi.json get /js/v1/token","href":"/api/partner/solution/get-recurly-token","autogeneratedByOpenApi":true}]},{"group":"Subscriptions","pages":[{"title":"Update subscription","description":"Updates a subscription for a license.\n\nThis method does not support Text licenses. For Text licenses, use [Update Text subscription](/api/partner/solution/update-text-subscription).","deprecated":null,"version":null,"sidebarTitle":"Update subscription","openapi":"/api/partner/solution/openapi.json put /v2/partners/solutions/licenses/{product}/{license_id}/subscription","href":"/api/partner/solution/update-subscription","autogeneratedByOpenApi":true},{"title":"Create subscription","description":"Creates a new subscription for a license.\n\nThis method does not support Text licenses. For Text licenses, use [Create Text subscription](/api/partner/solution/create-text-subscription).","deprecated":null,"version":null,"sidebarTitle":"Create subscription","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/licenses/{product}/{license_id}/subscription","href":"/api/partner/solution/create-subscription","autogeneratedByOpenApi":true},{"title":"Close subscription","description":"Closes a subscription for a license.\n\nThis method does not support Text licenses. You cannot close Text subscriptions through the Partner API.","deprecated":null,"version":null,"sidebarTitle":"Close subscription","openapi":"/api/partner/solution/openapi.json delete /v2/partners/solutions/licenses/{product}/{license_id}/subscription","href":"/api/partner/solution/close-subscription","autogeneratedByOpenApi":true},{"title":"Create Text subscription","description":"Creates a subscription for an expired Text license.","deprecated":null,"version":null,"sidebarTitle":"Create Text subscription","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/subscriptions","href":"/api/partner/solution/create-text-subscription","autogeneratedByOpenApi":true},{"title":"Update Text subscription","description":"Updates a subscription for a Text license.","deprecated":null,"version":null,"sidebarTitle":"Update Text subscription","openapi":"/api/partner/solution/openapi.json patch /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/subscriptions/{subscription_id}","href":"/api/partner/solution/update-text-subscription","autogeneratedByOpenApi":true},{"title":"Get latest Text subscription","description":"Returns the latest subscription for a Text license.\n\nThe `pending_change` object represents a change scheduled for the next renewal.","deprecated":null,"version":null,"sidebarTitle":"Get latest Text subscription","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/subscriptions:latest","href":"/api/partner/solution/get-latest-text-subscription","autogeneratedByOpenApi":true},{"title":"Preview Text subscription","description":"Returns a preview of changes to a Text subscription.","deprecated":null,"version":null,"sidebarTitle":"Preview Text subscription","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/ORG-{organization_id}/textapp/adapter/subscriptions/{subscription_id}:preview","href":"/api/partner/solution/preview-text-subscription","autogeneratedByOpenApi":true}]},{"group":"Reports","pages":[{"title":"Get license metrics","description":"Returns the number of trials, paid licenses, and expired licenses from the Solution program.","deprecated":null,"version":null,"sidebarTitle":"Get license metrics","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/count","href":"/api/partner/solution/get-license-metrics","autogeneratedByOpenApi":true},{"title":"Get solution licenses report","description":"Returns a report for licenses by license status.","deprecated":null,"version":null,"sidebarTitle":"Get solution licenses report","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/reports/license","href":"/api/partner/solution/get-solution-licenses-report","autogeneratedByOpenApi":true},{"title":"Get solution licenses CSV report","description":"Returns a CSV report for licenses.","deprecated":null,"version":null,"sidebarTitle":"Get solution licenses csv report","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/licenses/search/csv","href":"/api/partner/solution/get-solution-licenses-csv-report","autogeneratedByOpenApi":true},{"title":"Get solution summary","description":"Returns a summary from the Solution Program.","deprecated":null,"version":null,"sidebarTitle":"Get solution summary","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/summary","href":"/api/partner/solution/get-solution-summary","autogeneratedByOpenApi":true}]},{"group":"Leads","pages":[{"title":"Get leads","description":"Returns partner leads.","deprecated":null,"version":null,"sidebarTitle":"Get leads","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/leads","href":"/api/partner/solution/get-leads","autogeneratedByOpenApi":true},{"title":"Submit lead","description":"Submits a lead.","deprecated":null,"version":null,"sidebarTitle":"Submit lead","openapi":"/api/partner/solution/openapi.json post /v2/partners/solutions/leads","href":"/api/partner/solution/submit-lead","autogeneratedByOpenApi":true},{"title":"Get lead details","description":"Returns lead details.","deprecated":null,"version":null,"sidebarTitle":"Get lead details","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/leads/{lead_id}","href":"/api/partner/solution/get-lead-details","autogeneratedByOpenApi":true},{"title":"Get lead history","description":"Returns lead history.","deprecated":null,"version":null,"sidebarTitle":"Get lead history","openapi":"/api/partner/solution/openapi.json get /v2/partners/solutions/leads/{lead_id}/history","href":"/api/partner/solution/get-lead-history","autogeneratedByOpenApi":true}]}]},{"group":"Affiliate partner","expanded":true,"pages":[{"group":"Campaigns","pages":[{"title":"Get campaigns","description":"Returns campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get campaigns","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns","href":"/api/partner/affiliate/get-campaigns","autogeneratedByOpenApi":true},{"title":"Create campaign","description":"Creates a new campaign.","deprecated":null,"version":null,"sidebarTitle":"Create campaign","openapi":"/api/partner/affiliate/openapi.json post /v2/partners/affiliates/campaigns","href":"/api/partner/affiliate/create-campaign","autogeneratedByOpenApi":true},{"title":"Search campaigns","description":"Searches for campaigns.","deprecated":null,"version":null,"sidebarTitle":"Search campaigns","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/search","href":"/api/partner/affiliate/search-campaigns","autogeneratedByOpenApi":true},{"title":"Disable campaign","description":"Disables a campaign.","deprecated":null,"version":null,"sidebarTitle":"Disable campaign","openapi":"/api/partner/affiliate/openapi.json delete /v2/partners/affiliates/campaigns/{campaign_id}","href":"/api/partner/affiliate/disable-campaign","autogeneratedByOpenApi":true},{"title":"Get affiliate links","description":"Returns affiliate links (long and short version) for default campaigns of each product.","deprecated":null,"version":null,"sidebarTitle":"Get affiliate links","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/links","href":"/api/partner/affiliate/get-affiliate-links","autogeneratedByOpenApi":true}]},{"group":"Licenses and referrals","pages":[{"title":"Get affiliate licenses","description":"Returns the list of affiliate licenses.","deprecated":null,"version":null,"sidebarTitle":"Get affiliate licenses","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/licenses","href":"/api/partner/affiliate/get-affiliate-licenses","autogeneratedByOpenApi":true},{"title":"Get partners referred","description":"Returns the list of referred partners.","deprecated":null,"version":null,"sidebarTitle":"Get partners referred","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/partners-referred","href":"/api/partner/affiliate/get-partners-referred","autogeneratedByOpenApi":true}]},{"group":"Reports","pages":[{"title":"Get performance report","description":"Returns the affiliate performance report.","deprecated":null,"version":null,"sidebarTitle":"Get performance report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/performance","href":"/api/partner/affiliate/get-performance-report","autogeneratedByOpenApi":true},{"title":"Get trials report","description":"Returns trials report for affiliate activity over time (up to last 12 months).","deprecated":null,"version":null,"sidebarTitle":"Get trials report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/reports/trials","href":"/api/partner/affiliate/get-trials-report","autogeneratedByOpenApi":true},{"title":"Get earnings report","description":"Returns earnings report for affiliate activity over time (up to last 12 months).","deprecated":null,"version":null,"sidebarTitle":"Get earnings report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/reports/earnings","href":"/api/partner/affiliate/get-earnings-report","autogeneratedByOpenApi":true},{"title":"Get conversions report","description":"Returns conversions report for affiliate activity over time (up to last 12 months).","deprecated":null,"version":null,"sidebarTitle":"Get conversions report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/reports/conversions","href":"/api/partner/affiliate/get-conversions-report","autogeneratedByOpenApi":true},{"title":"Get clicks report","description":"Returns clicks report for affiliate activity over time (up to last 12 months).","deprecated":null,"version":null,"sidebarTitle":"Get clicks report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/reports/clicks","href":"/api/partner/affiliate/get-clicks-report","autogeneratedByOpenApi":true}]},{"group":"Metrics","pages":[{"title":"Get trials metrics","description":"Returns the number of trials generated from affiliate campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get trials metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/metrics/trials","href":"/api/partner/affiliate/get-trials-metrics","autogeneratedByOpenApi":true},{"title":"Get earnings metrics","description":"Returns earnings generated from affiliate campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get earnings metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/metrics/earnings","href":"/api/partner/affiliate/get-earnings-metrics","autogeneratedByOpenApi":true},{"title":"Get conversions metrics","description":"Returns the number of trials converted into paid licenses generated from affiliate campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get conversions metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/metrics/conversions","href":"/api/partner/affiliate/get-conversions-metrics","autogeneratedByOpenApi":true},{"title":"Get clicks metrics","description":"Returns clicks generated from affiliate campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get clicks metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/metrics/clicks","href":"/api/partner/affiliate/get-clicks-metrics","autogeneratedByOpenApi":true},{"title":"Get referred partners commission metrics","description":"Returns commission generated from referred partners' activity.","deprecated":null,"version":null,"sidebarTitle":"Get referred partners commission metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/partners-referred/metrics/commission","href":"/api/partner/affiliate/get-referred-partners-commission-metrics","autogeneratedByOpenApi":true}]},{"group":"Campaign performance","pages":[{"title":"Get campaign earnings metric","description":"Returns the affiliate campaign earnings metric.","deprecated":null,"version":null,"sidebarTitle":"Get campaigns earnings metric","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/{campaign_id}/metrics/earnings","href":"/api/partner/affiliate/get-campaigns-earnings-metric","autogeneratedByOpenApi":true},{"title":"Get campaign earnings report","description":"Returns the affiliate campaign earnings report.","deprecated":null,"version":null,"sidebarTitle":"Get campaigns earnings report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/{campaign_id}/reports/earnings","href":"/api/partner/affiliate/get-campaigns-earnings-report","autogeneratedByOpenApi":true},{"title":"Get campaign summary","description":"Returns the affiliate campaign summary.","deprecated":null,"version":null,"sidebarTitle":"Get campaigns summary","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/{campaign_id}/summary","href":"/api/partner/affiliate/get-campaigns-summary","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns clicks report","description":"Returns clicks report for a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns clicks report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/reports/clicks","href":"/api/partner/affiliate/get-best-performing-campaigns-clicks-report","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns trials report","description":"Returns trials report for a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns trials report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/reports/trials","href":"/api/partner/affiliate/get-best-performing-campaigns-trials-report","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns conversions report","description":"Returns conversions report for a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns conversions report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/reports/conversions","href":"/api/partner/affiliate/get-best-performing-campaigns-conversions-report","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns earnings report","description":"Returns earnings report for a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns earnings report","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/reports/earnings","href":"/api/partner/affiliate/get-best-performing-campaigns-earnings-report","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns clicks metrics","description":"Returns summarized number of clicks generated from a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns clicks metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/metrics/clicks","href":"/api/partner/affiliate/get-best-performing-campaigns-clicks-metrics","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns trials metrics","description":"Returns summarized number of trials generated from a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns trials metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/metrics/trials","href":"/api/partner/affiliate/get-best-performing-campaigns-trials-metrics","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns conversions metrics","description":"Returns summarized number of trials converted into paid licenses generated from a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns conversions metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/metrics/conversions","href":"/api/partner/affiliate/get-best-performing-campaigns-conversions-metrics","autogeneratedByOpenApi":true},{"title":"Get best performing campaigns earnings metrics","description":"Returns summarized earnings generated from a given number of best performing campaigns.","deprecated":null,"version":null,"sidebarTitle":"Get best performing campaigns earnings metrics","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/campaigns/best-performing/metrics/earnings","href":"/api/partner/affiliate/get-best-performing-campaigns-earnings-metrics","autogeneratedByOpenApi":true}]},{"group":"Summary","pages":[{"title":"Get summary","description":"Returns the number of trial, paid, and expired affiliate licenses.","deprecated":null,"version":null,"sidebarTitle":"Get summary","openapi":"/api/partner/affiliate/openapi.json get /v2/partners/affiliates/summary","href":"/api/partner/affiliate/get-summary","autogeneratedByOpenApi":true}]}]},{"group":"Account","expanded":true,"pages":[{"group":"Profile","pages":[{"title":"Get profile","description":"Returns profile information for the authenticated partner.","deprecated":null,"version":null,"sidebarTitle":"Get profile","openapi":"/api/partner/account/openapi.json get /v2/partners","href":"/api/partner/account/get-profile","autogeneratedByOpenApi":true},{"title":"Update profile","description":"Updates profile information for the authenticated partner.","deprecated":null,"version":null,"sidebarTitle":"Update profile","openapi":"/api/partner/account/openapi.json put /v2/partners/profile","href":"/api/partner/account/update-profile","autogeneratedByOpenApi":true}]},{"group":"Account data","pages":[{"title":"Get stats","description":"Returns the number of licenses for each product and partnership model.","deprecated":null,"version":null,"sidebarTitle":"Get stats","openapi":"/api/partner/account/openapi.json get /v2/partners/stats","href":"/api/partner/account/get-stats","autogeneratedByOpenApi":true},{"title":"Get coupons","description":"Returns the list of active coupons.","deprecated":null,"version":null,"sidebarTitle":"Get coupons","openapi":"/api/partner/account/openapi.json get /v2/partners/coupons","href":"/api/partner/account/get-coupons","autogeneratedByOpenApi":true}]},{"group":"Earnings and commissions","pages":[{"title":"Get earnings","description":"Returns earnings information including commission earned, balance, blocked and pending amounts.","deprecated":null,"version":null,"sidebarTitle":"Get earnings","openapi":"/api/partner/account/openapi.json get /v2/partners/earnings","href":"/api/partner/account/get-earnings","autogeneratedByOpenApi":true},{"title":"Get commission report","description":"Returns commission reports for the given date range.","deprecated":null,"version":null,"sidebarTitle":"Get commission report","openapi":"/api/partner/account/openapi.json get /v2/partners/reports/commission","href":"/api/partner/account/get-commission-report","autogeneratedByOpenApi":true},{"title":"Get partners referred earnings report","description":"Returns commission earned from referring partners.","deprecated":null,"version":null,"sidebarTitle":"Get partners referred earnings report","openapi":"/api/partner/account/openapi.json get /v2/partners/partners-referred/reports/commission","href":"/api/partner/account/get-partners-referred-earnings-report","autogeneratedByOpenApi":true},{"title":"Get commission metric","description":"Returns the commission metric for the given filters.","deprecated":null,"version":null,"sidebarTitle":"Get commission metric","openapi":"/api/partner/account/openapi.json get /v2/partners/metrics/commission","href":"/api/partner/account/get-commission-metric","autogeneratedByOpenApi":true}]},{"group":"Billing and withdrawals","pages":[{"title":"Get billing","description":"Returns billing information for the authenticated partner.","deprecated":null,"version":null,"sidebarTitle":"Get billing","openapi":"/api/partner/account/openapi.json get /v2/partners/billing","href":"/api/partner/account/get-billing","autogeneratedByOpenApi":true},{"title":"Update billing","description":"Updates billing information for the authenticated partner.","deprecated":null,"version":null,"sidebarTitle":"Update billing","openapi":"/api/partner/account/openapi.json put /v2/partners/billing","href":"/api/partner/account/update-billing","autogeneratedByOpenApi":true},{"title":"Get balance","description":"Returns balance information for the authenticated partner.","deprecated":null,"version":null,"sidebarTitle":"Get balance","openapi":"/api/partner/account/openapi.json get /v2/partners/balance","href":"/api/partner/account/get-balance","autogeneratedByOpenApi":true},{"title":"Get withdrawals","description":"Returns the list of withdrawals.","deprecated":null,"version":null,"sidebarTitle":"Get withdrawals","openapi":"/api/partner/account/openapi.json get /v2/partners/withdrawals","href":"/api/partner/account/get-withdrawals","autogeneratedByOpenApi":true},{"title":"Request withdrawal","description":"Creates a withdrawal request.","deprecated":null,"version":null,"sidebarTitle":"Request withdrawal","openapi":"/api/partner/account/openapi.json post /v2/partners/withdrawals","href":"/api/partner/account/request-withdrawal","autogeneratedByOpenApi":true}]},{"group":"API tokens","pages":[{"title":"Get API tokens","description":"Returns the list of active API tokens.","deprecated":null,"version":null,"sidebarTitle":"Get api tokens","openapi":"/api/partner/account/openapi.json get /v2/partners/tokens","href":"/api/partner/account/get-api-tokens","autogeneratedByOpenApi":true},{"title":"Create API token","description":"Creates a new API token.","deprecated":null,"version":null,"sidebarTitle":"Create api token","openapi":"/api/partner/account/openapi.json post /v2/partners/tokens","href":"/api/partner/account/create-api-token","autogeneratedByOpenApi":true},{"title":"Revoke API token","description":"Revokes an API token.","deprecated":null,"version":null,"sidebarTitle":"Revoke api token","openapi":"/api/partner/account/openapi.json delete /v2/partners/tokens/{id}","href":"/api/partner/account/revoke-api-token","autogeneratedByOpenApi":true}]}]},{"group":"Partner directory","expanded":true,"pages":[{"group":"Profile","pages":[{"title":"Upload logo","description":"Uploads the Expert logo.\n\nThe request body should contain a `.jpg` or `.png` image, min. 350x350px, max. 1000x1000px.","deprecated":null,"version":null,"sidebarTitle":"Upload logo","openapi":"/api/partner/directory/openapi.json post /v2/partners/experts/profile/logo","href":"/api/partner/directory/upload-logo","autogeneratedByOpenApi":true},{"title":"Get expert profile","description":"Returns the Expert profile details.","deprecated":null,"version":null,"sidebarTitle":"Get expert profile","openapi":"/api/partner/directory/openapi.json get /v2/partners/experts/profile","href":"/api/partner/directory/get-expert-profile","autogeneratedByOpenApi":true},{"title":"Update expert profile","description":"Updates the Expert profile details.","deprecated":null,"version":null,"sidebarTitle":"Update expert profile","openapi":"/api/partner/directory/openapi.json put /v2/partners/experts/profile","href":"/api/partner/directory/update-expert-profile","autogeneratedByOpenApi":true},{"title":"Create expert profile","description":"Creates the Expert profile.","deprecated":null,"version":null,"sidebarTitle":"Create expert profile","openapi":"/api/partner/directory/openapi.json post /v2/partners/experts/profile","href":"/api/partner/directory/create-expert-profile","autogeneratedByOpenApi":true}]},{"group":"Performance","pages":[{"title":"Get comments","description":"Returns comments on the Expert profile.","deprecated":null,"version":null,"sidebarTitle":"Get comments","openapi":"/api/partner/directory/openapi.json get /v2/partners/experts/comments","href":"/api/partner/directory/get-comments","autogeneratedByOpenApi":true},{"title":"Get expert stats","description":"Returns stats (Experts Marketplace position, number of comments and messages) for the Expert profile.","deprecated":null,"version":null,"sidebarTitle":"Get expert stats","openapi":"/api/partner/directory/openapi.json get /v2/partners/experts/stats","href":"/api/partner/directory/get-expert-stats","autogeneratedByOpenApi":true},{"title":"Get expert history","description":"Returns historical stats for the Expert profile views (up to last 12 months).","deprecated":null,"version":null,"sidebarTitle":"Get expert history","openapi":"/api/partner/directory/openapi.json get /v2/partners/experts/history","href":"/api/partner/directory/get-expert-history","autogeneratedByOpenApi":true}]}]}]},{"dropdown":"Chat Widget JavaScript API","icon":"code","versions":[{"version":"v5.0","default":true,"tag":"stable","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Chat Widget JavaScript API","description":"Customize how the Text Chat Widget behaves on your website and connect it with your page logic through JavaScript.","href":"/api/chat-widget-js-api"}]},{"group":"Reference","icon":"file-code","pages":[{"title":"JavaScript API methods","sidebarTitle":"Methods","description":"JavaScript API methods, getters, setters, and callbacks for the Chat Widget.","href":"/api/chat-widget-js-api/methods"}]},{"group":"Examples and tools","icon":"flask","pages":[{"title":"Examples","description":"Example usage of the Chat Widget JavaScript API.","href":"/api/chat-widget-js-api/examples"},{"title":"Playground","description":"Interactive playground for the Chat Widget JavaScript API.","href":"/api/chat-widget-js-api/playground"}]}]}]},{"dropdown":"Chat Widget Adapters","icon":"puzzle-piece","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using Chat Widget Adapters","description":"Add the Text Chat Widget to React, Vue, or Angular applications with framework-native components and reactive access to widget state.","href":"/api/chat-widget-adapters"}]},{"group":"Core concepts","icon":"gear","pages":[{"title":"Adapter core","description":"The core implementation shared between each framework's specific adapter is distributed as a separate library.","href":"/api/chat-widget-adapters/adapters-core"}]},{"group":"Framework adapters","icon":"code","pages":[{"title":"React Adapter","description":"Learn about the library that allows rendering and interaction with the chat widget inside a React application.","href":"/api/chat-widget-adapters/react-adapter"},{"title":"Vue Adapter","description":"Check the library that allows rendering and interaction with the chat widget inside a Vue application.","href":"/api/chat-widget-adapters/vue-adapter"},{"title":"Angular Adapter","description":"Check the library which allows rendering and interacting with the chat widget inside an Angular application.","href":"/api/chat-widget-adapters/angular-adapter"}]}]},{"dropdown":"Reports API","icon":"chart-bar","versions":[{"version":"v3.7","tag":"dev preview","pages":[{"title":"v3.7","href":"/api/reports/v3.7/index"}]},{"version":"v3.6","default":true,"tag":"stable","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Reports API","description":"Retrieve Text reporting data for custom analysis, external dashboards, and automated reporting workflows.","href":"/api/reports/v3.6"}]},{"group":"Chats","pages":[{"title":"Duration","description":"Returns the average chatting duration of agents within a license.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/duration","href":"/api/reports/v3.6/chats/duration","autogeneratedByOpenApi":true},{"title":"Tags","description":"Returns the distribution of tags for chats.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/tags","href":"/api/reports/v3.6/chats/tags","autogeneratedByOpenApi":true},{"title":"Total chats","description":"Returns how many chats occurred during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/total_chats","href":"/api/reports/v3.6/chats/total-chats","autogeneratedByOpenApi":true},{"title":"Ratings","description":"Returns the number of rated chats along with their ratings during a specified period of time.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/ratings","href":"/api/reports/v3.6/chats/ratings","autogeneratedByOpenApi":true},{"title":"Ranking","description":"Returns the ratio of good to bad ratings for each operator.\n\nThe `distribution` parameter has no effect on the response of this method.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/ranking","href":"/api/reports/v3.6/chats/ranking","autogeneratedByOpenApi":true},{"title":"Engagement","description":"Returns the distribution of chats based on engagement during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/engagement","href":"/api/reports/v3.6/chats/engagement","autogeneratedByOpenApi":true},{"title":"Greetings conversion","description":"Returns the number of greetings sent to the customers and how many of those resulted in a chat or a goal.\n\nGreetings are also known as targeted messages.\n\nThe method returns only up to 100 values for each day. If there are more than 100 values, use the Text app to access the full data for a given day.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/greetings_conversion","href":"/api/reports/v3.6/chats/greetings-conversion","autogeneratedByOpenApi":true},{"title":"Forms","description":"Returns the number of submitted chat forms along with the count of specific answers.\n\nThe `distribution` parameter has no effect on the response of this method.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/forms","href":"/api/reports/v3.6/chats/forms","autogeneratedByOpenApi":true},{"title":"Response time","description":"Returns the average agents' response time within a licence.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/response_time","href":"/api/reports/v3.6/chats/response-time","autogeneratedByOpenApi":true},{"title":"First response time","description":"Returns the average agents' first response time within a licence.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/first_response_time","href":"/api/reports/v3.6/chats/first-response-time","autogeneratedByOpenApi":true},{"title":"Group chats count","description":"Returns the total number of chats handled by each group during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/groups","href":"/api/reports/v3.6/chats/group-chats-count","autogeneratedByOpenApi":true}]},{"group":"Agents","pages":[{"title":"Availability","description":"Returns for how long an agent, group, or the whole account was available for chatting during a specified period of time.\n\nDepending on the `distribution` parameter, the response contains a different time resolution.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/agents/availability","href":"/api/reports/v3.6/agents/availability","autogeneratedByOpenApi":true},{"title":"Performance","description":"Returns the total number of agent chats, the number of good and bad ratings they received, and how well they performed in the early stages of a chat.\n\nThe report also shows the time an agent spent chatting, accepting and not accepting chats, as well as the total time they were logged in.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/agents/performance","href":"/api/reports/v3.6/agents/performance","autogeneratedByOpenApi":true}]},{"group":"Customers","pages":[{"title":"Unique visitors","description":"Returns the total number of page views and unique visitors during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/customers/unique_visitors","href":"/api/reports/v3.6/customers/unique-visitors","autogeneratedByOpenApi":true},{"title":"Queued visitors","description":"Returns the number of customers who waited in the queue during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/queued_visitors","href":"/api/reports/v3.6/customers/queued-visitors","autogeneratedByOpenApi":true},{"title":"Queued visitors left","description":"Returns queue records for visitors who left the queue during the specified period.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/chats/queued_visitors_left","href":"/api/reports/v3.6/customers/queued-visitors-left","autogeneratedByOpenApi":true}]},{"group":"Tags","pages":[{"title":"Chat usage","description":"Returns the total number of chats marked with each tag listed in the report.","deprecated":null,"version":null,"openapi":"/api/reports/v3.6/openapi.json post /reports/tags/chat_usage","href":"/api/reports/v3.6/tags/chat-usage","autogeneratedByOpenApi":true}]}]},{"version":"v3.5","tag":"legacy","pages":[{"title":"v3.5","href":"/api/reports/v3.5/index"}]}]},{"dropdown":"Language Detection API","icon":"language","groups":[{"group":"Overview","icon":"map","pages":[{"title":"Using the Language Detection API","description":"Detect the language used in messages and other text so your integration can route conversations, choose localized responses, or analyze multilingual content.","href":"/api/language-detection"}]},{"group":"Language detection","pages":[{"title":"Detect language","description":"Detects languages used in text. The request size limit is 10MB.","deprecated":null,"version":null,"openapi":"/api/language-detection/openapi.json post /detect_language","href":"/api/language-detection/language-detection/detect-language","autogeneratedByOpenApi":true}]}]},{"dropdown":"Webhooks","icon":"webhook","versions":[{"version":"v3.7 ","tag":"dev preview","pages":[{"title":"v3.7 ","href":"/api/webhooks/v3.7/index"}]},{"version":"v3.6 ","default":true,"tag":"stable","pages":[{"title":"Webhooks","description":"Reference of available Text webhooks. Use webhooks to build automated flows in your integrations.","href":"/api/webhooks/v3.6"}]},{"version":"v3.5 ","tag":"legacy","pages":[{"title":"v3.5 ","href":"/api/webhooks/v3.5/index"}]}]},{"dropdown":"Events and properties","icon":"list","pages":[{"title":"Properties overview","description":"Use properties to attach custom data to chats, events, users, and more.","href":"/api/events-and-properties/properties-overview"},{"title":"Default properties","description":"Default properties are created for each new Text license. You can use them in applications to extract important info about chats, threads, and events.","href":"/api/events-and-properties/default-properties"},{"title":"System activities","description":"Learn about system activities generated in the Text ecosystem. They are native system events displayed to users in various situations.","href":"/api/events-and-properties/system-activities"}]},{"dropdown":"Accounts SDK","icon":"key","pages":[{"title":"Accounts SDK","description":"The Accounts SDK is a JavaScript tool for implementing Sign in with Text authorization in your app.","href":"/sdk/accounts-sdk"}]},{"dropdown":"Customer SDK","icon":"message","pages":[{"group":"Overview","icon":"map","pages":[{"title":"Introduction","description":null,"href":"/sdk/customer-sdk/overview/introduction"},{"title":"How to start","description":null,"href":"/sdk/customer-sdk/overview/how-to-start"},{"title":"Key concepts","description":null,"href":"/sdk/customer-sdk/overview/key-concepts"}]},{"group":"Reference","icon":"file-code","pages":[{"title":"Methods","description":null,"href":"/sdk/customer-sdk/methods"},{"title":"Events","description":null,"href":"/sdk/customer-sdk/events"},{"title":"Disconnection reasons","description":null,"href":"/sdk/customer-sdk/disconnection-reasons"},{"title":"Errors","description":null,"href":"/sdk/customer-sdk/errors"},{"title":"Recipes","description":null,"href":"/sdk/customer-sdk/recipes"},{"group":"v4.0","icon":"clock-rotate-left","root":{"title":"How to start","description":null,"href":"/sdk/customer-sdk/v4.0/overview/how-to-start"},"tag":"legacy","expanded":false,"pages":[{"title":"How to start","description":null,"href":"/sdk/customer-sdk/v4.0/overview/how-to-start"},{"title":"Methods","description":null,"href":"/sdk/customer-sdk/v4.0/methods"},{"title":"Events","description":null,"href":"/sdk/customer-sdk/v4.0/events"},{"title":"Disconnection reasons","description":null,"href":"/sdk/customer-sdk/v4.0/disconnection-reasons"},{"title":"Errors","description":null,"href":"/sdk/customer-sdk/v4.0/errors"},{"title":"Recipes","description":null,"href":"/sdk/customer-sdk/v4.0/recipes"}]}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/api/changelog"}]}]},"maps":{"firstHrefInVersion":{"v3.7":{"href":"/api/agent-chat/v3.7","matchLevel":2},"v3.6":{"href":"/api/agent-chat/v3.6","matchLevel":0},"v3.5":{"href":"/api/agent-chat/v3.5","matchLevel":2},"v5.0":{"href":"/api/chat-widget-js-api","matchLevel":4},"v3.7 ":{"href":"/api/webhooks/v3.7/index","matchLevel":4},"v3.6 ":{"href":"/api/webhooks/v3.6","matchLevel":1},"v3.5 ":{"href":"/api/webhooks/v3.5/index","matchLevel":4}},"firstHrefInLanguage":{}},"children":"$L49"}]
4a:I[763509,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ThemeLayout"]
4b:I[91557,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"ApiReferenceProvider"]
4c:I[114793,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"PageProvider"]
4d:I[91557,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"OpenApiProvider"]
4e:I[525343,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"TabSyncContextProvider"]
4f:T7f7,{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.text.com/#organization","name":"Text Documentation","url":"https://www.text.com","logo":{"@type":"ImageObject","url":"https://mintcdn.com/text-56a1eab5/YeUyNnZpquLAcjyj/public/images/text_logo_black.svg?fit=max&auto=format&n=YeUyNnZpquLAcjyj&q=85&s=1d56259972e440ba1f6676fd28c39793"}},{"@type":"WebSite","@id":"https://www.text.com/docs#website","name":"Text Documentation","url":"https://www.text.com/docs","publisher":{"@id":"https://www.text.com/#organization"}},{"@type":"WebPage","@id":"https://www.text.com/docs/api/agent-chat/v3.6#webpage","url":"https://www.text.com/docs/api/agent-chat/v3.6","name":"Using the Agent Chat API","description":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API.","dateModified":"2026-09-15T06:41:41.528Z","isPartOf":{"@id":"https://www.text.com/docs#website"},"breadcrumb":{"@id":"https://www.text.com/docs/api/agent-chat/v3.6#breadcrumb"}},{"@type":"BreadcrumbList","@id":"https://www.text.com/docs/api/agent-chat/v3.6#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Overview","item":"https://www.text.com/docs/api/agent-chat/v3.6/index"},{"@type":"ListItem","position":2,"name":"Using the Agent Chat API","item":"https://www.text.com/docs/api/agent-chat/v3.6"}]},{"@type":["Article","TechArticle"],"@id":"https://www.text.com/docs/api/agent-chat/v3.6#article","headline":"Using the Agent Chat API","name":"Using the Agent Chat API","description":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API.","url":"https://www.text.com/docs/api/agent-chat/v3.6","mainEntityOfPage":{"@id":"https://www.text.com/docs/api/agent-chat/v3.6#webpage"},"image":"https://www.text.com/public/images/og-image.png","dateModified":"2026-09-15T06:41:41.528Z","publisher":{"@id":"https://www.text.com/#organization"},"isPartOf":{"@id":"https://www.text.com/docs#website"}}]}49:["$","$L4a",null,{"theme":"palm","pageMetadata":{"title":"Using the Agent Chat API","description":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API.","href":"/api/agent-chat/v3.6/index"},"children":["$","$L4b",null,{"value":{"apiReferenceData":{},"graphqlReferenceData":"$undefined"},"children":["$","$L4c",null,{"value":{"pageMetadata":"$49:props:pageMetadata","lastModified":"2026-09-15T06:41:41.528Z","gitLastModified":"$undefined","originalFileLocation":"api/agent-chat/v3.6/index.mdx","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: \"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web 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":{}},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Choose Web API or RTM API","slug":"choose-web-api-or-rtm-api","depth":2,"children":[]},{"title":"Agent Chat resources","slug":"agent-chat-resources","depth":2,"children":[]},{"title":"Related APIs","slug":"related-apis","depth":2,"children":[]},{"title":"Calling the API as a bot","slug":"calling-the-api-as-a-bot","depth":2,"children":[]},{"title":"Rate limits","slug":"rate-limits","depth":2,"children":[]},{"title":"Pagination","slug":"request-pagination","depth":2,"children":[]}],"codeExamples":{}},"pageType":"$undefined","panelMdxSource":"$undefined","panelMdxSourceWithNoJs":"$undefined","contextualStarterQuestions":[],"relatedPages":"$undefined","relatedPagesConfig":"$undefined","narration":"$undefined"},"children":["$","$L4d",null,{"pageMetadata":"$49:props:pageMetadata","mdxExtracts":"$49:props:children:props:children:props:value:mdxExtracts","openApiReferenceData":"$undefined","children":["$","$L4e",null,{"children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$4f"}}],"$L50","$L51","$L52","$L53","$L54"]}]}]}]}]}]
55:I[228341,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"PageModeUpdater"]
56:I[575126,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"Background"]
57:I[954983,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"CustomCssFiles"]
59:I[36098,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"CustomJsFiles"]
62:I[530359,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"MDXContentController"]
63:I[448287,["/docs/_next/static/chunks/0ea0e179f06dc225.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0345977612e8a8fc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8fa9fbe6fc24e2c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/41cd25f9f5103afc.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac21fe8e654981ac.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d3a642b23f31e8e2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/56889c9400f2bd44.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8d0901e40ed4b058.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b2483d01d47db298.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/3f8f2653ff1ad14e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/b241678460c3859c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/8a98aeb9285690d6.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/d8de9e3010c1c0a2.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/0e1fc6a92afa30b8.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ac1d672f8544440f.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/ad7419efb0e48aa3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/a15bd5af0388fce3.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/4f6f997a3b8dee89.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c7d45773caa7629c.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/5d2be1079a35d461.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/11147b1fb2d6c8da.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/c18b0a8de3827f70.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/2f482bcd3294a910.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/7e929edc119ce881.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/e7ab3f319130be21.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/67122d2cabb5f5fb.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr","/docs/_next/static/chunks/6dd0e37ab76ddb7e.js?dpl=dpl_GUBLWV3tkq1Jqq9GEETTdz5wKNhr"],"default"]
50:[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"document.documentElement.setAttribute('data-page-mode', \"none\");"}}],["$","$L55",null,{"pageMetadata":"$49:props:pageMetadata"}]]
51:["$","$L56",null,{"pageMetadata":"$49:props:pageMetadata"}]
58:T148fc,@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap");

/* ─── Design tokens ──────────────────────────────────────────── */

:root {
  --background-light: 255 255 255;
  --font-weight-body-custom: 400;

  --background-01: #fff;
  --background-02: #fff;

  --surface-primary-hover: #f3f3f3;
  --surface-primary-disabled: #f7f7f7;
  --surface-opacity-basic-hover: rgb(19 19 23 / 7%);
  --surface-opacity-basic-active: rgb(19 19 23 / 12%);
  --surface-secondary-default: #f5f5f5;
  --surface-tertiary-default: #e6e6e7;
  --surface-tertiary-hover: #e0e0e1;
  --surface-tertiary-active: #dbdbdc;
  --surface-accent-emphasis-low-info: #daedff;
  --surface-accent-emphasis-low-positive: #d1f4d5;

  --content-basic-primary: #131317;
  --content-basic-prose: #131317;
  --content-basic-secondary: #62626d;
  --content-basic-tertiary: #8d8d95;
  --content-basic-disabled: #8d8d95;
  --content-basic-placeholder: hsl(240deg 10% 8% / 59%);
  --content-basic-negative: #c20003;
  --content-basic-positive: #007031;
  --content-basic-info: #003fa4;
  --content-locked-white: #fff;
  --content-invert-primary: #fff;
  --content-api-method-post: #60a5fa;
  --content-code-string: #ce9178;
  --content-code-boolean: #569cd6;
  --content-code-number: #b5cea8;
  --content-card-arrow-default: #c9c9cd;
  --content-card-arrow-hover: #ababb1;

  --border-basic-primary: #c9c9cd;
  --border-basic-secondary: rgba(19, 19, 23, 0.12);
  --border-basic-tertiary: rgba(19, 19, 23, 0.08);
  --border-basic-hover: #ababb1;
  --border-basic-negative: #c20003;
  --border-basic-positive: #005321;

  --navbar-background: #f5f5f5;
  --sidebar-background: #f5f5f5;
  --tab-hover-underline: #e5e7eb;
  --action-primary-default: #1b1b20;
  --btn-inline-background-default: rgb(48 100 227 / var(--tw-bg-opacity, 1));
  --shadow-api-card: 0 4px 24px rgb(0 0 0 / 10%);
  --spacing-6: 24px;
  --scroll-mt: 9rem;
}

/* ─── Dark mode tokens ───────────────────────────────────────── */

html.dark {
  --background-01: #151519;
  --background-02: #1d1d21;

  --surface-primary-hover: #2b2b2f;
  --surface-primary-disabled: #29292d;
  --surface-opacity-basic-hover: hsl(0deg 0% 100% / 11%);
  --surface-opacity-basic-active: hsl(0deg 0% 100% / 15%);
  --surface-secondary-default: #2d2d33;
  --surface-tertiary-default: #3b3b43;
  --surface-tertiary-hover: #43434b;
  --surface-tertiary-active: #4b4b52;
  --surface-accent-emphasis-low-info: #20324d;
  --surface-accent-emphasis-low-positive: #163628;

  --content-basic-primary: #f6f6f7;
  --content-basic-prose: #e2e2e4;
  --content-basic-secondary: #bcbcc0;
  --content-basic-tertiary: rgb(159 159 159);
  --content-basic-disabled: #767680;
  --content-basic-placeholder: hsl(240deg 6% 97% / 59%);
  --content-basic-info: #68afff;
  --content-basic-negative: #ff8282;
  --content-basic-positive: #4cbf80;
  --content-invert-primary: #131317;
  --content-card-arrow-default: #4a4a4d;
  --content-card-arrow-hover: #a5a5a6;

  --border-basic-primary: rgba(255, 255, 255, 0.2);
  --border-basic-secondary: rgba(255, 255, 255, 0.1);
  --border-basic-tertiary: rgba(255, 255, 255, 0.06);
  --border-basic-hover: rgba(255, 255, 255, 0.6);
  --border-basic-negative: #ff7071;
  --border-basic-positive: #33b66d;

  --navbar-background: #151519;
  --sidebar-background: #151519;
  --tab-hover-underline: #374151;
  --action-primary-default: #ebebeb;
  --shadow-api-card: 0 8px 40px rgb(0 0 0 / 50%);
}

/* ─── Global ────────────────────────────────────────────────── */

* {
  hyphens: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  scroll-behavior: smooth;
}

.dark hr,
.dark .prose hr {
  border-color: var(--border-basic-secondary) !important;
}

/* ─── Typography ────────────────────────────────────────────── */

.prose:not(.text-lg) {
  font-weight: 400;
}

.prose.prose-gray:not(.prose-sm) > p:not(:first-child),
.prose.prose-gray:not(.prose-sm) > ul,
.prose.prose-gray:not(.prose-sm) > ol,
.prose.prose-gray:not(.prose-sm) li,
.prose:not(.text-lg):not([data-component-part="callout-content"]) {
  font-size: 1rem !important;
  line-height: 1.7rem !important;
}

.prose.prose-gray .prose-sm li {
  font-size: unset !important;
  line-height: unset !important;
}

.prose a:not([data-component-part="callout-content"] *) {
  text-decoration: none !important;
}

.prose .link:not(.not-prose .link),
a code,
.prose li a,
.prose p a,
span a,
#chat-assistant-sheet .not-prose > a .text-primary .font-medium {
  color: var(--content-basic-info) !important;
  font-weight: 400 !important;
}

/* Preserve intentionally bold links. */
.prose a strong,
.prose strong .link:not(.not-prose .link),
.prose li strong a,
.prose p strong a,
.prose span strong a {
  font-weight: 600 !important;
}

.prose .link:not(.not-prose .link):not([data-component-part="callout-content"] *),
a code:not([data-component-part="callout-content"] *),
.prose li a:not([data-component-part="callout-content"] *),
.prose p a:not([data-component-part="callout-content"] *),
span a:not([data-component-part="callout-content"] *),
#chat-assistant-sheet .not-prose > a .text-primary .font-medium:not([data-component-part="callout-content"] *) {
  text-decoration: none !important;
  border-bottom: none !important;
}

.prose .link:not(.not-prose .link):hover,
.prose li a:hover,
.prose p a:hover,
.prose span a:hover {
  border-bottom: 1px solid currentColor !important;
}

.prose a strong,
.prose a em,
.prose a code {
  color: inherit !important;
}

.prose img {
  border-radius: 8px;
  border: 1px solid var(--border-basic-secondary);
}

.prose h2:not([class~="not-prose"]) {
  margin-top: 2.3rem;
  margin-bottom: 0.6rem;
}

.prose h3:not([class~="not-prose"]) {
  margin-top: 2.3rem;
}

.prose h4:not([class~="not-prose"]) {
  margin-top: 2.3rem;
}

.mdx-content.mt-8 {
  margin-top: 2.3rem !important;
}

.prose blockquote {
  color: var(--content-basic-secondary) !important;
  border-left-color: var(--border-basic-secondary) !important;
  border-inline-start-color: var(--border-basic-secondary) !important;
}

.prose .icon.inline {
  background-color: var(--content-basic-info) !important;
  margin-right: 6px;
}

.prose [data-component-part="expandable-button"] .icon.inline,
.prose .icon.inline.absolute,
.prose .icon.inline.pointer-events-none {
  background-color: currentColor !important;
}

.text-lg p {
  color: var(--content-basic-secondary) !important;
}

/* ─── Codeblocks ─────────────────────────────────────────────── */

code:not(pre code) {
  padding: 2px 4px;
}

code:not(pre code):not([data-component-part="callout-content"] code) {
  color: var(--content-basic-prose);
  background-color: var(--surface-secondary-default);
  border: 1px solid var(--border-basic-secondary);
}

/* ─── Scrollbars ─────────────────────────────────────────────── */

html {
  scrollbar-width: thin;
}

[data-component-part="code-block-root"],
[data-component-part="accordion-content"],
.nav-dropdown-content,
#sidebar-content,
#table-of-contents,
[data-table-wrapper] {
  scrollbar-width: thin;
  scrollbar-color: var(--border-basic-primary) transparent;
}

html::-webkit-scrollbar,
[data-component-part="code-block-root"]::-webkit-scrollbar,
[data-component-part="accordion-content"]::-webkit-scrollbar,
#sidebar-content ::-webkit-scrollbar,
#table-of-contents::-webkit-scrollbar,
[data-table-wrapper]::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

.nav-dropdown-content ::-webkit-scrollbar {
  width: 2px;
}

[data-component-part="code-block-root"]::-webkit-scrollbar-track,
[data-component-part="accordion-content"]::-webkit-scrollbar-track,
.nav-dropdown-content ::-webkit-scrollbar-track,
#sidebar-content ::-webkit-scrollbar-track,
#table-of-contents::-webkit-scrollbar-track,
[data-table-wrapper]::-webkit-scrollbar-track {
  background: transparent;
}

html::-webkit-scrollbar-corner,
#table-of-contents::-webkit-scrollbar-corner {
  background: transparent;
}

[data-component-part="code-block-root"]::-webkit-scrollbar-thumb,
[data-component-part="accordion-content"]::-webkit-scrollbar-thumb,
.nav-dropdown-content ::-webkit-scrollbar-thumb,
#sidebar-content ::-webkit-scrollbar-thumb,
#table-of-contents::-webkit-scrollbar-thumb,
[data-table-wrapper]::-webkit-scrollbar-thumb {
  background-color: var(--border-basic-primary);
  border-radius: 999px;
}

[data-component-part="code-block-root"]::-webkit-scrollbar-thumb:hover,
[data-component-part="accordion-content"]::-webkit-scrollbar-thumb:hover,
.nav-dropdown-content ::-webkit-scrollbar-thumb:hover,
#sidebar-content ::-webkit-scrollbar-thumb:hover,
#table-of-contents::-webkit-scrollbar-thumb:hover,
[data-table-wrapper]::-webkit-scrollbar-thumb:hover {
  background-color: var(--border-basic-hover);
}

/* ─── Navbar ────────────────────────────────────────────────── */

a.nav-tabs-item,
button.nav-tabs-item > div {
  color: var(--content-basic-secondary) !important;
  font-weight: 400 !important;
}

a.nav-tabs-item[data-active="true"],
button.nav-tabs-item[data-active="true"] > div {
  color: var(--content-basic-primary) !important;
  font-weight: 500 !important;
}

html.dark a.nav-tabs-item,
html.dark button.nav-tabs-item > div {
  color: var(--content-basic-secondary) !important;
  font-weight: 400 !important;
}

html.dark a.nav-tabs-item[data-active="true"],
html.dark button.nav-tabs-item[data-active="true"] > div {
  color: var(--content-basic-primary) !important;
  font-weight: 500 !important;
}

html a.nav-tabs-item:hover,
html button.nav-tabs-item:hover > div {
  color: var(--action-primary-default) !important;
}

/* Homepage: suppress Getting started being highlighted as active */
body:has(#home-page) a.nav-tabs-item[data-active="true"]:not(:hover) > div {
  display: none !important;
}

body:has(#home-page) a.nav-tabs-item[data-active="true"] {
  text-shadow: none !important;
  color: var(--content-basic-secondary) !important;
  font-weight: 400 !important;
}

body:has(#home-page) a.nav-tabs-item[data-active="true"]:hover > div {
  display: block !important;
  background: var(--tab-hover-underline) !important;
}

.nav-dropdown-item-icon {
  border: 1px solid var(--border-basic-tertiary);
}

.nav-dropdown-item {
  margin: 2px 0px;
}

.nav-dropdown-trigger {
  border-color: var(--border-basic-primary) !important;
  border-radius: 8px;
}

.nav-dropdown-trigger:hover,
.nav-dropdown-trigger[data-state="open"] {
  background-color: var(--surface-secondary-default) !important;
}

.nav-dropdown-item:hover {
  background-color: var(--surface-opacity-basic-hover) !important;
  color: var(--content-basic-primary) !important;
}

.nav-dropdown-item[aria-current="location"] {
  background-color: var(--surface-opacity-basic-active) !important;
  color: var(--content-basic-primary) !important;
}

.nav-dropdown-item[aria-current="location"] .lucide-check {
  display: none !important;
}

.nav-dropdown-item[aria-current="location"] .nav-dropdown-item-description {
  background-color: transparent !important;
}

.nav-dropdown-item-text-container {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.nav-dropdown-item-title {
  font-weight: 400;
  color: var(--content-basic-primary) !important;
}

.nav-section-header {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--content-basic-disabled);
  padding: 12px 8px 4px;
  margin: 8px 8px 4px;
  border-top: 1px solid var(--border-basic-secondary);
}

.nav-section-header:first-child {
  border-top: none;
  margin-top: 0;
}

/* ─── Sidebar ───────────────────────────────────────────────── */

button:has(svg[style*="arrow-left-from-line"]) {
  display: none !important;
}

#sidebar-content {
  width: 20rem;
}

.py-1\.5 {
  padding-top: 5.5px;
  padding-bottom: 5.5px;
}

#sidebar-content .lg\:mt-8 {
  margin-top: 1.5rem !important;
}

#sidebar-content li > a,
#sidebar-content li > button {
  width: 100%;
  margin-bottom: 2px;
  color: var(--content-basic-placeholder) !important;
}

#sidebar-content li[data-active] > a,
#sidebar-content li[data-active]:not(:has(li[data-active])) > button {
  background-color: var(--surface-opacity-basic-active);
  border-radius: 8px;
  color: var(--content-basic-primary);
}

#sidebar-content li > a:hover,
#sidebar-content li > button:hover {
  background-color: var(--surface-opacity-basic-hover);
  border-radius: 8px;
  color: var(--content-basic-primary);
}

@layer utilities {
  #table-of-contents-layout .toc-item > a {
    color: var(--content-basic-placeholder) !important;
    font-weight: 400 !important;
  }

  #table-of-contents-layout .toc-item:not([data-active="true"]) > a:hover {
    color: var(--content-basic-secondary) !important;
  }

  #table-of-contents-layout .toc-item[data-active="true"] > a {
    color: var(--content-basic-primary) !important;
  }
}

#sidebar-content,
.nav-dropdown-content {
  background-color: var(--sidebar-background);
}

.nav-dropdown-content {
  max-height: 34rem !important;
  border-radius: 8px;
}

body:has(#changelog-marker) #sidebar-content,
body:has(#changelog-marker) [data-component-part="version-select-trigger"] {
  display: none !important;
}

#navbar > * {
  background-color: var(--navbar-background) !important;
  border-bottom: 1px solid var(--border-basic-secondary);
}

#topbar-cta-button svg {
  width: 9px;
  height: 9px;
}

/* ─── Code blocks ───────────────────────────────────────────── */

[data-fade-overlay="true"] {
  display: none !important;
}

/* OpenAPI description fences render without Mintlify's code-block wrapper. */
#content-area header .text-lg.prose > pre.shiki {
  font-size: 0.75rem !important;
  line-height: 1.35rem !important;
}

html.dark #content-area header .text-lg.prose > pre.shiki {
  background-color: var(--surface-primary-disabled) !important;
  --shiki-dark-bg: var(--surface-primary-disabled) !important;
}

.dark [data-component-part="code-group-tab-bar"] {
  border-bottom: 1px solid var(--border-basic-secondary);
}

.dark .code-group {
  border: 1px solid var(--border-basic-secondary);
}

/* ─── Tags & tooltips ───────────────────────────────────────── */

[role="tooltip"],
.nav-dropdown-item-description,
[data-component-part="version-select-tag"],
[data-component-part="update-tag"],
#tooltip {
  padding: 3px 7px;
  border-radius: 8px;
  font-weight: 400;
  background-color: var(--surface-tertiary-default);
  color: var(--content-basic-primary) !important;
}

.dark [role="tooltip"] {
  border: none;
  box-shadow: none;
}

.tooltip {
  text-decoration: none;
  color: var(--content-basic-info) !important;
}

.nav-dropdown-item-description,
[data-component-part="version-select-tag"],
[data-component-part="update-tag"],
#tooltip {
  margin-left: 8px;
  white-space: nowrap;
}

[data-component-part="update-tag"] {
  padding: 5px 12px;
  font-weight: 500;
  white-space: normal;
  max-width: 100%;
  box-sizing: border-box;
}

.dark .nav-tag-pill-text[data-nav-tag="legacy"] {
  background: none;
  color: var(--content-basic-placeholder) !important;
  margin-left: 8px;
  white-space: nowrap;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  padding: 0;
}

/* ─── API version selector ──────────────────────────────────── */

[data-component-part="version-select-trigger"] {
  background-color: transparent;
  border: 1px solid var(--border-basic-primary);
  border-radius: 8px;
  width: 100%;
}

#sidebar-content button[aria-haspopup="menu"] {
  border-color: var(--border-basic-primary) !important;
}

[data-component-part="version-select-trigger"]::before {
  content: "API version: ";
  color: var(--content-basic-primary);
  font-weight: 600;
}

:has(> [data-component-part="version-select-tag"]) > :first-child {
  flex: none;
}

[data-component-part="version-select-item"] {
  padding: 6px 11px;
  margin-bottom: 2px;
  border-radius: 8px;
}

[data-component-part="version-select-item"]:hover {
  background-color: var(--surface-tertiary-hover);
}

[data-component-part="version-select-item"][data-selected="true"] {
  background-color: var(--surface-tertiary-active);
}

[data-component-part="version-select-trigger"]:hover,
[data-component-part="version-select-trigger"][data-state="open"] {
  background-color: var(--surface-secondary-default) !important;
}

[data-component-part="version-select-content"] {
  background-color: var(--surface-secondary-default);
  border-radius: 8px;
}

[data-component-part="tooltip-content"] {
  padding: 8px 12px !important;
  font-weight: 400;
}

[data-component-part="tooltip-content"][data-side="top"] {
  margin-bottom: 4px !important;
}

[data-component-part="tooltip-content"][data-side="bottom"] {
  margin-top: 4px !important;
}

[data-component-part="tooltip-content"][data-side="left"] {
  margin-right: 4px !important;
}

[data-component-part="tooltip-content"][data-side="right"] {
  margin-left: 4px !important;
}

[data-component-part="tooltip-tip"] {
  color: inherit !important;
}

/* ─── API reference ─────────────────────────────────────────── */

.max-w-5xl {
  max-width: 73rem;
}

.api-section-heading:not(:has(> :nth-child(2))) {
  row-gap: 0 !important;
}

.api-section-heading .border-b {
  border-color: var(--border-basic-secondary) !important;
}

.api-section-heading-title {
  text-transform: lowercase;
}

.api-section-heading-title::first-letter {
  text-transform: uppercase;
}

.api-section .prose.prose-sm {
  font-size: 14px !important;
  line-height: 25px !important;
}

.api-section .prose.prose-sm :is(p, ul, ol, li) {
  font-size: inherit !important;
  line-height: inherit !important;
}

.tooltip:has(code)::after {
  content: "ⓘ ";
  font-size: 0.8em;
  font-weight: 1000;
  opacity: 1;
  margin: 0px 5px;
  color: var(--content-basic-primary);
}

[data-component-part="tooltip-content"],
[data-base-ui-portal] [role="menu"][data-open]:not(.nav-dropdown-content) {
  background-color: var(--surface-secondary-default) !important;
  border: 1px solid var(--border-basic-primary) !important;
  border-radius: 8px !important;
}

[data-component-part="tooltip-content"] {
  color: var(--content-basic-primary) !important;
}

[data-base-ui-portal] [role="menu"][data-open]:not(.nav-dropdown-content) {
  color: var(--content-basic-secondary) !important;
  width: max-content !important;
  min-width: max-content !important;
  max-width: none !important;
}

@media (min-width: 1280px) {
  body:has(.api-section-heading-title) #content-side-layout {
    max-width: 28vw;
  }

  body:has(.api-section-heading-title) #content-side-layout .xl\:w-\[28rem\] {
    width: 28vw;
  }

  body:has(.api-section-heading-title) .flex-row-reverse.gap-x-12 {
    max-width: 65vw !important;
  }
}

@media (min-width: 1024px) {
  body:has(.api-section-heading-title) #content-container {
    padding-left: 0.5rem !important;
  }

  .lg\:pl-24 {
    padding-left: 4rem;
  }
}

/* ─── Dark mode overrides ───────────────────────────────────── */

.dark .prose:not([data-component-part="callout-content"]):not([data-component-part="step-title"]),
#content-container .dark\:text-gray-400,
#content-container .dark\:text-gray-300,
.dark\:text-gray-50 {
  color: var(--content-basic-secondary);
}

html.dark #content-container .prose:not([data-component-part="callout-content"]),
[data-component-part="expandable-button"] {
  color: var(--content-basic-prose) !important;
}

[data-component-part="step-title"] {
  font-weight: 600;
}

.dark h1,
.dark #page-title,
.dark #sidebar-title,
.dark [data-component-part="step-title"] {
  font-weight: 600;
  color: var(--content-basic-primary);
}

.dark h2,
.dark .api-section-heading-title {
  color: var(--content-basic-primary);
}

.dark .dark\:bg-background-dark,
.dark [data-component-part="code-block-root"],
.dark\:bg-codeblock:is(.dark *) {
  background-color: var(--surface-primary-disabled);
  --shiki-dark-bg: var(--surface-primary-disabled) !important;
}

/* ─── Mintlify API playground modal ─────────────────────────── */

/* Overrides Mintlify's runtime-generated API playground markup. */

[data-testid="api-playground-modal"],
[data-testid="api-playground-modal"] .dark\:bg-background-dark:not([data-component-part="code-block-root"]) {
  background-color: var(--background-02) !important;
}

[data-testid="api-playground-modal"] [data-component-part="scroll-area-content"] > .grid {
  padding: var(--spacing-6) !important;
  column-gap: var(--spacing-6) !important;
}

[data-testid="api-playground-modal"] [data-testid^="api-input-section-"] + [data-testid^="api-input-section-"] {
  margin-top: var(--spacing-6) !important;
}

[data-testid="api-playground-modal"] [data-testid^="api-input-section-"] > [role="button"] {
  padding: 16px var(--spacing-6) !important;
}

[data-testid="api-playground-modal"] [data-testid^="api-input-section-"] > :last-child:not([role="button"]) {
  padding: 0 var(--spacing-6) var(--spacing-6) !important;
}

[data-testid="api-playground-modal"] [data-testid^="api-input-section-"] > :last-child > :first-child:empty {
  border-bottom-width: 0 !important;
}

[data-testid="api-playground-modal"] [data-testid^="api-input-section-"] > :last-child > :first-child:empty + * {
  border-top-width: 0 !important;
}

[data-testid="api-playground-modal"] :is(input, textarea, select, [role="combobox"]) {
  border-color: var(--border-basic-primary) !important;
}

[data-testid="api-playground-modal"]
  :is(
    input:not(:disabled),
    textarea:not(:disabled),
    select:not(:disabled),
    [role="combobox"]:not([aria-disabled="true"])
  ):hover {
  border-color: var(--border-basic-hover) !important;
}

[data-testid="api-playground-modal"]
  :is(
    input:not(:disabled),
    textarea:not(:disabled),
    select:not(:disabled),
    [role="combobox"]:not([aria-disabled="true"])
  ):is(:focus, :focus-visible, :active),
[data-testid="api-playground-modal"] [role="combobox"][data-state="open"] {
  border-color: var(--action-primary-default) !important;
}

[data-testid="api-playground-modal"] :is(input, textarea)::placeholder,
[data-testid="api-playground-modal"] [role="combobox"][data-placeholder],
[data-testid="api-playground-modal"] [role="combobox"][data-placeholder] > span,
[data-testid="api-playground-modal"] [role="combobox"] [data-placeholder],
[data-testid="api-playground-modal"] select:has(option[value=""]:checked),
[data-testid="api-playground-modal"] select:has(option:first-child:checked),
[data-testid="api-playground-modal"] select option:first-child {
  color: var(--content-basic-tertiary) !important;
  -webkit-text-fill-color: var(--content-basic-tertiary) !important;
  opacity: 1;
}

[data-testid="api-playground-modal"]
  [data-testid^="api-input-"]:not([data-testid^="api-input-section-"])
  > :first-child
  > :first-child {
  margin-bottom: 16px !important;
}

@media (min-width: 1024px) {
  [data-testid="api-playground-modal"]
    [data-testid^="api-input-"]:not([data-testid^="api-input-section-"]).grid.lg\:grid-cols-2 {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) !important;
  }
}

@media (min-width: 1440px) {
  [data-testid="api-playground-modal"] {
    max-width: 90rem !important;
  }

  [data-testid="api-playground-modal"] [data-component-part="scroll-area-content"] > .grid.lg\:grid-cols-2 {
    grid-template-columns: 38rem minmax(0, 1fr) !important;
  }
}

[data-testid="api-playground-modal"] .prose.prose-sm {
  font-size: 14px !important;
  line-height: 25px !important;
  color: var(--content-basic-primary) !important;
}

[data-testid="api-playground-modal"] [data-testid="api-input-section-Authorization"] .prose.prose-sm {
  padding-bottom: 20px !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-toggle"] {
  height: auto !important;
  padding: 8px 12px !important;
  border: 1px solid var(--border-basic-primary) !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--content-basic-primary) !important;
  font-weight: 600 !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-toggle"]:hover {
  border-color: var(--border-basic-hover) !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-row"] {
  height: auto !important;
  padding-top: 20px !important;
  background-color: transparent !important;
  color: var(--content-basic-secondary) !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-row"] span {
  color: var(--content-basic-primary) !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-row"] svg {
  color: var(--content-basic-secondary) !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-row"]:hover {
  background: transparent !important;
}

[data-testid="api-playground-modal"] [data-testid="optional-fields-row"]:hover span,
[data-testid="api-playground-modal"] [data-testid="optional-fields-row"]:hover svg {
  color: var(--content-basic-primary) !important;
}

[data-testid="api-playground-modal"] .prose.prose-sm :is(p, ul, ol, li) {
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

.dark #mobile-nav {
  background-color: var(--sidebar-background) !important;
}

.dark #content-container,
.dark .mdx-content {
  background-color: var(--background-02);
}

.dark #search-bar-entry {
  background-color: var(--surface-primary-disabled);
  width: 23rem;
}

.dark .card {
  background-color: transparent;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 16px;
}

html.dark #content-container [data-component-part="card-content"] {
  color: var(--content-basic-secondary) !important;
}

.dark .dark\:border-gray-800\/70 {
  border-color: var(--border-basic-secondary) !important;
}

.dark a.card:hover,
.dark .dark\:border-gray-800\/70:hover {
  border-color: var(--border-basic-hover) !important;
}

.github-repo {
  margin: 1.25rem 0;
}

.columns {
  margin-bottom: 0.5em;
}

.card[role="link"]::after {
  content: "›";
  position: absolute;
  top: 1.05rem;
  right: 1.25rem;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--border-basic-primary);
  transition: color 0.15s;
  z-index: 1;
}

.card[role="link"]:hover::after {
  color: var(--border-basic-hover);
}

/* External link cards: suppress my arrow, restyle Mintlify's built-in ↗ */
.card[role="link"]:has(a[data-client-link][target="_blank"])::after {
  display: none;
}

#card-link-arrow-icon {
  color: var(--content-card-arrow-default) !important;
  transition: color 0.15s;
}

.card[role="link"]:hover #card-link-arrow-icon {
  color: var(--content-card-arrow-hover) !important;
}

/* ─── Accordion ─────────────────────────────────────────────── */

.dark details:has([data-component-part="accordion-button"]) {
  background-color: var(--background-02) !important;
  border: 1px solid var(--border-basic-secondary) !important;
  border-radius: 16px;
  overflow: hidden;
}

.dark [data-component-part="accordion-button"]:hover {
  background-color: var(--surface-primary-hover) !important;
}

.dark [data-component-part="accordion-title"] {
  color: var(--content-basic-primary) !important;
  font-weight: 500;
}

/* ─── Footer ────────────────────────────────────────────────── */

/* Mintlify hides #footer via `!important` utilities in its own Tailwind
   `utilities` layer (peer-[.is-custom]:hidden!) on mode: "custom" pages.
   CSS reverses layer priority for !important declarations, so an unlayered
   !important rule always loses to a layered one, regardless of specificity.
   Declaring this in the same `utilities` layer makes it a same-layer fight,
   where the ID selector's higher specificity wins. */
@layer utilities {
  #footer {
    display: flex !important;
  }
}

.dark #footer {
  background-color: var(--background-01) !important;
  border-top: 1px solid var(--border-basic-secondary) !important;
}

#footer > div {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
  gap: 2rem !important;
}

/* Main row: logo+socials left, columns right */
#footer > div > div:first-child {
  display: grid !important;
  grid-template-columns: 180px 1fr !important;
  align-items: start !important;
  gap: 2rem 5rem !important;
  min-height: unset !important;
}

/* Logo div: stack logo and socials vertically */
#footer > div > div:first-child > div:first-child {
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  min-width: unset !important;
  gap: 1.25rem !important;
}

/* Unhide the "mobile" socials — they're now in the right place */
#footer > div > div:first-child > div:first-child > div:last-child {
  display: flex !important;
  justify-content: flex-start !important;
  min-width: unset !important;
  max-width: unset !important;
}

/* Columns: align to the right */
#footer > div > div:first-child > div:nth-child(2) {
  justify-self: end !important;
}

/* Hide the separate desktop socials column (duplicated in logo area now) */
#footer > div > div:first-child > div:nth-child(3) {
  display: none !important;
}

/* ─── Tables ────────────────────────────────────────────────── */

[data-table-wrapper] {
  border: 1px solid var(--border-basic-tertiary);
  border-radius: 16px;
}

.prose table:not(.not-prose *) {
  font-size: 0.9rem;
  line-height: 1.5rem;
  margin: 0 !important;
  width: 100% !important;
}

.prose table th {
  border-bottom-color: var(--border-basic-tertiary) !important;
  color: var(--content-basic-secondary) !important;
  font-weight: 500 !important;
  white-space: nowrap;
}

.prose table thead {
  border-bottom-color: var(--border-basic-tertiary) !important;
}

.prose table thead:not(:has(th:not(:empty))) {
  display: none;
}

.prose tr {
  border-bottom-color: var(--border-basic-tertiary) !important;
}

.prose table > tbody > tr:last-child {
  border-bottom-width: 0 !important;
}

.prose table td {
  min-width: 0 !important;
}

.prose table td code {
  white-space: nowrap;
}

.prose table th:first-child,
.prose table td:first-child {
  padding-left: 16px !important;
}

.prose table th:last-child,
.prose table td:last-child {
  padding-right: 16px !important;
}

/* ─── Compact Mintlify fields ───────────────────────────────── */

.compact-fields {
  overflow: hidden;
  margin: 0.75rem 0 1.25rem;
  border: 1px solid var(--border-basic-tertiary);
  border-radius: 12px;
}

.compact-fields-header {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border-basic-tertiary);
  background-color: var(--surface-secondary-default);
  color: var(--content-basic-secondary);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.5rem;
}

.compact-fields > .field {
  display: grid;
  grid-template-columns: minmax(13rem, 2fr) minmax(0, 3fr);
  align-items: center;
  gap: 16px;
  min-height: 44px;
  margin: 0 !important;
  padding: 10px 16px !important;
  border-color: var(--border-basic-tertiary) !important;
}

.compact-fields > .field:last-child {
  border-bottom-width: 0;
}

.compact-fields .param-head {
  min-width: 0;
  font-size: 0.8125rem;
  line-height: 1.25rem;
}

.compact-fields .param-head > div {
  margin-right: 0;
  padding-block: 0;
}

.compact-fields [data-component-part="field-name"] {
  color: var(--content-basic-primary) !important;
}

.compact-fields [data-component-part="field-meta"] {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.75rem;
}

.compact-fields
  :is(
    [data-component-part="field-info-pill"],
    [data-component-part="field-required-pill"],
    [data-component-part="field-deprecated-pill"],
    [data-component-part="field-meta-pre"],
    [data-component-part="field-meta-post"]
  ) {
  margin-right: 0 !important;
  padding: 0 6px;
  border-radius: 6px;
  line-height: 1.25rem !important;
}

.compact-fields [data-component-part="field-content"] {
  min-width: 0;
  margin-top: 0 !important;
  color: var(--content-basic-prose);
  font-size: 0.8125rem;
  line-height: 1.25rem;
  overflow-wrap: anywhere;
}

.compact-fields [data-component-part="field-content"] :is(p, .prose) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

.compact-fields [data-component-part="field-content"] code {
  font-size: inherit !important;
  line-height: inherit;
}

/* Let nested fields expand as table rows instead of as a card in the notes cell. */
.compact-fields
  .field:has(> [data-component-part="field-content"] > .expandable)
  > [data-component-part="field-content"] {
  display: contents;
}

.compact-fields .field:has(> [data-component-part="field-content"] > .expandable) {
  row-gap: 0;
}

/* The outer field preserves the table inset; nested expandable rows yield theirs. */
.compact-fields
  [data-component-part="expandable-content"]
  > .field:last-child:has(> [data-component-part="field-content"] > .expandable) {
  padding-bottom: 0 !important;
}

.compact-fields .field > [data-component-part="field-content"] > :not(.expandable) {
  grid-column: 2;
}

.compact-fields .field > [data-component-part="field-content"] > .expandable {
  grid-column: 1 / -1;
  margin: 0 -16px !important;
  border-width: 0 !important;
  border-radius: 0 !important;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"] {
  padding: 10px 20px !important;
  border-radius: 0 !important;
  position: relative;
  transition: color 150ms ease;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"]::before {
  position: absolute;
  top: 50%;
  left: 11px;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background-color: var(--surface-tertiary-default);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: translateY(-50%);
  transition: opacity 150ms ease;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"]
  > svg {
  position: relative;
  z-index: 1;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"]
  > svg
  + * {
  margin-left: 16px !important;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"]:is(:hover, :focus-visible) {
  color: var(--content-basic-primary) !important;
  background-color: transparent !important;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-button"]:is(:hover, :focus-visible)::before {
  opacity: 1;
}

.compact-fields
  .field
  > [data-component-part="field-content"]
  > .expandable
  > [data-component-part="expandable-content"] {
  margin: 0 !important;
  padding: 0 !important;
  border-color: var(--border-basic-tertiary) !important;
}

.compact-fields [data-component-part="expandable-content"] > .field {
  display: grid;
  grid-template-columns: minmax(13rem, 2fr) minmax(0, 3fr);
  align-items: center;
  gap: 16px;
  min-height: 44px;
  margin: 0 !important;
  padding: 10px 16px 10px 32px !important;
  border-color: var(--border-basic-tertiary) !important;
}

.compact-fields [data-component-part="expandable-content"] > .field:last-child {
  border-bottom-width: 0;
}

.compact-fields [data-component-part="expandable-content"] [data-component-part="expandable-content"] > .field {
  padding-left: 48px !important;
}

.compact-fields
  [data-component-part="expandable-content"]
  [data-component-part="expandable-content"]
  [data-component-part="expandable-content"]
  > .field {
  padding-left: 64px !important;
}

@media (max-width: 640px) {
  .compact-fields > .field {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 10px 12px !important;
  }

  .compact-fields .field > [data-component-part="field-content"] > :not(.expandable) {
    grid-column: 1;
  }

  .compact-fields .field > [data-component-part="field-content"] > .expandable {
    margin-inline: -12px !important;
  }

  .compact-fields [data-component-part="expandable-content"] > .field {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 10px 20px !important;
  }

  .compact-fields [data-component-part="expandable-content"] [data-component-part="expandable-content"] > .field {
    padding-left: 28px !important;
  }

  .compact-fields
    [data-component-part="expandable-content"]
    [data-component-part="expandable-content"]
    [data-component-part="expandable-content"]
    > .field {
    padding-left: 36px !important;
  }
}

/* ─── API parameter rows ────────────────────────────────────── */

.primitive-param-field,
.object-param-field,
.array-param-field {
  border-color: var(--border-basic-secondary) !important;
}

.primitive-param-field:has(> .py-6),
.object-param-field:has(> .py-6),
.array-param-field:has(> .py-6) {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.primitive-param-field > .py-6,
.object-param-field > .py-6,
.array-param-field > .py-6 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.primitive-param-field .mt-6,
.object-param-field .mt-6 {
  margin-top: 1rem !important;
}

details[data-component-part="expandable"]:not([open]) {
  width: fit-content;
}

details[data-component-part="expandable"]:not([open]) > summary {
  width: auto;
}

/* ─── Pagination ─────────────────────────────────────────────── */

#pagination a .space-y-1 {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.25rem;
}

#pagination a .space-y-1 > :last-child {
  font-size: 0.875rem;
}

/* ─── Inline button-styled badges ─────────────────────────────── */

.buttonLike {
  color: var(--content-locked-white) !important;
  background-color: var(--btn-inline-background-default) !important;
}

/* ─── Feedback toolbar ──────────────────────────────────────── */

.feedback-toolbar {
  align-items: center !important;
  margin-top: 4rem !important;
  padding-bottom: 0 !important;
}

.feedback-toolbar > div:first-child {
  width: fit-content !important;
  justify-content: center !important;
  gap: 16px !important;
  flex-wrap: nowrap !important;
}

.feedback-toolbar > div:first-child > div {
  flex-grow: 0 !important;
  flex-wrap: nowrap !important;
}

#feedback-thumbs-up,
#feedback-thumbs-down {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  color: var(--content-basic-secondary) !important;
  cursor: pointer;
  transition:
    color 150ms ease,
    transform 150ms ease;
}

#feedback-thumbs-up:hover,
#feedback-thumbs-down:hover {
  color: var(--content-basic-primary) !important;
  transform: translateY(-1px);
}

#feedback-thumbs-up:active,
#feedback-thumbs-down:active {
  transform: translateY(0);
}

#feedback-thumbs-up:focus-visible,
#feedback-thumbs-down:focus-visible {
  outline: 2px solid var(--content-basic-info);
  outline-offset: 4px;
}

#feedback-thumbs-up small,
#feedback-thumbs-down small {
  display: none !important;
}

.feedback-toolbar-submitted > div:first-child {
  display: none !important;
}

.feedback-confirmation {
  margin: 0;
  color: var(--content-basic-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
}

/* ─── API parameter default labels ──────────────────────────── */

[data-component-part="field-info-pill"] > span:first-child:nth-last-child(2) {
  color: var(--content-basic-tertiary) !important;
}

/* ─── Home page layout ───────────────────────────────────────── */

#home-page.prose {
  max-width: 1400px;
  margin: 0 auto;
  padding: 5rem 3rem;
}

.page-hero {
  max-width: 100%;
  text-align: center;
}

.page-section {
  padding-block: 1rem;
}

#home-page > .page-hero + .page-section,
#home-page > .page-section + .page-section {
  margin-top: 3rem;
}

#home-page > .page-section:last-child {
  padding-bottom: 2.5rem;
}

.hero-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
}

.hero-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 0.75rem;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: -15px;
  color: var(--content-basic-secondary);
}

.hero-eyebrow__divider {
  color: var(--border-basic-primary);
}

.hero-eyebrow__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.hero-eyebrow__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--content-basic-positive);
  flex-shrink: 0;
}

.mcp-card {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  border: 0;
  border-radius: 14px;
  padding: 25px 30px;
  margin-top: 48px;
  background: var(--surface-secondary-default);
  color: var(--content-basic-primary);
}

.mcp-card .not-prose {
  flex-shrink: 0;
}

.mcp-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 10px;
  color: var(--content-basic-primary);
}

.mcp-card__icon svg {
  width: 26px !important;
  height: 26px !important;
}

#home-page .mcp-card__icon .icon.inline {
  background-color: var(--content-basic-secondary) !important;
  margin-right: 0 !important;
}

.mcp-card__body {
  flex: 1 1 auto;
  min-width: 0;
}

.mcp-card__title {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--content-basic-primary);
  line-height: 1.3;
  margin-bottom: 7px;
}

.mcp-card__description {
  font-size: 1rem;
  color: var(--content-basic-primary);
}

.mcp-card__description > p {
  margin: 0;
}

.callout-card {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  border-radius: 14px;
  padding: 20px 30px;
  margin-top: 1.5rem;
  background: var(--surface-secondary-default);
  color: var(--content-basic-secondary);
}

.callout-card .not-prose {
  flex-shrink: 0;
}

.callout-card p {
  display: inline;
  margin: 0;
}

#home-page .callout-card__link {
  display: inline;
  border-bottom: 0 !important;
  font-weight: 400;
  text-decoration: none !important;
  white-space: nowrap;
}

.two-col-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-top: 2rem;
}

.three-col-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  padding-top: 2rem;
}

.work-grid {
  gap: 0;
  padding-top: 2rem;
}

.work-grid .labeled-card {
  padding: 0 40px;
  border: 0;
  border-radius: 0;
}

.work-grid .labeled-card__icon {
  width: 44px;
  height: 44px;
  margin-bottom: 18px;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 10px;
}

.work-grid .labeled-card__icon svg {
  width: 24px !important;
  height: 24px !important;
}

#home-page > .page-section:last-child .three-col-grid {
  padding-top: 1rem;
}

.guide-showcase {
  margin-top: 1rem;
}

.guide-showcase__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0;
}

#home-page .guide-showcase__intro h2 {
  margin: 0 0 14px;
}

.guide-showcase__intro p {
  max-width: 760px;
  margin: 0;
  color: var(--content-basic-secondary);
  font-size: 1rem;
  line-height: 1.6;
}

.guide-showcase__list {
  display: grid;
  gap: 20px;
  margin-top: 1.5rem;
  padding: 0;
}

.guide-showcase__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  min-height: 124px;
  padding: 28px 32px;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 16px;
}

.guide-showcase__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 12px;
}

.guide-showcase__icon .icon.inline {
  margin-right: 0 !important;
}

.guide-showcase__icon img {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#home-page .guide-showcase__icon--hubspot .icon.inline {
  background-color: #ff7a59 !important;
}

#home-page .guide-showcase__icon--shopify .icon.inline {
  background-color: #95bf47 !important;
}

.guide-showcase__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 40px;
  min-width: 0;
}

.guide-showcase__title {
  grid-column: 1;
  margin-bottom: 6px;
  color: var(--content-basic-primary);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.4;
}

.guide-showcase__description {
  grid-column: 1;
  color: var(--content-basic-secondary);
  font-size: 1rem;
  line-height: 1.55;
}

.guide-showcase__title > p,
.guide-showcase__description > p {
  margin: 0;
}

#home-page .guide-showcase__link {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  display: inline-block;
  margin-top: 0;
  color: var(--content-basic-info) !important;
  border-bottom: 0 !important;
  font-size: 1rem !important;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none !important;
  white-space: nowrap;
}

#home-page .guide-showcase__link > p {
  display: inline;
  margin: 0;
}

.start-grid {
  gap: 0;
}

.start-grid .labeled-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-content: start;
  column-gap: 20px;
  padding: 8px 32px;
  border: 0;
  border-left: 1px solid var(--border-basic-secondary);
  border-radius: 0;
}

.start-grid .labeled-card:first-child {
  padding-left: 0;
  border-left: 0;
}

.start-grid .labeled-card:last-child {
  padding-right: 0;
}

.start-grid .labeled-card__icon {
  grid-column: 1;
  grid-row: 1 / span 4;
  width: 44px;
  height: 44px;
  margin: 0;
}

.start-grid .labeled-card__eyebrow,
.start-grid .labeled-card__title,
.start-grid .labeled-card__description,
.start-grid .labeled-card__link {
  grid-column: 2;
}

@media (max-width: 1023px) {
  .work-grid .labeled-card {
    padding-inline: 0;
  }

  .guide-showcase__body {
    display: block;
  }

  #home-page .guide-showcase__link {
    margin-top: 12px;
  }

  .start-grid .labeled-card {
    padding: 24px 0;
    border-top: 1px solid var(--border-basic-secondary);
    border-left: 0;
  }

  .start-grid .labeled-card:first-child {
    padding-top: 8px;
    border-top: 0;
  }

  .start-grid .labeled-card:last-child {
    padding-bottom: 8px;
  }
}

@media (max-width: 640px) {
  #home-page.prose {
    padding: 1.5rem;
    padding-top: 8rem;
  }

  .page-hero {
    padding-right: 0;
  }

  #home-page > .page-hero + .page-section,
  #home-page > .page-section + .page-section {
    margin-top: 2rem;
  }

  .hero-eyebrow {
    flex-direction: column;
    gap: 4px;
    font-size: 0.6875rem;
    margin-top: 15px;
  }

  .hero-eyebrow__divider {
    display: none;
  }

  .two-col-grid,
  .three-col-grid {
    grid-template-columns: 1fr;
  }

  .work-grid {
    gap: 32px;
  }

  .guide-showcase__intro {
    padding: 0;
  }

  .guide-showcase__list {
    gap: 16px;
    margin-top: 1.25rem;
    padding: 0;
  }

  .guide-showcase__item {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 16px;
    min-height: 0;
    padding: 22px;
  }

  .guide-showcase__icon {
    width: 44px;
    height: 44px;
  }

  #home-page .guide-showcase__link {
    white-space: normal;
  }

  /* Footer: stack logo above nav columns */
  #footer > div {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
    gap: 1rem !important;
  }

  #footer > div > div:first-child {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  /* Nav column groups: 2-column grid */
  #footer > div > div:first-child > div:nth-child(2) {
    justify-self: start !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem !important;
    padding-top: 1rem !important;
    width: 100% !important;
  }

  /* Tighter spacing between individual footer links */
  #footer > div > div:first-child > div:nth-child(2) > div,
  #footer > div > div:first-child > div:nth-child(2) > div > div {
    gap: 0.7rem !important;
  }
}

/* #navbar is `fixed` (removed from normal flow) below the `lg` breakpoint
   (1024px) and only becomes `sticky` (reserves flow space automatically) at
   lg and above. The 640px rule above already compensates for phone widths;
   this covers the 641-1023px range, which has the same fixed navbar but was
   still using the default padding-top, causing the hero to render behind it. */
@media (min-width: 641px) and (max-width: 1023px) {
  #home-page.prose {
    padding-top: 8rem;
  }

  .two-col-grid,
  .three-col-grid {
    grid-template-columns: 1fr;
  }

  .work-grid {
    gap: 32px;
  }

  .guide-showcase__intro {
    padding: 0;
  }

  .guide-showcase__list {
    padding: 0;
  }

  .hero-eyebrow {
    margin-top: 20px;
  }
}

/* ─── Home headings ──────────────────────────────────────────── */

#home-page h2:not([data-component-part="card-title"]) {
  font-size: 2.3rem;
  font-weight: 600;
  letter-spacing: -0.08rem;
  margin-bottom: 0.5rem;
}

#home-page > .page-section > h2 {
  margin-top: 1rem;
}

#home-page h1 {
  font-size: clamp(5.5rem, 10vw, 8.5rem);
  line-height: 0.83;
  font-weight: 400;
  letter-spacing: normal;
  margin-bottom: 0;
}

.hero-wordmark {
  display: block;
  margin: 0;
}

#home-page .hero-wordmark__logo {
  max-width: 100%;
  height: auto;
  margin: 0;
  border: none;
  border-radius: 0;
}

.hero-wordmark__logo--light {
  display: inline-block;
}

.hero-wordmark__logo--dark {
  display: none;
}

.dark .hero-wordmark__logo--light {
  display: none;
}

.dark .hero-wordmark__logo--dark {
  display: inline-block;
}

/* ─── Page header ────────────────────────────────────────────── */

/* Title + copy-page-button row */
#header .space-y-2\.5 > div:has(h1) {
  margin-bottom: 0.3rem;
}

#page-context-menu {
  align-self: flex-start !important;
}

/* ─── Eyebrow ────────────────────────────────────────────────── */

.eyebrow {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--content-basic-primary);
  margin-bottom: 8px;
}

/* ─── PageButton ─────────────────────────────────────────────── */

.page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border: 1px solid var(--border-basic-primary);
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
}

.page-button:hover {
  border-color: var(--border-basic-hover);
}

/* Mintlify auto-adds class="link" to every anchor and colors it via a
   layered !important rule. For !important declarations, layer order is
   reversed (earlier-declared layers beat later ones) and unlayered is the
   weakest tier of all — so beating it requires matching whichever layer it
   lives in, not just adding specificity. Declaring the override in every
   Tailwind default layer name guarantees a same-layer match (and win via
   the ID-scoped selector's specificity) regardless of which one Mintlify
   actually used. */
@layer theme {
  #home-page a.page-button {
    color: var(--content-basic-primary) !important;
    border-bottom-color: var(--border-basic-primary) !important;
  }
  #home-page a.page-button:hover {
    border-bottom-color: var(--border-basic-hover) !important;
  }
  #home-page a.guide-showcase__link {
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
  }
  #home-page a.labeled-card__link,
  #home-page a.guide-showcase__link {
    color: var(--content-basic-primary) !important;
  }
  #home-page a.callout-card__link {
    color: var(--content-basic-info) !important;
    font-weight: 400 !important;
  }
}

@layer base {
  #home-page a.page-button {
    color: var(--content-basic-primary) !important;
    border-bottom-color: var(--border-basic-primary) !important;
  }
  #home-page a.page-button:hover {
    border-bottom-color: var(--border-basic-hover) !important;
  }
  #home-page a.guide-showcase__link {
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
  }
  #home-page a.labeled-card__link,
  #home-page a.guide-showcase__link {
    color: var(--content-basic-primary) !important;
  }
  #home-page a.callout-card__link {
    color: var(--content-basic-info) !important;
    font-weight: 400 !important;
  }
}

@layer components {
  #home-page a.page-button {
    color: var(--content-basic-primary) !important;
    border-bottom-color: var(--border-basic-primary) !important;
  }
  #home-page a.page-button:hover {
    border-bottom-color: var(--border-basic-hover) !important;
  }
  #home-page a.guide-showcase__link {
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
  }
  #home-page a.labeled-card__link,
  #home-page a.guide-showcase__link {
    color: var(--content-basic-primary) !important;
  }
  #home-page a.callout-card__link {
    color: var(--content-basic-info) !important;
    font-weight: 400 !important;
  }
}

@layer utilities {
  #home-page a.page-button {
    color: var(--content-basic-primary) !important;
    border-bottom-color: var(--border-basic-primary) !important;
  }
  #home-page a.page-button:hover {
    border-bottom-color: var(--border-basic-hover) !important;
  }
  #home-page a.guide-showcase__link {
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
  }
  #home-page a.labeled-card__link,
  #home-page a.guide-showcase__link {
    color: var(--content-basic-primary) !important;
  }
  #home-page a.callout-card__link {
    color: var(--content-basic-info) !important;
    font-weight: 400 !important;
  }
}

#home-page a.page-button {
  color: var(--content-basic-primary) !important;
  border-bottom-color: var(--border-basic-primary) !important;
}

#home-page a.page-button:hover {
  border-bottom-color: var(--border-basic-hover) !important;
}

.button-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  background: var(--action-primary-default);
  border-radius: 8px;
  color: var(--content-invert-primary) !important;
  font-weight: 600;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
}

/* ─── LabeledCard ────────────────────────────────────────────── */

.labeled-card {
  background: transparent;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 14px;
  padding: 30px;
}

.labeled-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 10px;
  margin-bottom: 20px;
  color: var(--content-basic-primary);
}

.labeled-card__icon svg {
  width: 26px !important;
  height: 26px !important;
}

#home-page .labeled-card__icon .icon.inline {
  background-color: var(--content-basic-secondary) !important;
  margin-right: 0 !important;
}

.dark .labeled-card__eyebrow {
  color: var(--content-basic-secondary) !important;
}

.labeled-card__eyebrow {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--content-basic-primary);
  margin-bottom: 12px;
}

.labeled-card__title {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--content-basic-primary);
  line-height: 1.3;
}

.labeled-card__title.has-body {
  margin-bottom: 12px;
}

.labeled-card__description {
  font-size: 1rem;
  color: var(--content-basic-secondary);
}

#home-page .labeled-card__link {
  display: inline-block;
  margin-top: 12px;
  color: var(--content-basic-primary) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  white-space: nowrap;
}

#home-page .labeled-card__link::after,
#home-page .guide-showcase__link::after {
  content: "→";
  display: inline-block;
  width: 1em;
  margin-left: 4px;
  opacity: 0;
  transform: translateX(-6px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

#home-page .labeled-card__link:hover::after,
#home-page .guide-showcase__link:hover::after {
  opacity: 1;
  transform: translateX(0);
}

/* ─── Custom ApiPlayground component ────────────────────────── */

/* Styles src/components/page/ApiPlayground.jsx. */

.api-card {
  background: var(--surface-secondary-default);
  border: 1px solid var(--border-basic-secondary);
  border-radius: 14px;
  overflow: hidden;
  font-family: inherit;
  box-shadow: var(--shadow-api-card);
}

.api-chrome {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-basic-secondary);
  position: relative;
  background: var(--surface-tertiary-default);
}

.api-chrome-dots {
  display: flex;
  gap: 6px;
}

.api-chrome-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--border-basic-secondary);
}

.api-chrome-title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: 13px;
  font-family: monospace;
  color: var(--content-basic-secondary);
}

.api-content {
  padding: 0 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.api-tab-bar {
  display: flex;
  border-bottom: 1px solid var(--border-basic-secondary);
  margin: 0 -24px;
  padding: 0 24px;
}

.api-tab-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px 10px 0;
  margin-right: 4px;
  margin-bottom: -1px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--content-basic-secondary);
  font-size: 14px;
  font-weight: 400;
  font-family: inherit;
  cursor: pointer;
  outline: none;
}

.api-tab-btn:hover {
  color: var(--action-primary-default);
}

.api-tab-btn[data-active="true"] {
  border-bottom-color: var(--content-basic-primary);
  color: var(--content-basic-primary);
  font-weight: 500;
}

.api-token-hint {
  font-size: 13px;
  color: var(--content-basic-secondary);
}

.api-token-hint a {
  color: var(--content-basic-info) !important;
  text-decoration: none;
}

.api-token-input {
  width: 100%;
  background: var(--background-01);
  border: 1px solid var(--border-basic-primary);
  border-radius: 12px;
  padding: 11px 16px;
  color: var(--content-basic-primary);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  box-sizing: border-box;
}

.api-token-input:hover,
.api-token-input:focus {
  border-color: var(--border-basic-hover);
}

html.dark .api-token-input {
  background: var(--background-01) !important;
}

.api-request-row {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--border-basic-secondary);
  border-radius: 12px;
  padding: 8px 8px 8px 16px;
  background: var(--background-02);
}

.api-method {
  font-family: monospace;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 6px;
  flex-shrink: 0;
  letter-spacing: 0.03em;
}

.api-method-post {
  background: var(--surface-accent-emphasis-low-info);
  color: var(--content-api-method-post);
}

.api-method-get {
  background: var(--surface-accent-emphasis-low-positive);
  color: var(--content-basic-positive);
}

.api-path {
  flex: 1;
  font-family: monospace;
  font-size: 13px;
  color: var(--content-basic-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.api-send-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--content-basic-primary);
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--background-01);
  font-size: 15px;
  font-family: inherit;
  font-weight: 600;
  padding: 6px 16px;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}

.api-send-btn:hover {
  opacity: 0.88;
}

.api-send-btn:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.api-block {
  border: 1px solid var(--border-basic-secondary);
  border-radius: 10px;
  overflow: hidden;
}

.api-block-header {
  padding: 8px 16px;
  border-bottom: 1px solid var(--border-basic-secondary);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.api-response-header {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-basic-secondary);
  display: flex;
  align-items: center;
}

.api-block-label {
  color: var(--content-basic-disabled);
  font-family: monospace;
  font-size: 13px;
}

.api-copy-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 6px;
  color: var(--content-basic-disabled);
  padding: 4px;
  cursor: pointer;
  line-height: 0;
}

.api-copy-btn:hover {
  background: var(--surface-opacity-basic-hover);
  color: var(--content-basic-primary);
}

.api-copy-btn[data-copied="true"] {
  color: var(--content-basic-positive);
}

.api-block-body {
  background: var(--background-02);
  padding: 16px;
  overflow-x: auto;
}

.api-response-body {
  background: var(--background-02);
  padding: 16px;
  overflow-x: auto;
  max-height: 360px;
  overflow-y: auto;
}

.api-code {
  margin: 0;
  font-family: monospace;
  font-size: 13px;
  line-height: 1.5;
  color: var(--content-basic-secondary);
  white-space: pre;
  word-break: normal;
}

.api-status {
  font-weight: 600;
  font-family: monospace;
  font-size: 14px;
  padding-bottom: 2px;
}

.api-status[data-ok="true"] {
  color: var(--content-basic-positive);
  border-bottom: 2px solid var(--border-basic-positive);
}

.api-status[data-ok="false"] {
  color: var(--content-basic-negative);
  border-bottom: 2px solid var(--border-basic-negative);
}

.api-error {
  color: var(--content-basic-negative);
  font-size: 14px;
}

/* ─── AI Assistant panel ─────────────────────────────────────── */

#chat-assistant-sheet {
  background-color: var(--sidebar-background) !important;
  box-shadow: none !important;
}

#chat-assistant-sheet .prose {
  color: var(--content-basic-primary);
}

#chat-assistant-sheet .starter-question-text ~ button {
  color: var(--content-basic-info) !important;
  text-decoration: none;
  filter: none !important;
}

#chat-assistant-sheet .starter-question-text ~ button:hover {
  border-bottom: 1px solid currentColor !important;
  filter: none !important;
}

#chat-assistant-sheet .not-prose > a .text-primary {
  color: var(--content-basic-info) !important;
  filter: none !important;
  width: fit-content;
}

#chat-assistant-sheet .not-prose > a:hover .text-primary {
  border-bottom: 1px solid currentColor !important;
  filter: none !important;
}

#chat-assistant-sheet .not-prose > a .text-primary::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin-right: 6px;
  background-color: currentColor;
  -webkit-mask-image: url("/public/images/icons/file.svg");
  mask-image: url("/public/images/icons/file.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

html[data-assistant-state="open"] #chat-widget-container {
  right: calc(var(--assistant-sheet-width, 0px) + 20px) !important;
  transition: right 0.2s ease !important;
}

@media (min-width: 1280px) {
  #content-area {
    max-width: 51rem;
    margin-left: auto;
    margin-right: auto;
  }

  body:has(.api-section-heading-title) #content-area {
    max-width: 50vw;
  }
}

.cursor-col-resize {
  background-color: var(--border-basic-secondary) !important;
}

.chat-assistant-disclaimer-text {
  color: var(--content-basic-secondary) !important;
}

#chat-assistant-sheet .rounded-2xl,
.chat-assistant-floating-input .rounded-2xl {
  background-color: var(--background-01) !important;
  border-color: var(--border-basic-primary) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html.dark #chat-assistant-sheet .rounded-2xl,
html.dark .chat-assistant-floating-input .rounded-2xl {
  background-color: var(--surface-primary-disabled) !important;
  border-color: var(--border-basic-secondary) !important;
}

#chat-assistant-sheet .rounded-2xl:focus-within,
.chat-assistant-floating-input .rounded-2xl:focus-within {
  border-color: var(--border-basic-hover) !important;
}

.chat-assistant-floating-input::before {
  background-color: var(--background-02) !important;
}

.chat-assistant-send-button {
  background-color: var(--surface-tertiary-default) !important;
}

.chat-assistant-send-button:not(:disabled) {
  background-color: var(--content-basic-primary) !important;
}

/* ─── Text selection tooltip ─────────────────────────────────── */

#text-selection-tooltip-button {
  background-color: var(--surface-secondary-default) !important;
  border-color: var(--border-basic-primary) !important;
  box-shadow: none !important;
  color: var(--content-basic-primary) !important;
}

html.dark #text-selection-tooltip-button {
  background-color: var(--surface-primary-disabled) !important;
  border-color: var(--border-basic-secondary) !important;
}

#text-selection-tooltip-button > div:hover {
  background-color: var(--surface-opacity-basic-hover) !important;
}

#text-selection-tooltip-button svg {
  color: var(--content-basic-secondary) !important;
}

/* ─── Changelog filter ──────────────────────────────────────── */

@media (min-width: 1024px) {
  body:has(#changelog-marker) .update-container > :first-child {
    width: 12rem;
  }

  body:has(#changelog-marker) [data-component-part="update-content"] > :first-child {
    margin-top: 0.25rem;
  }
}

@media (min-width: 1280px) {
  body:has(#changelog-marker) #content-container > .flex-row-reverse.gap-x-12 {
    width: 100%;
    max-width: 80rem !important;
  }

  body:has(#changelog-marker) #content-area {
    max-width: none;
  }
}

body:has(#changelog-marker) [data-component-part="update-tag"] {
  margin-left: 0;
}

body:has(#changelog-marker) [data-component-part="update-label"] {
  color: var(--content-basic-secondary);
  font-weight: 400;
}

body:has(#changelog-marker) [data-component-part="update-tag-list"] {
  margin-top: 0.5rem;
}

#changelog-filters {
  display: none !important;
}

#custom-changelog-filters {
  display: none;
  flex-direction: column;
  gap: 24px;
  box-sizing: border-box;
  width: 19rem;
  padding-left: 2.5rem;
  font-size: 0.875rem;
}

@media (min-width: 1280px) {
  #custom-changelog-filters {
    display: flex;
  }
}

.ccf-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ccf-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  color: var(--content-basic-primary);
}

.ccf-title::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask-image: url("/public/images/icons/filter.svg");
  mask-image: url("/public/images/icons/filter.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.ccf-clear {
  border: none;
  background: transparent;
  color: var(--content-basic-info);
  font-weight: 500;
  font-size: 0.8125rem;
  cursor: pointer;
  padding: 0;
}

.ccf-clear:hover {
  text-decoration: underline;
}

.ccf-mode {
  display: flex;
  gap: 4px;
  padding: 3px;
  background-color: var(--surface-secondary-default);
  border-radius: 10px;
  width: fit-content;
}

.ccf-mode-btn {
  border: 1px solid transparent;
  background: transparent;
  color: var(--content-basic-primary);
  font-weight: 400;
  font-size: 0.8125rem;
  padding: 3px 12px;
  border-radius: 8px;
  cursor: pointer;
}

.ccf-mode-btn:hover {
  background-color: var(--surface-opacity-basic-hover);
}

.ccf-mode-btn.ccf-mode-active {
  background-color: var(--background-01);
  border-color: var(--border-basic-primary);
  color: var(--content-basic-primary);
  font-weight: 500;
}

.ccf-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ccf-group-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--content-basic-primary);
}

.ccf-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ccf-tag {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-basic-primary);
  background-color: transparent;
  color: var(--content-basic-primary);
  font-weight: 400;
  font-size: 0.8125rem;
  padding: 3px 12px;
  border-radius: 8px;
  cursor: pointer;
}

.ccf-tag:hover {
  background-color: var(--surface-opacity-basic-hover);
  border-color: var(--border-basic-hover);
  color: var(--content-basic-primary);
}

.ccf-tag.ccf-tag-active {
  background-color: var(--surface-tertiary-default);
  border-color: transparent;
  color: var(--content-basic-primary);
  font-weight: 500;
}

/* ─── JSON syntax highlighting ───────────────────────────────── */

.json-key {
  color: var(--content-basic-info);
}
.json-str {
  color: var(--content-code-string);
}
.json-bool {
  color: var(--content-code-boolean);
}
.json-num {
  color: var(--content-code-number);
}

/* ─── OAuth callback ────────────────────────────────────────── */

.oauth-callback-page {
  display: grid;
  min-height: calc(100vh - 4rem);
  place-items: center;
}

.oauth-callback-spinner {
  display: block;
  width: 2rem;
  height: 2rem;
  border: 3px solid var(--border-basic-primary);
  border-top-color: var(--content-basic-primary);
  border-radius: 50%;
  animation: oauth-callback-spin 0.8s linear infinite;
}

.oauth-callback-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes oauth-callback-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .oauth-callback-spinner {
    animation: none;
  }
}

.text-docs-oauth-error {
  position: fixed;
  z-index: 1000;
  top: 80px;
  right: 24px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-sizing: border-box;
  width: min(420px, calc(100vw - 32px));
  padding: 12px 14px;
  border: 1px solid rgba(220, 38, 38, 0.3);
  border-radius: 10px;
  background: var(--background-01);
  color: #b91c1c;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
  font-size: 0.8125rem;
  line-height: 1.45;
}

.text-docs-oauth-error span {
  flex: 1;
}

.text-docs-oauth-error button {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.text-docs-oauth-error button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

html.dark .text-docs-oauth-error {
  color: #fca5a5;
}

@media (max-width: 640px) {
  .text-docs-oauth-error {
    top: 72px;
    right: 16px;
  }
}

/* ─── API playground personal access tokens ─────────────────── */

.text-docs-pat-control {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  box-sizing: border-box;
  width: 100%;
  padding: var(--spacing-6) 0 0;
  border-top: 1px solid var(--border-basic-secondary);
  font-size: 0.875rem;
}

.text-docs-pat-control-prompt {
  min-width: 0;
  color: var(--content-basic-secondary);
  line-height: 1.4;
}

.text-docs-pat-control-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 16px;
  border: 1px solid var(--border-basic-primary);
  border-radius: 8px;
  background: transparent;
  color: var(--content-basic-primary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.text-docs-pat-control-button:hover {
  background: var(--surface-opacity-basic-hover);
  border-color: var(--border-basic-hover);
}

.text-docs-pat-control-button:focus-visible,
.text-docs-pat-dialog button:focus-visible,
.text-docs-pat-dialog input:focus-visible {
  outline: 2px solid var(--content-basic-info);
  outline-offset: 2px;
}

.text-docs-pat-dialog {
  box-sizing: border-box;
  width: min(520px, calc(100vw - 32px));
  max-width: 520px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 16px;
  background: transparent;
  color: var(--content-basic-primary);
}

.text-docs-pat-dialog[aria-labelledby="text-docs-pat-title-decision"] {
  width: min(610px, calc(100vw - 32px));
  max-width: 610px;
}

.text-docs-pat-dialog[aria-labelledby="text-docs-pat-title-result"] {
  width: min(608px, calc(100vw - 32px));
  max-width: 608px;
}

.text-docs-pat-dialog::backdrop {
  background: rgba(0, 0, 0, 0.56);
  backdrop-filter: blur(2px);
}

.text-docs-pat-card {
  position: relative;
  box-sizing: border-box;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  padding: 28px;
  overflow-y: auto;
  border: 1px solid var(--border-basic-primary);
  border-radius: 16px;
  background: var(--background-01);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.text-docs-pat-dialog[aria-labelledby="text-docs-pat-title-decision"] .text-docs-pat-card,
.text-docs-pat-dialog[aria-labelledby="text-docs-pat-title-result"] .text-docs-pat-card {
  border-radius: 20px;
}

.text-docs-pat-card h2 {
  margin: 0 40px 8px 0;
  color: var(--content-basic-primary);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
}

.text-docs-pat-card p {
  margin: 0;
}

.text-docs-pat-description,
.text-docs-pat-card [data-pat-view="checking"] > p,
.text-docs-pat-card [data-pat-view="decision"] > p,
.text-docs-pat-card [data-pat-view="result"] > p,
.text-docs-pat-result-header p {
  color: var(--content-basic-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
}

.text-docs-pat-close {
  position: absolute;
  top: 18px;
  right: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--content-basic-secondary);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.text-docs-pat-close:hover {
  background: var(--surface-opacity-basic-hover);
  color: var(--content-basic-primary);
}

.text-docs-pat-close svg {
  display: block;
}

.text-docs-pat-dialog[aria-labelledby="text-docs-pat-title-result"] .text-docs-pat-close {
  top: 22px;
  right: 22px;
}

.text-docs-pat-dialog [data-pat-view="decision"] h2 {
  margin-bottom: 12px;
  line-height: 24px;
}

.text-docs-pat-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 24px;
}

.text-docs-pat-dialog [data-pat-view="decision"] .text-docs-pat-form {
  gap: 16px;
  margin-top: 32px;
}

.text-docs-pat-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--content-basic-primary);
  font-size: 0.8125rem;
  font-weight: 600;
}

.text-docs-pat-field input {
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border-basic-primary);
  border-radius: 10px;
  background: var(--background-02);
  color: var(--content-basic-primary);
  font: inherit;
  font-weight: 400;
}

.text-docs-pat-dialog [data-pat-view="decision"] .text-docs-pat-field input {
  height: 44px;
  border-radius: 8px;
}

.text-docs-pat-field input:hover {
  border-color: var(--border-basic-hover);
}

.text-docs-pat-field input[aria-invalid="true"] {
  border-color: #dc2626;
}

.text-docs-pat-field-error {
  color: #b91c1c;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.45;
}

html.dark .text-docs-pat-field-error {
  color: #fca5a5;
}

.text-docs-pat-scopes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.text-docs-pat-scopes legend {
  margin-bottom: 8px;
  color: var(--content-basic-primary);
  font-size: 0.8125rem;
  font-weight: 600;
}

.text-docs-pat-scopes [data-pat-scopes] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.text-docs-pat-scopes code {
  padding: 5px 8px;
  border: 1px solid var(--border-basic-primary);
  border-radius: 8px;
  background: var(--surface-secondary-default);
  color: var(--content-basic-primary);
  font-size: 0.8125rem;
}

.text-docs-pat-scopes-toggle {
  align-self: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--content-basic-info);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.45;
  cursor: pointer;
}

.text-docs-pat-scopes-toggle:not(:disabled):hover {
  text-decoration: underline;
}

.text-docs-pat-field p,
.text-docs-pat-scopes p {
  margin: 0;
  color: var(--content-basic-secondary);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.45;
}

.text-docs-pat-error {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(220, 38, 38, 0.1);
  color: #b91c1c;
  font-size: 0.8125rem;
  line-height: 1.45;
}

.text-docs-pat-progress {
  margin-top: 20px !important;
  color: var(--content-basic-secondary);
  font-size: 0.8125rem;
}

html.dark .text-docs-pat-error {
  color: #fca5a5;
}

.text-docs-pat-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

.text-docs-pat-actions button {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 10px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
}

[data-pat-copy-confirmation] {
  color: #007031;
}

.text-docs-pat-dialog button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.text-docs-pat-primary {
  border: 1px solid var(--content-basic-primary);
  background: var(--content-basic-primary);
  color: var(--background-01);
}

.text-docs-pat-primary:not(:disabled):hover {
  opacity: 0.82;
}

.text-docs-pat-secondary {
  border: 1px solid var(--border-basic-primary);
  background: transparent;
  color: var(--content-basic-primary);
}

.text-docs-pat-secondary:not(:disabled):hover {
  background: var(--surface-opacity-basic-hover);
}

.text-docs-pat-secret-notice {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 20px;
  overflow: hidden;
  border: 1px solid rgba(250, 204, 20, 0.3);
  border-radius: 8px;
  background: rgba(250, 204, 20, 0.2);
  color: var(--content-basic-primary) !important;
  font-size: 14px !important;
  line-height: 21px;
  word-break: break-word;
}

.text-docs-pat-secret-notice-icon {
  display: block;
  flex: 0 0 20px;
  width: 20px;
  min-width: 20px;
  height: 20px;
  visibility: visible;
  opacity: 1;
  color: #755b00;
}

.text-docs-pat-secret-notice-icon path {
  stroke: currentColor;
}

html.dark .text-docs-pat-secret-notice-icon {
  color: #facc15;
}

.text-docs-pat-secret-notice-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.text-docs-pat-secret-notice-title {
  font-weight: 600;
  font-size: 16px;
  line-height: 24px;
}

.text-docs-pat-secret {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 16px;
  border-radius: 8px;
  background: var(--surface-secondary-default);
}

html.dark .text-docs-pat-secret {
  background: #1d1d20;
}

.text-docs-pat-secret-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.text-docs-pat-secret-label,
.text-docs-pat-secret-caption {
  color: var(--content-basic-secondary);
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
}

.text-docs-pat-secret-value {
  display: flex;
  align-items: center;
  gap: 8px;
}

.text-docs-pat-secret-value input {
  flex: 0 1 auto;
  width: auto;
  max-width: calc(100% - 28px);
  min-width: 0;
  height: 21px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--content-basic-primary);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 21px;
  field-sizing: content;
  text-overflow: ellipsis;
}

.text-docs-pat-copy {
  box-sizing: border-box;
  display: inline-flex;
  flex: 0 0 20px;
  align-items: center;
  justify-content: center;
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--content-basic-primary);
  cursor: pointer;
}

.text-docs-pat-copy:not(:disabled):hover {
  color: var(--content-basic-secondary);
}

.text-docs-pat-copy svg {
  display: block;
  flex: 0 0 20px;
}

.text-docs-pat-copy-status {
  min-height: 1.25rem;
  margin-top: 8px !important;
  color: var(--content-basic-secondary);
  font-size: 0.75rem;
}

.text-docs-pat-dialog [data-pat-view="result"]:not([hidden]) {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.text-docs-pat-result-content {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.text-docs-pat-result-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.text-docs-pat-result-header h2 {
  margin-bottom: 0;
  line-height: 24px;
}

.text-docs-pat-dialog [data-pat-view="result"] > .text-docs-pat-actions {
  margin-top: 0;
}

.text-docs-pat-dialog [data-pat-view="result"] > .text-docs-pat-actions button {
  padding: 0 15px;
  border-radius: 8px;
}

@media (max-width: 560px) {
  .text-docs-pat-card {
    padding: 22px;
  }

  .text-docs-pat-actions {
    flex-direction: column;
  }

  .text-docs-pat-actions button {
    width: 100%;
  }
}
52:["$","$L57",null,{"cssFiles":[{"_id":"6a0c232f9b8894f6eb02b37e","filePath":"src/styles/style.css","subdomain":"text-56a1eab5","__v":0,"content":"$58"}]}]
5a:T44d,const SECTIONS = [
  { label: "Messaging", before: "Agent Chat API" },
  { label: "Management", before: "Configuration API" },
  { label: "Data and analytics", before: "Reports API" },
  { label: "Chat widget", before: "Chat Widget JavaScript API" },
  { label: "SDKs", before: "Accounts SDK" },
];

const inject = () => {
  const inserted = new Set(Array.from(document.querySelectorAll(".nav-section-header"), (el) => el.textContent));

  for (const section of SECTIONS) {
    if (inserted.has(section.label)) continue;

    const item = document.querySelector(`[data-dropdown-item="${section.before}"]`);
    if (!item) continue;

    const header = document.createElement("div");
    header.className = "nav-section-header";
    header.textContent = section.label;
    item.parentNode.insertBefore(header, item);
    inserted.add(section.label);
  }
};

let rafPending = false;
new MutationObserver(() => {
  if (rafPending) return;
  rafPending = true;
  requestAnimationFrame(() => {
    rafPending = false;
    inject();
  });
}).observe(document.body, {
  childList: true,
  subtree: true,
});
5b:T45b,window.__lc = window.__lc || {};
window.__lc.organizationId = "4c8c0751-837f-4a11-928e-047b2d095307";
window.__lc.integration_name = "manual_onboarding";
window.__lc.product_name = "text";
(function (n, t, c) {
  function i(n) {
    return e._h ? e._h.apply(null, n) : e._q.push(n);
  }
  var e = {
    _q: [],
    _h: null,
    _v: "2.0",
    on: function () {
      i(["on", c.call(arguments)]);
    },
    once: function () {
      i(["once", c.call(arguments)]);
    },
    off: function () {
      i(["off", c.call(arguments)]);
    },
    get: function () {
      if (!e._h) throw new Error("[LiveChatWidget] You can't use getters before load.");
      return i(["get", c.call(arguments)]);
    },
    call: function () {
      i(["call", c.call(arguments)]);
    },
    init: function () {
      var n = t.createElement("script");
      ((n.async = !0),
        (n.type = "text/javascript"),
        (n.src = "https://cdn.livechatinc.com/tracking.js"),
        t.head.appendChild(n));
    },
  };
  (!n.__lc.asyncInit && e.init(), (n.LiveChatWidget = n.LiveChatWidget || e));
})(window, document, [].slice);
5c:T8d0,const FEEDBACK_BUTTON_SELECTOR = "#feedback-thumbs-up, #feedback-thumbs-down";
const FEEDBACK_CONFIRMATION_CLASS = "feedback-confirmation";
const FEEDBACK_SUBMITTED_CLASS = "feedback-toolbar-submitted";

let currentPath = window.location.pathname;

function resetFeedback(toolbar) {
  toolbar.classList.remove(FEEDBACK_SUBMITTED_CLASS);
  toolbar.querySelector(`.${FEEDBACK_CONFIRMATION_CLASS}`)?.remove();
}

function resetFeedbackAfterNavigation() {
  if (window.location.pathname === currentPath) return;

  currentPath = window.location.pathname;
  document.querySelectorAll(`.${FEEDBACK_SUBMITTED_CLASS}`).forEach(resetFeedback);
}

function repositionFeedback() {
  resetFeedbackAfterNavigation();

  const toolbar = document.querySelector(".feedback-toolbar");
  const pagination = document.getElementById("pagination");
  if (!toolbar || !pagination) return;
  if (toolbar.previousElementSibling === pagination) return;
  pagination.after(toolbar);
}

let _rafPending = false;
function schedule() {
  if (_rafPending) return;
  _rafPending = true;
  requestAnimationFrame(() => {
    _rafPending = false;
    repositionFeedback();
  });
}

if (document.readyState === "loading") {
  document.addEventListener("DOMContentLoaded", () => {
    repositionFeedback();
    schedule();
  });
} else {
  repositionFeedback();
  schedule();
}

new MutationObserver(schedule).observe(document.body, {
  childList: true,
  subtree: true,
});

function showFeedbackConfirmation(toolbar) {
  if (toolbar.classList.contains(FEEDBACK_SUBMITTED_CLASS)) return;

  const confirmation = document.createElement("p");
  confirmation.className = FEEDBACK_CONFIRMATION_CLASS;
  confirmation.setAttribute("role", "status");
  confirmation.setAttribute("aria-live", "polite");
  confirmation.textContent = "Thank you for your feedback!";

  toolbar.append(confirmation);
  toolbar.classList.add(FEEDBACK_SUBMITTED_CLASS);
}

document.addEventListener("click", (event) => {
  const button = event.target.closest?.(FEEDBACK_BUTTON_SELECTOR);
  const toolbar = button?.closest(".feedback-toolbar");
  if (!toolbar) return;

  // Let Mintlify's click handler submit the rating before updating the toolbar.
  requestAnimationFrame(() => showFeedbackConfirmation(toolbar));
});
5d:T13fa,(function () {
  const VERSION_PATTERN = /^v\d+(\.\d+)*$/;

  function getTags(el) {
    return Array.from(el.querySelectorAll('[data-component-part="update-tag"]')).map((span) => span.textContent.trim());
  }

  function collectTagOrder() {
    const versions = [];
    const apis = [];
    document.querySelectorAll(".update-container").forEach((el) => {
      getTags(el).forEach((tag) => {
        const bucket = VERSION_PATTERN.test(tag) ? versions : apis;
        if (!bucket.includes(tag)) bucket.push(tag);
      });
    });
    return { versions, apis };
  }

  function buildPanel(tagGroups) {
    const state = { mode: "or", selected: new Set() };

    const panel = document.createElement("div");
    panel.id = "custom-changelog-filters";

    const header = document.createElement("div");
    header.className = "ccf-header";

    const title = document.createElement("span");
    title.className = "ccf-title";
    title.textContent = "Filters";

    const clearBtn = document.createElement("button");
    clearBtn.type = "button";
    clearBtn.className = "ccf-clear";
    clearBtn.textContent = "Clear";
    clearBtn.hidden = true;

    header.append(title, clearBtn);

    const modeRow = document.createElement("div");
    modeRow.className = "ccf-mode";

    const anyBtn = document.createElement("button");
    anyBtn.type = "button";
    anyBtn.className = "ccf-mode-btn ccf-mode-active";
    anyBtn.dataset.mode = "or";
    anyBtn.textContent = "Match any";

    const allBtn = document.createElement("button");
    allBtn.type = "button";
    allBtn.className = "ccf-mode-btn";
    allBtn.dataset.mode = "and";
    allBtn.textContent = "Match all";

    modeRow.append(anyBtn, allBtn);

    function applyFilters() {
      const hasSelection = state.selected.size > 0;
      clearBtn.hidden = !hasSelection;

      document.querySelectorAll(".update-container").forEach((el) => {
        if (!hasSelection) {
          el.style.display = "";
          return;
        }
        const tags = getTags(el);
        const selected = Array.from(state.selected);
        const matches =
          state.mode === "and"
            ? selected.every((tag) => tags.includes(tag))
            : selected.some((tag) => tags.includes(tag));
        el.style.display = matches ? "" : "none";
      });
    }

    [anyBtn, allBtn].forEach((btn) => {
      btn.addEventListener("click", () => {
        if (btn.dataset.mode === state.mode) return;
        state.mode = btn.dataset.mode;
        anyBtn.classList.toggle("ccf-mode-active", state.mode === "or");
        allBtn.classList.toggle("ccf-mode-active", state.mode === "and");
        applyFilters();
      });
    });

    function buildGroup(label, tags) {
      if (!tags.length) return null;

      const group = document.createElement("div");
      group.className = "ccf-group";

      const groupLabel = document.createElement("div");
      groupLabel.className = "ccf-group-label";
      groupLabel.textContent = label;

      const tagRow = document.createElement("div");
      tagRow.className = "ccf-tags";

      tags.forEach((tag) => {
        const btn = document.createElement("button");
        btn.type = "button";
        btn.className = "ccf-tag";
        btn.dataset.tag = tag;
        btn.textContent = tag;

        btn.addEventListener("click", () => {
          if (state.selected.has(tag)) {
            state.selected.delete(tag);
            btn.classList.remove("ccf-tag-active");
          } else {
            state.selected.add(tag);
            btn.classList.add("ccf-tag-active");
          }
          applyFilters();
        });

        tagRow.appendChild(btn);
      });

      group.append(groupLabel, tagRow);
      return group;
    }

    clearBtn.addEventListener("click", () => {
      state.selected.clear();
      panel.querySelectorAll(".ccf-tag-active").forEach((btn) => btn.classList.remove("ccf-tag-active"));
      applyFilters();
    });

    panel.append(header, modeRow);
    const versionGroup = buildGroup("Version", tagGroups.versions);
    const apiGroup = buildGroup("API", tagGroups.apis);
    if (versionGroup) panel.appendChild(versionGroup);
    if (apiGroup) panel.appendChild(apiGroup);

    return panel;
  }

  function init() {
    const nativePanel = document.getElementById("changelog-filters");
    if (!nativePanel) return;

    const sideLayout = nativePanel.parentElement;
    if (!sideLayout || sideLayout.querySelector("#custom-changelog-filters")) return;

    const tagGroups = collectTagOrder();
    if (!tagGroups.versions.length && !tagGroups.apis.length) return;

    sideLayout.insertBefore(buildPanel(tagGroups), nativePanel);
  }

  let rafPending = false;
  function schedule() {
    if (rafPending) return;
    rafPending = true;
    requestAnimationFrame(() => {
      rafPending = false;
      init();
    });
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", schedule);
  } else {
    schedule();
  }

  new MutationObserver(schedule).observe(document.body, {
    childList: true,
    subtree: true,
  });
})();
5e:T7b3a,(() => {
  "use strict";

  const INITIALIZED_KEY = "__textDocsOAuthNavbarInitialized";
  const OAUTH_API_KEY = "__TEXT_DOCS_OAUTH__";
  const OAUTH_READY_EVENT = "text-docs:oauth-ready";
  const OAUTH_STATE_EVENT = "text-docs:oauth-state-change";
  const ERROR_SURFACE_ID = "text-docs-oauth-error";
  if (window[INITIALIZED_KEY]) return;
  window[INITIALIZED_KEY] = true;

  const PRODUCTION_ORIGIN = "https://www.text.com";
  const ENVIRONMENT =
    window.location.origin === PRODUCTION_ORIGIN
      ? {
          clientId: "b6daa12569ce913e115155baa69bbafc",
          serverUrl: "https://accounts.livechat.com",
        }
      : {
          clientId: "521cea1ca2ac00402c726e01098131be",
          serverUrl: "https://accounts.labs.livechat.com",
        };

  const CONFIG = Object.freeze({
    ...ENVIRONMENT,
    callbackPath: "/sign-in",
    storageKey: "text.docs.oauth.session.v1",
    legacyStorageKey: "text.docs.oauth-poc.session.v1",
    transactionStorageKey: "text.docs.oauth.transaction.v1",
    errorStorageKey: "text.docs.oauth.error.v1",
    transactionLifetime: 5 * 60 * 1000,
    requestTimeout: 15 * 1000,
    expirationSkew: 30 * 1000,
  });

  const BUSY_STATUSES = new Set(["authorizing", "exchanging", "validating", "revoking"]);

  let state = {
    status: "checking",
    authenticated: false,
    error: "",
  };
  let expirationTimer;
  let validatedSession = null;
  let restoringAccessToken = "";
  let updateScheduled = false;
  let restoreGeneration = 0;

  const getErrorMessage = (error, fallback) => {
    if (typeof error === "string" && error) return error;
    if (!error || typeof error !== "object") return fallback;
    return error.description || error.error_description || error.oauth_exception || error.message || fallback;
  };

  const readErrorResponse = async (response) => {
    try {
      return await response.json();
    } catch {
      return null;
    }
  };

  const createHttpError = async (response, fallback) => {
    const body = await readErrorResponse(response);
    const error = new Error(getErrorMessage(body, fallback));
    error.status = response.status;
    return error;
  };

  const request = async (path, options = {}) => {
    const controller = new AbortController();
    const timeout = window.setTimeout(() => controller.abort(), CONFIG.requestTimeout);

    try {
      return await fetch(new URL(path, CONFIG.serverUrl), {
        ...options,
        cache: "no-store",
        credentials: "omit",
        signal: controller.signal,
      });
    } catch (error) {
      if (error?.name === "AbortError") {
        throw new Error("The request to Text Accounts timed out.");
      }
      throw error;
    } finally {
      window.clearTimeout(timeout);
    }
  };

  const getStorage = () => {
    try {
      return window.localStorage;
    } catch {
      return null;
    }
  };

  const getTransactionStorage = () => {
    try {
      return window.sessionStorage;
    } catch {
      return null;
    }
  };

  const removeStoredSession = () => {
    const storage = getStorage();
    if (!storage) return;

    try {
      storage.removeItem(CONFIG.storageKey);
      storage.removeItem(CONFIG.legacyStorageKey);
    } catch {
      // An unavailable storage backend is equivalent to an empty session.
    }
  };

  const parseStoredSession = (value) => {
    if (!value) return null;

    try {
      const session = JSON.parse(value);
      if (
        typeof session?.accessToken !== "string" ||
        !session.accessToken ||
        typeof session?.expiresAt !== "number" ||
        !Number.isFinite(session.expiresAt) ||
        session.expiresAt <= Date.now() + CONFIG.expirationSkew
      ) {
        return null;
      }

      if (session.clientId && session.clientId !== CONFIG.clientId) return null;
      if (session.serverUrl && session.serverUrl !== CONFIG.serverUrl) return null;
      return session;
    } catch {
      return null;
    }
  };

  const readStoredSession = () => {
    const storage = getStorage();
    if (!storage) return null;

    try {
      const currentSession = parseStoredSession(storage.getItem(CONFIG.storageKey));
      if (currentSession) return currentSession;

      const legacySession = parseStoredSession(storage.getItem(CONFIG.legacyStorageKey));
      if (!legacySession) {
        removeStoredSession();
        return null;
      }

      const migratedSession = {
        accessToken: legacySession.accessToken,
        expiresAt: legacySession.expiresAt,
        clientId: CONFIG.clientId,
        serverUrl: CONFIG.serverUrl,
      };
      storage.setItem(CONFIG.storageKey, JSON.stringify(migratedSession));
      storage.removeItem(CONFIG.legacyStorageKey);
      return migratedSession;
    } catch {
      return null;
    }
  };

  const writeStoredSession = ({ accessToken, expiresIn }) => {
    const storage = getStorage();
    if (!storage) {
      throw new Error("Browser storage is unavailable. Enable site storage and try again.");
    }

    const lifetime = Number(expiresIn);
    if (typeof accessToken !== "string" || !accessToken || !Number.isFinite(lifetime) || lifetime <= 0) {
      throw new Error("The token response is incomplete.");
    }

    const session = {
      accessToken,
      expiresAt: Date.now() + lifetime * 1000,
      clientId: CONFIG.clientId,
      serverUrl: CONFIG.serverUrl,
    };

    try {
      storage.setItem(CONFIG.storageKey, JSON.stringify(session));
      storage.removeItem(CONFIG.legacyStorageKey);
    } catch {
      throw new Error("The OAuth session could not be saved in browser storage.");
    }

    return session;
  };

  const removeStoredTransaction = () => {
    const storage = getTransactionStorage();
    if (!storage) return;

    try {
      storage.removeItem(CONFIG.transactionStorageKey);
    } catch {
      // The transaction expires naturally if browser storage becomes unavailable.
    }
  };

  const writeStoredTransaction = ({ state, codeVerifier, redirectUri, returnUrl }) => {
    const storage = getTransactionStorage();
    if (!storage) {
      throw new Error("Browser session storage is unavailable. Enable site storage and try again.");
    }

    const transaction = {
      state,
      codeVerifier,
      redirectUri,
      returnUrl,
      createdAt: Date.now(),
    };

    try {
      storage.setItem(CONFIG.transactionStorageKey, JSON.stringify(transaction));
    } catch {
      throw new Error("The OAuth transaction could not be saved in browser session storage.");
    }
  };

  const readStoredTransaction = () => {
    const storage = getTransactionStorage();
    if (!storage) return null;

    try {
      const transaction = JSON.parse(storage.getItem(CONFIG.transactionStorageKey));
      if (
        typeof transaction?.state !== "string" ||
        !transaction.state ||
        typeof transaction?.codeVerifier !== "string" ||
        !transaction.codeVerifier ||
        typeof transaction?.redirectUri !== "string" ||
        !transaction.redirectUri ||
        typeof transaction?.returnUrl !== "string" ||
        !transaction.returnUrl ||
        typeof transaction?.createdAt !== "number" ||
        !Number.isFinite(transaction.createdAt) ||
        transaction.createdAt < Date.now() - CONFIG.transactionLifetime
      ) {
        removeStoredTransaction();
        return null;
      }

      return transaction;
    } catch {
      removeStoredTransaction();
      return null;
    }
  };

  const removeStoredError = () => {
    const storage = getTransactionStorage();
    if (!storage) return;

    try {
      storage.removeItem(CONFIG.errorStorageKey);
    } catch {
      // The error is also held in memory until the callback redirects.
    }
  };

  const writeStoredError = (message) => {
    const storage = getTransactionStorage();
    if (!storage || typeof message !== "string" || !message) return;

    try {
      storage.setItem(
        CONFIG.errorStorageKey,
        JSON.stringify({ message: message.trim().slice(0, 500), createdAt: Date.now() }),
      );
    } catch {
      // The callback still redirects safely if browser storage is unavailable.
    }
  };

  const readStoredError = () => {
    const storage = getTransactionStorage();
    if (!storage) return "";

    try {
      const storedError = JSON.parse(storage.getItem(CONFIG.errorStorageKey));
      removeStoredError();
      if (
        typeof storedError?.message !== "string" ||
        !storedError.message ||
        typeof storedError?.createdAt !== "number" ||
        !Number.isFinite(storedError.createdAt) ||
        storedError.createdAt < Date.now() - CONFIG.transactionLifetime
      ) {
        return "";
      }
      return storedError.message;
    } catch {
      removeStoredError();
      return "";
    }
  };

  const normalizePath = (path) => path.replace(/\/+$/, "") || "/";

  const getDocsBasePath = () => {
    const pathname = normalizePath(new URL(window.location.href).pathname);
    return pathname === "/docs" || pathname.startsWith("/docs/") ? "/docs" : "";
  };

  const getDocsUrl = (path) => new URL(`${getDocsBasePath()}${path}`, window.location.origin).toString();

  const isOAuthLink = (link) => {
    try {
      const href = link.getAttribute("href")?.trim();
      if (!href || href.startsWith("#")) return false;

      const url = new URL(link.href, window.location.href);
      return normalizePath(url.pathname).endsWith(CONFIG.callbackPath);
    } catch {
      return false;
    }
  };

  const getOAuthLinks = () => Array.from(document.querySelectorAll("a[href]")).filter(isOAuthLink);

  const isCreateAccountLink = (link) => {
    try {
      const url = new URL(link.href, window.location.href);
      return (
        url.origin === "https://accounts.livechat.com" &&
        url.pathname === "/signup" &&
        url.searchParams.get("source_id") === "header-signup"
      );
    } catch {
      return false;
    }
  };

  const getCreateAccountLinks = () => Array.from(document.querySelectorAll("a[href]")).filter(isCreateAccountLink);

  const getErrorSurface = () => document.getElementById?.(ERROR_SURFACE_ID) || null;

  const removeErrorSurface = () => getErrorSurface()?.remove();

  const createErrorSurface = () => {
    if (!document.body || typeof document.createElement !== "function") return null;
    const surface = document.createElement("div");
    surface.id = ERROR_SURFACE_ID;
    surface.className = "text-docs-oauth-error print:hidden";
    surface.setAttribute("role", "alert");

    const message = document.createElement("span");
    message.setAttribute("data-text-docs-oauth-error-message", "");
    surface.append(message);

    const dismiss = document.createElement("button");
    dismiss.type = "button";
    dismiss.setAttribute("aria-label", "Dismiss authentication error");
    dismiss.textContent = "×";
    dismiss.addEventListener("click", () => setState({ error: "" }));
    surface.append(dismiss);
    document.body.append(surface);
    return surface;
  };

  const updateErrorSurface = () => {
    if (!state.error) {
      removeErrorSurface();
      return;
    }
    const surface = getErrorSurface() || createErrorSurface();
    const message = surface?.querySelector("[data-text-docs-oauth-error-message]");
    if (message && message.textContent !== state.error) message.textContent = state.error;
  };

  const isBusy = () => BUSY_STATUSES.has(state.status);

  const getLinkLabel = () => {
    if (state.status === "authorizing") return "Signing in…";
    if (state.status === "exchanging" || state.status === "validating") return "Finishing sign-in…";
    if (state.status === "revoking") return "Signing out…";
    return state.authenticated ? "Sign out" : "Sign in";
  };

  const updateNavbarLinks = () => {
    const label = getLinkLabel();
    const busy = isBusy();

    getOAuthLinks().forEach((link) => {
      link.href = getDocsUrl(CONFIG.callbackPath);
      if (link.textContent.trim() !== label) link.textContent = label;
      link.setAttribute("aria-label", label);
      if (busy) {
        link.setAttribute("aria-busy", "true");
        link.setAttribute("aria-disabled", "true");
      } else {
        link.removeAttribute("aria-busy");
        link.removeAttribute("aria-disabled");
      }
    });

    getCreateAccountLinks().forEach((link) => {
      if (state.authenticated || state.status === "revoking") {
        link.setAttribute("hidden", "");
      } else {
        link.removeAttribute("hidden");
      }
    });
    updateErrorSurface();
  };

  const scheduleNavbarUpdate = () => {
    if (updateScheduled) return;
    updateScheduled = true;
    window.requestAnimationFrame(() => {
      updateScheduled = false;
      updateNavbarLinks();
    });
  };

  const parseGrantedScopes = (value) => {
    if (Array.isArray(value)) return new Set(value.filter((scope) => typeof scope === "string" && scope));
    if (typeof value !== "string") return null;
    return new Set(value.split(/[\s,]+/).filter(Boolean));
  };

  const hasCurrentValidatedSession = () => {
    const storedSession = readStoredSession();
    return Boolean(
      state.authenticated &&
      validatedSession &&
      storedSession &&
      validatedSession.accessToken === storedSession.accessToken,
    );
  };

  const getGrantedScopes = () => (hasCurrentValidatedSession() ? validatedSession.grantedScopes : null);

  const getPublicState = () => {
    const authenticated = hasCurrentValidatedSession();
    return {
      authenticated,
      status: state.status,
      accountId: authenticated ? validatedSession.accountId : "",
      organizationId: authenticated ? validatedSession.organizationId : "",
    };
  };

  const publishState = () => {
    window.dispatchEvent(new CustomEvent(OAUTH_STATE_EVENT, { detail: getPublicState() }));
  };

  const setState = (changes) => {
    state = { ...state, ...changes };
    scheduleNavbarUpdate();
    publishState();
  };

  const scheduleExpiration = (session) => {
    window.clearTimeout(expirationTimer);
    if (!session) return;

    const maximumDelay = 2_147_483_647;
    const remaining = Math.min(Math.max(session.expiresAt - CONFIG.expirationSkew - Date.now(), 0), maximumDelay);

    expirationTimer = window.setTimeout(() => {
      const storedSession = readStoredSession();
      scheduleExpiration(storedSession);
      if (!storedSession) {
        validatedSession = null;
        setState({ status: "idle", authenticated: false, error: "" });
      } else if (validatedSession?.accessToken !== storedSession.accessToken) {
        void restoreSession();
      }
    }, remaining);
  };

  const base64UrlEncode = (bytes) => {
    let value = "";
    bytes.forEach((byte) => {
      value += String.fromCharCode(byte);
    });
    return window.btoa(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
  };

  const randomBase64Url = (byteLength) => {
    const bytes = new Uint8Array(byteLength);
    window.crypto.getRandomValues(bytes);
    return base64UrlEncode(bytes);
  };

  const createCodeChallenge = async (codeVerifier) => {
    if (!window.crypto?.subtle || typeof TextEncoder === "undefined") {
      throw new Error("This browser does not support the Web Crypto API required for PKCE.");
    }

    const input = new TextEncoder().encode(codeVerifier);
    const digest = await window.crypto.subtle.digest("SHA-256", input);
    return base64UrlEncode(new Uint8Array(digest));
  };

  const createAuthorizationRequest = async (redirectUri) => {
    const state = randomBase64Url(24);
    const codeVerifier = randomBase64Url(96);
    const codeChallenge = await createCodeChallenge(codeVerifier);
    const authorizationUrl = new URL(CONFIG.serverUrl);

    authorizationUrl.searchParams.set("client_id", CONFIG.clientId);
    authorizationUrl.searchParams.set("redirect_uri", redirectUri);
    authorizationUrl.searchParams.set("response_type", "code");
    authorizationUrl.searchParams.set("state", state);
    authorizationUrl.searchParams.set("code_challenge", codeChallenge);
    authorizationUrl.searchParams.set("code_challenge_method", "S256");

    return { authorizationUrl: authorizationUrl.toString(), state, codeVerifier };
  };

  const validateAccessToken = async (accessToken) => {
    const response = await request("/v2/info", {
      headers: { Authorization: `Bearer ${accessToken}` },
    });

    if (!response.ok) {
      throw await createHttpError(response, `Token validation failed with ${response.status}.`);
    }

    const tokenInfo = await response.json();
    if (tokenInfo.client_id !== CONFIG.clientId) {
      throw new Error("Text Accounts returned a token for a different OAuth client.");
    }

    const accountId = typeof tokenInfo.account_id === "string" ? tokenInfo.account_id.trim() : "";
    const organizationId = typeof tokenInfo.organization_id === "string" ? tokenInfo.organization_id.trim() : "";
    if (!accountId || !organizationId) {
      throw new Error("Text Accounts returned an incomplete token identity.");
    }

    return {
      accessToken,
      accountId,
      organizationId,
      grantedScopes: parseGrantedScopes(tokenInfo.scope),
    };
  };

  const revokeAccessToken = async (accessToken) => {
    const response = await request("/v2/token", {
      method: "DELETE",
      headers: { Authorization: `Bearer ${accessToken}` },
    });

    if (!response.ok && response.status !== 401 && response.status !== 404) {
      throw await createHttpError(response, `Token revocation failed with ${response.status}.`);
    }
  };

  const invalidateAccountsSession = async (accessToken) => {
    const response = await request("/v2/sessions/my", {
      method: "DELETE",
      headers: { Authorization: `Bearer ${accessToken}` },
    });

    if (response.status === 403) {
      throw new Error(
        "Text Accounts could not end the session. Confirm that the OAuth client grants the `sessions-my:rw` scope.",
      );
    }

    if (!response.ok && response.status !== 401 && response.status !== 404) {
      throw await createHttpError(response, `Accounts session invalidation failed with ${response.status}.`);
    }
  };

  const getRedirectUri = () => getDocsUrl(CONFIG.callbackPath);

  const exchangeAuthorizationCode = async ({ code, codeVerifier, redirectUri }) => {
    const tokenResponse = await request("/v2/token", {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        grant_type: "authorization_code",
        code,
        client_id: CONFIG.clientId,
        redirect_uri: redirectUri,
        code_verifier: codeVerifier,
      }),
    });

    if (!tokenResponse.ok) {
      throw await createHttpError(tokenResponse, `Code exchange failed with ${tokenResponse.status}.`);
    }

    const token = await tokenResponse.json();
    if (typeof token?.access_token !== "string" || !token.access_token) {
      throw new Error("The token response is incomplete.");
    }

    return token;
  };

  const cleanAuthorizationResponseUrl = () => {
    const url = new URL(window.location.href);
    ["code", "state", "error", "error_description", "error_uri", "oauth_exception"].forEach((parameter) => {
      url.searchParams.delete(parameter);
    });

    try {
      window.history.replaceState(null, "", `${url.pathname}${url.search}${url.hash}`);
    } catch {
      // Authentication can continue if the browser does not allow history updates.
    }
  };

  const getSafeReturnUrl = (value) => {
    try {
      if (typeof value !== "string" || !value) throw new Error("Missing return URL.");

      const url = new URL(value, window.location.origin);
      if (url.origin !== window.location.origin) throw new Error("Invalid return URL origin.");
      if (normalizePath(url.pathname).endsWith(CONFIG.callbackPath)) {
        throw new Error("The OAuth callback cannot be used as a return URL.");
      }
      return url.toString();
    } catch {
      return getDocsUrl("/authentication/overview");
    }
  };

  const isCallbackPage = () => {
    try {
      return normalizePath(new URL(window.location.href).pathname).endsWith(CONFIG.callbackPath);
    } catch {
      return false;
    }
  };

  const completeRedirectSignIn = async () => {
    if (!isCallbackPage()) return false;

    const callbackUrl = new URL(window.location.href);
    const hasAuthorizationResponse =
      callbackUrl.searchParams.has("code") ||
      callbackUrl.searchParams.has("error") ||
      callbackUrl.searchParams.has("oauth_exception");

    if (!hasAuthorizationResponse) return false;

    const generation = ++restoreGeneration;
    const transaction = readStoredTransaction();
    removeStoredTransaction();
    cleanAuthorizationResponseUrl();
    let issuedAccessToken;

    try {
      if (!transaction) {
        throw new Error("The OAuth transaction is missing or expired. Start the sign-in flow again.");
      }

      if (callbackUrl.searchParams.get("state") !== transaction.state) {
        throw new Error("The OAuth state returned by the authorization server is invalid.");
      }

      const authorizationError =
        callbackUrl.searchParams.get("error_description") ||
        callbackUrl.searchParams.get("oauth_exception") ||
        callbackUrl.searchParams.get("error");
      if (authorizationError) throw new Error(authorizationError);

      const code = callbackUrl.searchParams.get("code");
      if (!code) throw new Error("The authorization server did not return a code.");

      validatedSession = null;
      restoringAccessToken = "";
      setState({ status: "exchanging", authenticated: false, error: "" });
      const token = await exchangeAuthorizationCode({
        code,
        codeVerifier: transaction.codeVerifier,
        redirectUri: transaction.redirectUri,
      });
      issuedAccessToken = token.access_token;

      setState({ status: "validating" });
      const tokenInfo = await validateAccessToken(issuedAccessToken);

      if (generation !== restoreGeneration) {
        await revokeAccessToken(issuedAccessToken).catch(() => {});
        window.location.replace(getSafeReturnUrl(transaction.returnUrl));
        return true;
      }

      const session = writeStoredSession({
        accessToken: issuedAccessToken,
        expiresIn: token.expires_in,
      });
      validatedSession = tokenInfo;
      scheduleExpiration(session);
      setState({ status: "authenticated", authenticated: true, error: "" });
      window.location.replace(getSafeReturnUrl(transaction.returnUrl));
    } catch (error) {
      if (issuedAccessToken) await revokeAccessToken(issuedAccessToken).catch(() => {});
      const message = getErrorMessage(error, "OAuth sign-in failed.");
      writeStoredError(message);
      validatedSession = null;
      setState({ status: "idle", authenticated: false, error: message });
      console.error(message);
      window.location.replace(getSafeReturnUrl(transaction?.returnUrl));
    }

    return true;
  };

  const signIn = async (redirectUri) => {
    if (isBusy()) return;

    ++restoreGeneration;
    restoringAccessToken = "";
    validatedSession = null;
    removeStoredTransaction();
    removeStoredError();

    try {
      setState({ status: "authorizing", authenticated: false, error: "" });

      const authorizationRequest = await createAuthorizationRequest(redirectUri);
      writeStoredTransaction({
        state: authorizationRequest.state,
        codeVerifier: authorizationRequest.codeVerifier,
        redirectUri,
        returnUrl: window.location.href,
      });
      window.location.assign(authorizationRequest.authorizationUrl);
    } catch (error) {
      removeStoredTransaction();
      const message = getErrorMessage(error, "OAuth sign-in failed.");
      validatedSession = null;
      setState({ status: "idle", authenticated: false, error: message });
      console.error(message);
      return false;
    }
  };

  const signOut = async () => {
    if (isBusy()) return;

    const generation = ++restoreGeneration;
    restoringAccessToken = "";
    const session = readStoredSession();
    if (!session) {
      validatedSession = null;
      scheduleExpiration(null);
      setState({ status: "idle", authenticated: false, error: "" });
      return;
    }
    if (!validatedSession || validatedSession.accessToken !== session.accessToken) {
      void restoreSession();
      return;
    }

    setState({ status: "revoking", authenticated: false, error: "" });
    try {
      await invalidateAccountsSession(session.accessToken);
      if (generation !== restoreGeneration) return;
      const storedSession = readStoredSession();
      if (!storedSession || storedSession.accessToken !== session.accessToken) {
        validatedSession = null;
        setState({ status: "idle", authenticated: false, error: "" });
        void restoreSession();
        return;
      }
      removeStoredSession();
      validatedSession = null;
      scheduleExpiration(null);
      setState({ status: "idle", authenticated: false, error: "" });
    } catch (error) {
      if (generation !== restoreGeneration) return;
      const storedSession = readStoredSession();
      if (!storedSession || storedSession.accessToken !== session.accessToken) {
        validatedSession = null;
        setState({ status: "idle", authenticated: false, error: "" });
        void restoreSession();
        return;
      }
      scheduleExpiration(session);
      const message = `${getErrorMessage(error, "Sign-out failed.")} You are still signed in.`;
      setState({ status: "authenticated", authenticated: true, error: message });
      console.error(message);
    }
  };

  const restoreSession = async () => {
    if (isBusy()) return;

    const session = readStoredSession();
    if (session && state.status === "checking" && restoringAccessToken === session.accessToken) return;

    const generation = ++restoreGeneration;
    restoringAccessToken = session?.accessToken || "";
    scheduleExpiration(session);
    validatedSession = null;

    if (!session) {
      restoringAccessToken = "";
      setState({ status: "idle", authenticated: false, error: "" });
      return;
    }

    setState({ status: "checking", authenticated: false, error: "" });
    try {
      const candidate = await validateAccessToken(session.accessToken);
      if (generation !== restoreGeneration) return;

      const storedSession = readStoredSession();
      if (!storedSession || storedSession.accessToken !== session.accessToken) {
        restoringAccessToken = "";
        void restoreSession();
        return;
      }

      validatedSession = candidate;
      scheduleExpiration(storedSession);
      setState({ status: "authenticated", authenticated: true, error: "" });
    } catch (error) {
      if (generation !== restoreGeneration) return;

      const storedSession = readStoredSession();
      if (!storedSession || storedSession.accessToken !== session.accessToken) {
        restoringAccessToken = "";
        void restoreSession();
        return;
      }

      if (error.status === 401) {
        removeStoredSession();
        validatedSession = null;
        scheduleExpiration(null);
        setState({ status: "idle", authenticated: false, error: "" });
        return;
      }

      setState({
        status: "idle",
        authenticated: false,
        error: getErrorMessage(error, "The stored OAuth session could not be validated."),
      });
    } finally {
      if (generation === restoreGeneration) restoringAccessToken = "";
    }
  };

  const requestWithSession = async (path, options = {}) => {
    const url = new URL(path, CONFIG.serverUrl);
    if (url.origin !== new URL(CONFIG.serverUrl).origin) {
      throw new Error("OAuth requests must use the configured Text Accounts origin.");
    }

    const session = readStoredSession();
    if (!session) {
      ++restoreGeneration;
      restoringAccessToken = "";
      validatedSession = null;
      scheduleExpiration(null);
      setState({ status: "idle", authenticated: false, error: "" });
      throw new Error("Sign in to Text before creating a personal access token.");
    }

    if (!state.authenticated || !validatedSession || validatedSession.accessToken !== session.accessToken) {
      void restoreSession();
      throw new Error("The OAuth session is being validated. Try again after sign-in finishes.");
    }

    const headers = new Headers(options.headers || {});
    headers.set("Authorization", `Bearer ${session.accessToken}`);
    const response = await request(url.toString(), { ...options, headers });

    if (response.status === 401) {
      const storedSession = readStoredSession();
      validatedSession = null;
      if (!storedSession || storedSession.accessToken === session.accessToken) {
        ++restoreGeneration;
        restoringAccessToken = "";
        removeStoredSession();
        scheduleExpiration(null);
        setState({ status: "idle", authenticated: false, error: "" });
      } else {
        void restoreSession();
      }
    }

    return response;
  };

  const oauthApi = Object.freeze({
    getState: getPublicState,
    hasScope(scope) {
      const scopes = getGrantedScopes();
      return scopes ? scopes.has(scope) : null;
    },
    request: requestWithSession,
    signIn() {
      if (hasCurrentValidatedSession()) return Promise.resolve(true);
      if (state.authenticated) {
        void restoreSession();
        return Promise.resolve(false);
      }
      if (isBusy()) return Promise.resolve(false);
      return signIn(getRedirectUri());
    },
  });

  Object.defineProperty(window, OAUTH_API_KEY, {
    configurable: false,
    enumerable: false,
    value: oauthApi,
    writable: false,
  });
  window.dispatchEvent(new CustomEvent(OAUTH_READY_EVENT));

  document.addEventListener(
    "click",
    (event) => {
      if (
        event.defaultPrevented ||
        event.button !== 0 ||
        event.metaKey ||
        event.ctrlKey ||
        event.shiftKey ||
        event.altKey ||
        !(event.target instanceof Element)
      ) {
        return;
      }

      const link = event.target.closest("a[href]");
      if (!link || !isOAuthLink(link)) return;

      event.preventDefault();
      event.stopPropagation();
      if (isBusy()) return;

      if (state.authenticated) signOut();
      else {
        try {
          signIn(getRedirectUri());
        } catch (error) {
          console.error(getErrorMessage(error, "OAuth sign-in failed."));
        }
      }
    },
    true,
  );

  window.addEventListener("storage", (event) => {
    if (event.key === CONFIG.storageKey || event.key === CONFIG.legacyStorageKey) restoreSession();
  });
  window.addEventListener("pageshow", (event) => {
    if (event.persisted) restoreSession();
  });

  const start = () => {
    new MutationObserver(scheduleNavbarUpdate).observe(document.documentElement, {
      childList: true,
      subtree: true,
    });
    completeRedirectSignIn().then(async (handled) => {
      if (handled) return;

      await restoreSession();
      const storedError = readStoredError();
      if (storedError) setState({ error: storedError });
      if (isCallbackPage()) window.location.replace(getSafeReturnUrl());
    });
  };

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", start, { once: true });
  } else {
    start();
  }
})();
5f:Te31,(() => {
  const PLAYGROUND_SELECTOR = '[data-testid="api-playground-modal"]';

  function sentenceCase(value) {
    return value.replace(/^(\s*)(\p{Ll})/u, (_, whitespace, letter) => {
      return `${whitespace}${letter.toUpperCase()}`;
    });
  }

  function sentenceCaseTextNodes(element) {
    const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);
    let node;

    while ((node = walker.nextNode())) {
      const sentenceCased = sentenceCase(node.textContent);
      if (sentenceCased !== node.textContent) {
        node.textContent = sentenceCased;
        return;
      }
    }
  }

  function sentenceCasePlaygroundPlaceholders(playground) {
    playground.querySelectorAll("input[placeholder], textarea[placeholder]").forEach((field) => {
      const placeholder = field.getAttribute("placeholder");
      const sentenceCased = sentenceCase(placeholder);

      if (sentenceCased !== placeholder) {
        field.setAttribute("placeholder", sentenceCased);
      }
    });

    playground.querySelectorAll("select").forEach((select) => {
      Array.from(select.options).forEach((option, index) => {
        const label = option.text.trim();
        const isPlaceholder =
          !option.value || (option.disabled && option.selected) || (index === 0 && /^(enter|select)\b/.test(label));

        if (!isPlaceholder) return;

        const sentenceCased = sentenceCase(option.text);
        if (sentenceCased !== option.text) {
          option.text = sentenceCased;
        }
      });
    });

    playground.querySelectorAll('[role="combobox"][data-placeholder]').forEach(sentenceCaseTextNodes);
  }

  let activePlayground = null;
  let playgroundObserver = null;
  let discoveryObserver = null;
  let updatePending = false;

  function scheduleUpdate() {
    if (!activePlayground || updatePending) return;
    updatePending = true;

    requestAnimationFrame(() => {
      updatePending = false;
      if (activePlayground) {
        sentenceCasePlaygroundPlaceholders(activePlayground);
      }
    });
  }

  function observePlayground(playground) {
    if (playground === activePlayground) return;

    playgroundObserver?.disconnect();
    activePlayground = playground;
    playgroundObserver = new MutationObserver(scheduleUpdate);
    playgroundObserver.observe(playground, {
      attributes: true,
      attributeFilter: ["placeholder"],
      childList: true,
      subtree: true,
    });
    scheduleUpdate();
  }

  function findPlayground(node) {
    if (node.nodeType !== 1) return null;
    if (node.matches(PLAYGROUND_SELECTOR)) return node;
    return node.querySelector(PLAYGROUND_SELECTOR);
  }

  function discoverPlayground(mutations) {
    if (activePlayground && !document.body.contains(activePlayground)) {
      playgroundObserver.disconnect();
      playgroundObserver = null;
      activePlayground = null;
    }

    for (const mutation of mutations) {
      for (const node of mutation.addedNodes) {
        const playground = findPlayground(node);
        if (playground) {
          observePlayground(playground);
          return;
        }
      }
    }
  }

  function start() {
    if (!document.body) {
      document.addEventListener("DOMContentLoaded", start, { once: true });
      return;
    }

    if (discoveryObserver) return;

    const playground = document.querySelector(PLAYGROUND_SELECTOR);
    if (playground) {
      observePlayground(playground);
    }

    discoveryObserver = new MutationObserver(discoverPlayground);
    discoveryObserver.observe(document.body, {
      childList: true,
      subtree: true,
    });
  }

  start();
})();
60:T280c,(() => {
  "use strict";

  // Generated by scripts/generate-pat-manifest.js. Do not edit directly.
  // prettier-ignore
  window.__TEXT_DOCS_PAT_API_GROUP_MANIFEST__ = Object.freeze({
    "schemaVersion": 3,
    "groups": {
      "agentChat": {
        "api": "Agent Chat API",
        "routePrefixes": [
          "/api/agent-chat/"
        ],
        "scopes": [
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "agents--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "agents-bot--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents-bot--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "agents-bot--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "chats--access:ro",
            "restrictedForMembers": false
          },
          {
            "name": "chats--access:rw",
            "restrictedForMembers": false
          },
          {
            "name": "chats--all:ro",
            "restrictedForMembers": true
          },
          {
            "name": "chats--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "customers.ban:rw",
            "restrictedForMembers": false
          },
          {
            "name": "customers:ro",
            "restrictedForMembers": false
          },
          {
            "name": "customers:rw",
            "restrictedForMembers": false
          },
          {
            "name": "multicast:rw",
            "restrictedForMembers": false
          }
        ]
      },
      "configuration": {
        "api": "Configuration API",
        "routePrefixes": [
          "/api/configuration/"
        ],
        "scopes": [
          {
            "name": "access_rules:ro",
            "restrictedForMembers": true
          },
          {
            "name": "access_rules:rw",
            "restrictedForMembers": true
          },
          {
            "name": "accounts--all:rc",
            "restrictedForMembers": false
          },
          {
            "name": "accounts--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "accounts--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.roles.lc--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "agents--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "agents--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "agents-bot--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "agents-bot--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "agents-bot--my:ro",
            "restrictedForMembers": true
          },
          {
            "name": "agents-bot--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "banlist_read",
            "restrictedForMembers": false
          },
          {
            "name": "banlist_write",
            "restrictedForMembers": false
          },
          {
            "name": "bots.templates:rw",
            "restrictedForMembers": true
          },
          {
            "name": "canned_responses--all:ro",
            "restrictedForMembers": true
          },
          {
            "name": "canned_responses--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "canned_responses--groups:ro",
            "restrictedForMembers": false
          },
          {
            "name": "canned_responses--groups:rw",
            "restrictedForMembers": true
          },
          {
            "name": "domain_manage",
            "restrictedForMembers": true
          },
          {
            "name": "forms_manage",
            "restrictedForMembers": true
          },
          {
            "name": "groups--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "groups--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "groups--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "groups--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "languages_read",
            "restrictedForMembers": false
          },
          {
            "name": "languages_write",
            "restrictedForMembers": true
          },
          {
            "name": "organization--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "properties.configuration:rw",
            "restrictedForMembers": true
          },
          {
            "name": "properties.group.value--all:ro",
            "restrictedForMembers": true
          },
          {
            "name": "properties.group.value--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "properties.group.value--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "properties.license.value--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "properties.license.value--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "properties.license.value--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "properties.license.value--my:rw",
            "restrictedForMembers": true
          },
          {
            "name": "surveys_manage",
            "restrictedForMembers": true
          },
          {
            "name": "surveys_read",
            "restrictedForMembers": true
          },
          {
            "name": "tags--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "tags--groups:ro",
            "restrictedForMembers": false
          },
          {
            "name": "webhooks.configuration:rw",
            "restrictedForMembers": true
          },
          {
            "name": "webhooks.state:ro",
            "restrictedForMembers": true
          },
          {
            "name": "webhooks.state:rw",
            "restrictedForMembers": true
          }
        ]
      },
      "customerDataPlatform": {
        "api": "Customer Data Platform API",
        "routePrefixes": [
          "/api/customer-data-platform/"
        ],
        "scopes": [
          {
            "name": "customers:ro",
            "restrictedForMembers": false
          },
          {
            "name": "customers:rw",
            "restrictedForMembers": false
          }
        ]
      },
      "globalAccounts": {
        "api": "Global Accounts API",
        "routePrefixes": [
          "/api/global-accounts/"
        ],
        "scopes": [
          {
            "name": "accounts--all:rc",
            "restrictedForMembers": false
          },
          {
            "name": "accounts--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "accounts--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          },
          {
            "name": "accounts--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.invitations--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.invitations--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "accounts.invitations--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.password--my:rw",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.roles--all:ro",
            "restrictedForMembers": false
          },
          {
            "name": "accounts.roles--all:rw",
            "restrictedForMembers": true
          },
          {
            "name": "organization--my:rw",
            "restrictedForMembers": true
          }
        ]
      },
      "languageDetection": {
        "api": "Language Detection API",
        "routePrefixes": [
          "/api/language-detection/"
        ],
        "scopes": [
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          }
        ]
      },
      "productDirectory": {
        "api": "Product Directory API",
        "routePrefixes": [
          "/api/product-directory/"
        ],
        "scopes": [
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          }
        ]
      },
      "reports": {
        "api": "Reports API",
        "routePrefixes": [
          "/api/reports/"
        ],
        "scopes": [
          {
            "name": "reports_read",
            "restrictedForMembers": false
          }
        ]
      },
      "ticketing": {
        "api": "Ticketing API",
        "routePrefixes": [
          "/api/ticketing/"
        ],
        "scopes": [
          {
            "name": "accounts--my:ro",
            "restrictedForMembers": false
          }
        ]
      }
    }
  });
  window.dispatchEvent(new CustomEvent("text-docs:pat-group-manifest-ready"));
})();
61:Tfeca,// Generated by scripts/build-pat-playground.mjs. Do not edit manually.
(() => {
  // src/pat-playground/accounts-client.mjs
  var LIST_PATH = "/v2/personal_token";
  var SCOPES_PATH = "/v2/scopes";
  var requestError = (message, status) => Object.assign(new Error(message), { status });
  var malformedError = (message, code = "malformed_token_response") => Object.assign(new Error(message), { code });
  var readJson = async (response, message, code) => {
    try {
      return await response.json();
    } catch {
      throw malformedError(message, code);
    }
  };
  var createAccountsClient = (oauth) => ({
    async listAvailableScopeNames() {
      const response = await oauth.request(SCOPES_PATH, { method: "GET", headers: { Accept: "application/json" } });
      if (!response.ok) throw requestError("Available scope lookup failed.", response.status);
      const scopes = await readJson(
        response,
        "The available scopes response is malformed.",
        "malformed_scopes_response",
      );
      if (!Array.isArray(scopes)) {
        throw malformedError("The available scopes response is malformed.", "malformed_scopes_response");
      }
      return scopes.map((value) => {
        if (
          !value ||
          typeof value !== "object" ||
          typeof value.scope !== "string" ||
          !value.scope ||
          value.scope !== value.scope.trim()
        ) {
          throw malformedError("The available scopes response is malformed.", "malformed_scopes_response");
        }
        return value.scope;
      });
    },
    async list() {
      const response = await oauth.request(LIST_PATH, { method: "GET", headers: { Accept: "application/json" } });
      if (!response.ok) throw requestError("Personal access token listing failed.", response.status);
      const tokens = await readJson(response, "The personal access token list is malformed.");
      if (!Array.isArray(tokens)) throw malformedError("The personal access token list is malformed.");
      return tokens;
    },
    async create(name, scopes) {
      const payload = { name };
      if (scopes.length) payload.scope = scopes.join(",");
      const response = await oauth.request(LIST_PATH, {
        method: "POST",
        headers: { Accept: "application/json", "Content-Type": "application/json" },
        body: JSON.stringify(payload),
      });
      if (!response.ok) throw requestError("Personal access token creation failed.", response.status);
      const body = await readJson(response, "The personal access token response is incomplete.");
      if (typeof body?.personal_token !== "string" || !body.personal_token) {
        throw malformedError("The personal access token response is incomplete.");
      }
      return { personalToken: body.personal_token };
    },
  });

  // src/pat-playground/error-policy.mjs
  var getPermissionErrorMessage = (error) => {
    if (error?.status === 401) return "Your sign-in session expired. Close this dialog, then sign in and try again.";
    if (error?.code === "missing_oauth_scopes") {
      return "Your sign-in session does not include permission to manage personal access tokens. Close this dialog, sign in again, and try again.";
    }
    if (error?.status === 403) {
      return "Text Accounts could not return the API scopes available to your account. Close this dialog, sign in again, and try again.";
    }
    if (error?.code === "malformed_scopes_response") {
      return "Text Accounts returned an invalid available scopes response. Try the permission check again.";
    }
    if (error?.code === "no_available_scopes") {
      return "No scopes for this API are available to your account.";
    }
    if (error?.code === "malformed_scope_manifest") {
      return "The API scope configuration is invalid. Close this dialog and try again later.";
    }
    if (/timed out/i.test(error?.message || "")) return "The API scope availability check timed out. Try again.";
    return "We couldn\u2019t check which API scopes are available to your account. Try again.";
  };
  var getListErrorMessage = (error) => {
    if (error?.status === 401) return "Your sign-in session expired. Close this dialog, then sign in and try again.";
    if (error?.status === 403) return "The documentation OAuth client cannot list personal access tokens.";
    if (error?.code === "malformed_token_response" || error?.code === "malformed_identity") {
      return "Text Accounts returned an invalid personal access token response. Retry the check.";
    }
    if (/timed out/i.test(error?.message || "")) return "The personal access token check timed out. Retry the check.";
    return "We couldn\u2019t confirm whether this name is available. Try again to continue.";
  };
  var getCreationErrorMessage = (error) => {
    if (error?.status === 401) return "Your sign-in session expired. Close this dialog, then sign in and try again.";
    if (error?.status === 403) return "The documentation OAuth client cannot create this personal access token.";
    if (error?.status === 400 || error?.status === 422) return "The token name or selected API scopes are invalid.";
    if (error?.code === "malformed_token_response") {
      return "Text Accounts created a token but did not return its secret.";
    }
    if (/timed out/i.test(error?.message || "")) return "Personal access token creation timed out. Try again.";
    return "The personal access token could not be created. Try again.";
  };
  var SAFE_ERROR_CODES = /* @__PURE__ */ new Set([
    "malformed_identity",
    "malformed_scope_manifest",
    "malformed_scopes_response",
    "malformed_token_response",
    "missing_oauth_scopes",
    "no_available_scopes",
    "request_failed",
  ]);
  var getSafeErrorMetadata = (error) => ({
    code: SAFE_ERROR_CODES.has(error?.code) ? error.code : "request_failed",
    status: Number.isInteger(error?.status) ? error.status : 0,
  });

  // src/pat-playground/domain.mjs
  var codedError = (message, code) => Object.assign(new Error(message), { code });
  var PERSONAL_TOKEN_NAME_MAX_LENGTH = 48;
  var getAvailableScopeNamesForGroup = (group, availableScopeNames) => {
    if (!Array.isArray(group?.scopes)) {
      throw codedError("The API scope configuration is malformed.", "malformed_scope_manifest");
    }
    if (group.scopes.length === 0) return { omitted: false, scopeNames: [] };
    if (
      !Array.isArray(availableScopeNames) ||
      availableScopeNames.some((name) => typeof name !== "string" || !name || name !== name.trim())
    ) {
      throw codedError("The available scopes response is malformed.", "malformed_scopes_response");
    }
    const availableScopes = new Set(availableScopeNames);
    const scopeNames = [];
    let omitted = false;
    group.scopes.forEach((scope) => {
      if (!scope || typeof scope.name !== "string" || !scope.name || typeof scope.restrictedForMembers !== "boolean") {
        throw codedError("The API scope configuration is malformed.", "malformed_scope_manifest");
      }
      if (availableScopes.has(scope.name)) scopeNames.push(scope.name);
      else omitted = true;
    });
    if (scopeNames.length === 0) {
      throw codedError("No API scopes are available to the account.", "no_available_scopes");
    }
    return { omitted, scopeNames };
  };
  var getPersonalTokenNameError = (name) => {
    if (!name) return "Enter a token name.";
    if (name.length > PERSONAL_TOKEN_NAME_MAX_LENGTH) return "Token name cannot be longer than 48 characters.";
    return "";
  };
  var getSuggestedTokenName = (group, version) => {
    const apiLabel = version && !group.api.includes(version) ? `${group.api} ${version}` : group.api;
    return `Text Docs - ${apiLabel}`;
  };
  var parsePersonalTokenRecord = (value) => {
    if (
      !value ||
      typeof value !== "object" ||
      typeof value.name !== "string" ||
      typeof value.organization_id !== "string" ||
      !value.organization_id ||
      typeof value.account_id !== "string" ||
      !value.account_id
    ) {
      throw codedError("The personal access token response is malformed.", "malformed_token_response");
    }
    return {
      name: value.name,
      organization_id: value.organization_id,
      account_id: value.account_id,
    };
  };
  var tokenMatchesIdentity = (token, identity) =>
    token.account_id === identity.accountId && token.organization_id === identity.organizationId;
  var checkPersonalTokenName = (tokens, name, identity) => {
    if (!Array.isArray(tokens)) {
      throw codedError("The personal access token list is malformed.", "malformed_token_response");
    }
    if (!identity?.accountId || !identity?.organizationId) {
      throw codedError("The authenticated identity is incomplete.", "malformed_identity");
    }
    const exists = tokens
      .map(parsePersonalTokenRecord)
      .some((token) => token.name === name && tokenMatchesIdentity(token, identity));
    return { name, exists };
  };
  var getBasicAuthUsername = (identity) => (typeof identity?.accountId === "string" ? identity.accountId : "");

  // src/pat-playground/pat-service.mjs
  var createPatService = ({ client, getIdentity }) => ({
    async getAvailableScopeNames() {
      return client.listAvailableScopeNames();
    },
    async checkName(name) {
      return checkPersonalTokenName(await client.list(), name, getIdentity());
    },
    async create(scopeNames, name) {
      return client.create(name, scopeNames);
    },
  });
  var selectBasicAuthUsername = getBasicAuthUsername;
  var selectSuggestedTokenName = getSuggestedTokenName;

  // src/pat-playground/controller.mjs
  var PERSONAL_TOKEN_OAUTH_SCOPE = "personal_access_manage";
  var PAT_OAUTH_SCOPES = Object.freeze([PERSONAL_TOKEN_OAUTH_SCOPE]);
  var createController = ({
    routeContext,
    adapter,
    view,
    telemetry,
    waitForOAuth,
    createService,
    getOAuthState = () => ({}),
    logger = console,
  }) => {
    let state = { name: "closed" };
    let activeCredential = null;
    let operation = null;
    let generation = 0;
    let context = null;
    let pinned = false;
    let authorizationInProgress = false;
    let resumeInProgress = false;
    let authenticated = getOAuthState().authenticated === true;
    let permissionCache = null;
    const impressions = /* @__PURE__ */ new Set();
    const isActive = (candidate) =>
      Boolean(
        candidate &&
        operation === candidate &&
        candidate.generation === generation &&
        candidate.groupId === context?.groupId &&
        view.isOpen(),
      );
    const nextOperation = () => (operation = { generation, groupId: context.groupId });
    const isSameRoute = (first, second) =>
      Boolean(
        first && second && first.groupId === second.groupId && (first.apiVersion || "") === (second.apiVersion || ""),
      );
    const setState = (name, decision) => {
      state = decision ? { name, decision } : { name };
    };
    const emit = (action, properties) => telemetry.emit(action, context.groupId, context.group, properties);
    const zeroize = () => {
      activeCredential = null;
      view.zeroize();
    };
    const resetAfterAuthenticationLoss = () => {
      generation += 1;
      operation = null;
      pinned = false;
      context = null;
      authorizationInProgress = false;
      routeContext.clearPending();
      setState("closed");
      if (view.isOpen()) view.setBusy(false);
      zeroize();
      view.close();
      void adapter.clearCredentials();
    };
    const renderCreation = (error = "", nameError = "") => {
      setState("decision", "create");
      view.render({
        state: "decision",
        ...context,
        error,
        nameError,
        omittedScopes: context.omittedScopes,
        scopeNames: context.scopeNames,
      });
    };
    const requireOAuthScopes = (oauth, scopes) => {
      if (scopes.some((scope) => oauth.hasScope(scope) !== true)) {
        throw Object.assign(new Error("The documentation OAuth session is missing required scopes."), {
          code: "missing_oauth_scopes",
          status: 403,
        });
      }
    };
    const loadAvailableScopeNames = ({ refresh = false } = {}) => {
      if (refresh) permissionCache = null;
      if (permissionCache) return permissionCache;
      const record = { status: "pending", promise: null };
      record.promise = (async () => {
        try {
          const oauth = await waitForOAuth();
          requireOAuthScopes(oauth, PAT_OAUTH_SCOPES);
          record.availableScopeNames = await createService(oauth).getAvailableScopeNames();
          record.status = "fulfilled";
        } catch (error) {
          record.error = error;
          record.status = "rejected";
        }
        return record;
      })();
      permissionCache = record;
      return record;
    };
    const prefetchPermissions = (entry) => {
      if (!entry?.group?.scopes?.length) return;
      const record = loadAvailableScopeNames();
      if (record.promise) void record.promise;
    };
    const resolvePermissions = async ({ refresh = false } = {}) => {
      if (!context) return;
      const requiresScopes = context.group.scopes.length > 0;
      const op = nextOperation();
      try {
        if (!requiresScopes) {
          const oauth = await waitForOAuth();
          if (!isActive(op)) return;
          requireOAuthScopes(oauth, PAT_OAUTH_SCOPES);
          context.scopeNames = [];
          context.omittedScopes = false;
          renderCreation();
          return;
        }
        const record = loadAvailableScopeNames({ refresh });
        if (record.status === "pending") {
          setState("checking");
          view.render({
            state: "checking",
            title: "Checking API permissions",
            description: "Checking which scopes are available for your account.",
            progress: "Checking\u2026",
          });
          view.setBusy(true);
          await record.promise;
        }
        if (!isActive(op)) return;
        if (record !== permissionCache) {
          await resolvePermissions();
          return;
        }
        if (record.status === "rejected") throw record.error;
        const filtered = getAvailableScopeNamesForGroup(context.group, record.availableScopeNames);
        context.scopeNames = [...filtered.scopeNames];
        context.omittedScopes = filtered.omitted;
        renderCreation();
      } catch (error) {
        if (!isActive(op)) return;
        setState("permission-error");
        view.render({ state: "permission-error", message: getPermissionErrorMessage(error) });
        logger.error("Personal access token permission check failed.", getSafeErrorMetadata(error));
        emit("permission_check_failed", { status: getSafeErrorMetadata(error).status });
      } finally {
        if (isActive(op)) view.setBusy(false);
      }
    };
    const submitName = async (submittedName) => {
      if (!context || state.name !== "decision") return;
      context.tokenName = typeof submittedName === "string" ? submittedName.trim() : "";
      const nameError = getPersonalTokenNameError(context.tokenName);
      if (nameError) {
        renderCreation("", nameError);
        view.focusName();
        return;
      }
      const op = nextOperation();
      setState("checking");
      view.setBusy(true, "Checking\u2026");
      try {
        const oauth = await waitForOAuth();
        if (!isActive(op)) return;
        if (oauth.hasScope(PERSONAL_TOKEN_OAUTH_SCOPE) !== true) {
          throw Object.assign(new Error("The documentation OAuth client cannot manage personal access tokens."), {
            status: 403,
          });
        }
        const result = await createService(oauth).checkName(context.tokenName);
        if (!isActive(op)) return;
        emit("tokens_checked");
        if (result.exists) {
          renderCreation("", "Enter a different token name. A token with this name already exists.");
          view.focusName();
        } else {
          await createToken(op);
        }
      } catch (error) {
        if (!isActive(op)) return;
        setState("list-error");
        view.render({ state: "list-error", message: getListErrorMessage(error) });
        logger.error("Personal access token discovery failed.", getSafeErrorMetadata(error));
        emit("token_check_failed", { status: getSafeErrorMetadata(error).status });
      } finally {
        if (isActive(op)) view.setBusy(false);
      }
    };
    const open = async (entry) => {
      generation += 1;
      zeroize();
      pinned = false;
      const apiLabel =
        entry.apiVersion && !entry.group.api.includes(entry.apiVersion)
          ? `${entry.group.api} ${entry.apiVersion}`
          : entry.group.api;
      context = {
        groupId: entry.groupId,
        group: entry.group,
        apiVersion: entry.apiVersion || "",
        apiLabel,
        tokenName: selectSuggestedTokenName(entry.group, entry.apiVersion),
        scopeNames: null,
        omittedScopes: false,
      };
      view.open();
      emit("checking_shown");
      await resolvePermissions();
    };
    const close = () => {
      if (state.name === "creating") return;
      generation += 1;
      operation = null;
      pinned = false;
      context = null;
      setState("closed");
      if (view.isOpen()) view.setBusy(false);
      zeroize();
      view.close();
    };
    const createToken = async (op) => {
      if (!context || state.name !== "checking" || !isActive(op)) return;
      activeCredential = null;
      pinned = true;
      setState("creating");
      view.setBusy(true, "Creating\u2026");
      emit("creation_started");
      try {
        const oauth = await waitForOAuth();
        if (!isActive(op)) return;
        const username = selectBasicAuthUsername(oauth.getState());
        const result = await createService(oauth).create(context.scopeNames, context.tokenName);
        if (!isActive(op)) return;
        activeCredential = { username, personalToken: result.personalToken };
        const populated = await adapter.populate(activeCredential, context.groupId);
        if (!isActive(op) || !activeCredential) return;
        setState("result");
        view.render({
          state: "result",
          credential: activeCredential,
          populated,
        });
        emit(populated ? "playground_populated" : "copy_fallback_shown");
        emit("creation_succeeded");
      } catch (error) {
        if (!isActive(op)) return;
        activeCredential = null;
        pinned = false;
        renderCreation(getCreationErrorMessage(error));
        view.focusError();
        logger.error("Personal access token creation failed.", getSafeErrorMetadata(error));
        emit("creation_failed", { status: getSafeErrorMetadata(error).status });
      } finally {
        if (isActive(op)) view.setBusy(false);
      }
    };
    const copyCredential = async (field) => {
      if (state.name !== "result" || !activeCredential) return;
      const value = field === "username" ? activeCredential.username : activeCredential.personalToken;
      const copied = await view.copy(field, value);
      if (state.name === "result" && activeCredential)
        emit(copied ? "credential_copied" : "credential_copy_failed", { field });
    };
    const controlClick = async () => {
      const entry = routeContext.resolve();
      if (!entry || authorizationInProgress) return;
      telemetry.emit("control_click", entry.groupId, entry.group);
      try {
        const oauth = await waitForOAuth();
        let currentEntry = routeContext.resolve();
        if (!isSameRoute(currentEntry, entry)) return;
        if (oauth.getState().authenticated) {
          await open(currentEntry);
          return;
        }
        authorizationInProgress = true;
        routeContext.writePending(entry.groupId);
        telemetry.emit("oauth_started", entry.groupId, entry.group);
        const signedIn = await oauth.signIn();
        authorizationInProgress = false;
        if (oauth.getState().status === "authorizing") return;
        if (!signedIn || !oauth.getState().authenticated) {
          routeContext.clearPending();
          telemetry.emit("oauth_failed", entry.groupId, entry.group);
          return;
        }
        telemetry.emit("oauth_succeeded", entry.groupId, entry.group);
        routeContext.clearPending();
        currentEntry = routeContext.resolve();
        if (isSameRoute(currentEntry, entry)) await open(currentEntry);
      } catch (error) {
        authorizationInProgress = false;
        routeContext.clearPending();
        telemetry.emit("oauth_failed", entry.groupId, entry.group);
        logger.error("Text sign-in is unavailable. Reload the page and try again.", error);
      }
    };
    const resumePending = async () => {
      if (authorizationInProgress || resumeInProgress) return;
      const pending = routeContext.readPending();
      if (!pending) return;
      resumeInProgress = true;
      try {
        const oauth = await waitForOAuth();
        if (!oauth.getState().authenticated) return;
        const entry = routeContext.resolve();
        const group = routeContext.getGroup(pending.groupId);
        if (!group || entry?.groupId !== pending.groupId) return;
        routeContext.clearPending();
        telemetry.emit("oauth_succeeded", pending.groupId, group);
        await open(entry);
      } catch {
      } finally {
        resumeInProgress = false;
      }
    };
    view.onAction((action, payload) => {
      if (action === "close") close();
      else if (action === "retry" && state.name === "permission-error") void resolvePermissions({ refresh: true });
      else if (action === "retry" && state.name === "list-error") {
        setState("decision", "create");
        void submitName(context.tokenName);
      } else if (action === "create" && state.name === "decision") void submitName(payload);
      else if (action === "name-change" && state.name === "decision") context.tokenName = payload;
      else if (action === "copy") void copyCredential(payload);
    });
    return {
      controlClick,
      resumePending,
      handleOAuthStateChange(oauthState = getOAuthState()) {
        const nextAuthenticated = oauthState?.authenticated === true;
        const authenticationLost = authenticated && !nextAuthenticated;
        authenticated = nextAuthenticated;
        permissionCache = null;
        if (authenticationLost) resetAfterAuthenticationLoss();
      },
      sync() {
        const entry = routeContext.resolve();
        if (!pinned && context && !isSameRoute(entry, context)) close();
        const oauthState = getOAuthState();
        if (oauthState.authenticated === true) prefetchPermissions(entry);
        const username = entry ? selectBasicAuthUsername(oauthState) : "";
        adapter.syncControl(entry, username);
      },
      recordImpression(entry) {
        if (impressions.has(entry.groupId)) return;
        impressions.add(entry.groupId);
        telemetry.emit("control_impression", entry.groupId, entry.group);
      },
      getState: () => ({ ...state }),
      close,
    };
  };

  // src/pat-playground/dialog-view.mjs
  var DIALOG_ID = "text-docs-pat-dialog";
  var COPY_CONFIRMATION_DURATION = 3e3;
  var VISIBLE_SCOPE_LIMIT = 6;
  var SCOPES_ID = "text-docs-pat-scope-list";
  var DIALOG_TEMPLATE = `
  <div class="text-docs-pat-card">
    <button type="button" class="text-docs-pat-close" aria-label="Close">
      <svg viewBox="0 0 20 20" width="20" height="20" fill="none" aria-hidden="true">
        <path
          d="M5 5L15 15M15 5L5 15"
          stroke="currentColor"
          stroke-width="1.5"
          stroke-linecap="round"
          stroke-linejoin="round"
        />
      </svg>
    </button>

    <div data-pat-view="checking">
      <h2 id="text-docs-pat-title-checking" data-pat-checking-title tabindex="-1">Checking personal access tokens</h2>
      <p id="text-docs-pat-description-checking" data-pat-checking-description>Checking for a personal access token for this API.</p>
      <p class="text-docs-pat-progress" data-pat-checking-progress role="status">Checking\u2026</p>
    </div>

    <div data-pat-view="decision" hidden>
      <h2 id="text-docs-pat-title-decision" data-pat-decision-title tabindex="-1">
        Create personal access token
      </h2>
      <p id="text-docs-pat-description-decision" data-pat-decision-description></p>
      <form class="text-docs-pat-form" data-pat-form>
        <div class="text-docs-pat-field">
          <label for="text-docs-pat-name">Name</label>
          <input
            id="text-docs-pat-name"
            type="text"
            data-pat-name
            autocomplete="off"
            aria-describedby="text-docs-pat-name-error"
          />
          <p
            id="text-docs-pat-name-error"
            class="text-docs-pat-field-error"
            data-pat-name-error
            role="alert"
            hidden
          ></p>
        </div>

        <fieldset class="text-docs-pat-scopes">
          <legend>Access scopes</legend>
          <div id="${SCOPES_ID}" data-pat-scopes></div>
          <button
            type="button"
            class="text-docs-pat-scopes-toggle"
            data-pat-scopes-toggle
            aria-expanded="false"
            aria-controls="${SCOPES_ID}"
            hidden
          ></button>
          <p data-pat-scopes-description></p>
        </fieldset>

        <p class="text-docs-pat-error" data-pat-error role="alert" tabindex="-1" hidden></p>
        <div class="text-docs-pat-actions">
          <button type="button" class="text-docs-pat-secondary" data-pat-cancel>Cancel</button>
          <button type="submit" class="text-docs-pat-primary" data-pat-create>Create token</button>
        </div>
      </form>
    </div>

    <div data-pat-view="permission-error" hidden>
      <h2 id="text-docs-pat-title-permission-error" tabindex="-1">Couldn\u2019t check API permissions</h2>
      <p
        id="text-docs-pat-description-permission-error"
        class="text-docs-pat-description"
        data-pat-permission-error
        role="alert"
      ></p>
      <div class="text-docs-pat-actions">
        <button type="button" class="text-docs-pat-secondary" data-pat-cancel>Close</button>
        <button type="button" class="text-docs-pat-primary" data-pat-retry>Try again</button>
      </div>
    </div>

    <div data-pat-view="list-error" hidden>
      <h2 id="text-docs-pat-title-list-error" tabindex="-1">Couldn\u2019t check the token name</h2>
      <p
        id="text-docs-pat-description-list-error"
        class="text-docs-pat-description"
        data-pat-list-error
        role="alert"
      ></p>
      <div class="text-docs-pat-actions">
        <button type="button" class="text-docs-pat-secondary" data-pat-cancel>Close</button>
        <button type="button" class="text-docs-pat-primary" data-pat-retry>Try again</button>
      </div>
    </div>

    <div data-pat-view="result" hidden>
      <div class="text-docs-pat-result-content">
        <div class="text-docs-pat-result-header">
          <h2 id="text-docs-pat-title-result" tabindex="-1">Personal access token created</h2>
          <p id="text-docs-pat-description-result" data-pat-result-description></p>
        </div>

        <div class="text-docs-pat-secret">
          <div class="text-docs-pat-secret-row">
            <span class="text-docs-pat-secret-label" data-pat-username-label>Account ID</span>
            <div class="text-docs-pat-secret-value">
              <input
                type="text"
                data-pat-username
                aria-label="Account ID"
                autocomplete="off"
                spellcheck="false"
                readonly
              />
              <button
                type="button"
                class="text-docs-pat-copy"
                data-pat-copy="username"
                aria-label="Copy account ID"
              ></button>
            </div>
            <p class="text-docs-pat-secret-caption" data-pat-username-caption>Use the Account ID as your <strong>username</strong> in Basic authentication.</p>
          </div>

          <div class="text-docs-pat-secret-row">
            <span class="text-docs-pat-secret-label">Token</span>
            <div class="text-docs-pat-secret-value">
              <input
                type="text"
                data-pat-personal-token
                aria-label="Token"
                autocomplete="off"
                spellcheck="false"
                readonly
              />
              <button
                type="button"
                class="text-docs-pat-copy"
                data-pat-copy="personalToken"
                aria-label="Copy token"
              ></button>
            </div>
            <p class="text-docs-pat-secret-caption">Use this token as your <strong>password</strong> in Basic authentication.</p>
          </div>
        </div>

        <div class="text-docs-pat-secret-notice" role="alert">
          <svg
            class="text-docs-pat-secret-notice-icon"
            viewBox="0 0 20 20"
            width="20"
            height="20"
            fill="none"
            aria-hidden="true"
          >
            <path
              d="M10 7.5V9.16667M10 12.5V12.5083M4.16667 15.8333H15.8333C16.1053 15.8314 16.3726 15.763 16.612 15.6341C16.8514 15.5051 17.0556 15.3195 17.2068 15.0935C17.3581 14.8675 17.4517 14.608 17.4795 14.3375C17.5074 14.067 17.4686 13.7937 17.3667 13.5417L11.45 3.33333C11.3059 3.07283 11.0946 2.85569 10.8381 2.70449C10.5817 2.55329 10.2894 2.47354 9.99167 2.47354C9.69395 2.47354 9.40167 2.55329 9.14521 2.70449C8.88874 2.85569 8.67746 3.07283 8.53333 3.33333L2.61667 13.5417C2.51662 13.788 2.47694 14.0547 2.50096 14.3194C2.52497 14.5842 2.61198 14.8394 2.75471 15.0637C2.89744 15.288 3.09176 15.4749 3.32144 15.6087C3.55112 15.7426 3.8095 15.8196 4.075 15.8333"
              stroke="currentColor"
              stroke-width="1.66667"
              stroke-linecap="round"
              stroke-linejoin="round"
            />
          </svg>
          <div class="text-docs-pat-secret-notice-content">
            <div class="text-docs-pat-secret-notice-title">Save your token</div>
            <div class="text-docs-pat-secret-notice-description">You won\u2019t be able to see it again after closing this window.</div>
          </div>
        </div>

        <p class="text-docs-pat-copy-status" data-pat-copy-status role="status" hidden></p>
      </div>
      <div class="text-docs-pat-actions">
        <button type="button" class="text-docs-pat-primary" data-pat-done>Done</button>
      </div>
    </div>
  </div>
`;
  var createDialogView = ({ browserWindow, document: document2, clipboard }) => {
    let dialog = null;
    let handler = () => {};
    let scopesExpanded = false;
    const copyConfirmationTimers = /* @__PURE__ */ new Map();
    const emit = (action, payload) => handler(action, payload);
    const handleEscape = (event) => {
      if (event.key !== "Escape" || !dialog?.open) return;
      event.preventDefault();
      event.stopImmediatePropagation();
      emit("close");
    };
    browserWindow.addEventListener("keydown", handleEscape, true);
    const create = () => {
      const element = document2.createElement("dialog");
      element.id = DIALOG_ID;
      element.className = "text-docs-pat-dialog";
      element.innerHTML = DIALOG_TEMPLATE;
      element.querySelector(".text-docs-pat-close").addEventListener("click", () => emit("close"));
      element
        .querySelectorAll("[data-pat-cancel], [data-pat-done]")
        .forEach((button) => button.addEventListener("click", () => emit("close")));
      element.querySelectorAll("[data-pat-retry]").forEach((button) => {
        button.addEventListener("click", () => emit("retry"));
      });
      const form = element.querySelector("[data-pat-form]");
      const nameInput = element.querySelector("[data-pat-name]");
      form.addEventListener("submit", (event) => {
        event.preventDefault();
        emit("create", nameInput.value);
      });
      nameInput.addEventListener("input", () => {
        clearNameError(element);
        emit("name-change", nameInput.value);
      });
      nameInput.addEventListener("keydown", (event) => {
        if (event.key !== "Enter") return;
        event.preventDefault();
        form.requestSubmit();
      });
      element.querySelector("[data-pat-scopes-toggle]").addEventListener("click", () => {
        scopesExpanded = !scopesExpanded;
        updateScopeDisclosure(element);
      });
      element.querySelectorAll("[data-pat-copy]").forEach((button) => {
        setCopyIcon(button);
        button.addEventListener("click", () => emit("copy", button.getAttribute("data-pat-copy")));
      });
      element.addEventListener("cancel", (event) => {
        event.preventDefault();
        emit("close");
      });
      element.addEventListener("close", () => zeroize());
      document2.body.append(element);
      return element;
    };
    const get = () => (dialog?.isConnected ? dialog : (dialog = document2.getElementById(DIALOG_ID) || create()));
    const clearNameError = (element) => {
      const input = element.querySelector("[data-pat-name]");
      const error = element.querySelector("[data-pat-name-error]");
      input.removeAttribute("aria-invalid");
      error.textContent = "";
      error.hidden = true;
    };
    const createCopyIcon = () => {
      const icon = document2.createElementNS("http://www.w3.org/2000/svg", "svg");
      icon.setAttribute("aria-hidden", "true");
      icon.setAttribute("data-pat-copy-icon", "");
      icon.setAttribute("viewBox", "0 0 20 20");
      icon.setAttribute("width", "20");
      icon.setAttribute("height", "20");
      icon.setAttribute("fill", "none");
      const path = document2.createElementNS("http://www.w3.org/2000/svg", "path");
      path.setAttribute(
        "d",
        "M13.3333 6.66667V5C13.3333 4.55797 13.1577 4.13405 12.8452 3.82149C12.5326 3.50893 12.1087 3.33333 11.6667 3.33333H5C4.55797 3.33333 4.13405 3.50893 3.82149 3.82149C3.50893 4.13405 3.33333 4.55797 3.33333 5V11.6667C3.33333 12.1087 3.50893 12.5326 3.82149 12.8452C4.13405 13.1577 4.55797 13.3333 5 13.3333H6.66667M6.66667 8.33333C6.66667 7.89131 6.84226 7.46738 7.15482 7.15482C7.46738 6.84226 7.89131 6.66667 8.33333 6.66667H15C15.442 6.66667 15.8659 6.84226 16.1785 7.15482C16.4911 7.46738 16.6667 7.89131 16.6667 8.33333V15C16.6667 15.442 16.4911 15.8659 16.1785 16.1785C15.8659 16.4911 15.442 16.6667 15 16.6667H8.33333C7.89131 16.6667 7.46738 16.4911 7.15482 16.1785C6.84226 15.8659 6.66667 15.442 6.66667 15V8.33333Z",
      );
      path.setAttribute("stroke", "currentColor");
      path.setAttribute("stroke-width", "1.75");
      path.setAttribute("stroke-linecap", "round");
      path.setAttribute("stroke-linejoin", "round");
      icon.append(path);
      return icon;
    };
    const setCopyIcon = (button) => button.replaceChildren(createCopyIcon());
    const getCopyLabel = (field) =>
      field === "username" ? dialog?.querySelector("[data-pat-username-label]")?.textContent || "Account ID" : "Token";
    const resetCopyButton = (field) => {
      const button = dialog?.querySelector(`[data-pat-copy="${field}"]`);
      if (!button) return;
      const label = getCopyLabel(field);
      setCopyIcon(button);
      button.setAttribute("aria-label", field === "username" ? `Copy ${label}` : "Copy token");
    };
    const cancelCopyConfirmation = (field) => {
      const timer = copyConfirmationTimers.get(field);
      if (timer !== void 0) browserWindow.clearTimeout(timer);
      copyConfirmationTimers.delete(field);
      resetCopyButton(field);
    };
    const showCopyConfirmation = (field) => {
      cancelCopyConfirmation(field);
      const button = dialog?.querySelector(`[data-pat-copy="${field}"]`);
      if (!button) return;
      const icon = document2.createElementNS("http://www.w3.org/2000/svg", "svg");
      icon.setAttribute("aria-hidden", "true");
      icon.setAttribute("data-pat-copy-confirmation", "");
      icon.setAttribute("viewBox", "0 0 24 24");
      icon.setAttribute("width", "20");
      icon.setAttribute("height", "20");
      icon.setAttribute("fill", "none");
      icon.setAttribute("stroke", "currentColor");
      icon.setAttribute("stroke-width", "2.25");
      icon.setAttribute("stroke-linecap", "round");
      icon.setAttribute("stroke-linejoin", "round");
      const path = document2.createElementNS("http://www.w3.org/2000/svg", "path");
      path.setAttribute("d", "m5 12 4 4L19 6");
      icon.append(path);
      button.replaceChildren(icon);
      button.setAttribute("aria-label", `${getCopyLabel(field)} copied`);
      copyConfirmationTimers.set(
        field,
        browserWindow.setTimeout(() => {
          copyConfirmationTimers.delete(field);
          resetCopyButton(field);
        }, COPY_CONFIRMATION_DURATION),
      );
    };
    const show = (state) => {
      const element = get();
      element.querySelectorAll("[data-pat-view]").forEach((view) => {
        view.hidden = view.getAttribute("data-pat-view") !== state;
      });
      element.setAttribute("aria-labelledby", `text-docs-pat-title-${state}`);
      element.setAttribute("aria-describedby", `text-docs-pat-description-${state}`);
      browserWindow.requestAnimationFrame(() => element.querySelector(`#text-docs-pat-title-${state}`)?.focus());
    };
    const updateScopeDisclosure = (element) => {
      const scopes = [...element.querySelector("[data-pat-scopes]").children];
      const toggle = element.querySelector("[data-pat-scopes-toggle]");
      const remainingCount = Math.max(0, scopes.length - VISIBLE_SCOPE_LIMIT);
      const expanded = remainingCount > 0 && scopesExpanded;
      scopes.forEach((scope, index) => {
        scope.hidden = !expanded && index >= VISIBLE_SCOPE_LIMIT;
      });
      toggle.hidden = remainingCount === 0;
      toggle.setAttribute("aria-expanded", String(expanded));
      toggle.textContent = expanded
        ? "Show fewer scopes"
        : `Show ${remainingCount} more ${remainingCount === 1 ? "scope" : "scopes"}`;
    };
    const zeroize = () => {
      if (!dialog) return;
      dialog.querySelectorAll("input").forEach((input) => {
        input.value = "";
        if (input.matches("[data-pat-username], [data-pat-personal-token]")) input.removeAttribute("size");
      });
      const scopes = dialog.querySelector("[data-pat-scopes]");
      if (scopes) scopes.replaceChildren();
      scopesExpanded = false;
      updateScopeDisclosure(dialog);
      const error = dialog.querySelector("[data-pat-error]");
      if (error) {
        error.textContent = "";
        error.hidden = true;
      }
      clearNameError(dialog);
      const status = dialog.querySelector("[data-pat-copy-status]");
      if (status) {
        status.textContent = "";
        status.hidden = true;
      }
      copyConfirmationTimers.forEach((timer) => browserWindow.clearTimeout(timer));
      copyConfirmationTimers.clear();
      resetCopyButton("username");
      resetCopyButton("personalToken");
    };
    return {
      onAction(callback) {
        handler = callback;
      },
      open() {
        const element = get();
        if (!element.open) {
          scopesExpanded = false;
          updateScopeDisclosure(element);
          typeof element.showModal === "function" ? element.showModal() : element.setAttribute("open", "");
        }
      },
      close() {
        if (!dialog) return;
        zeroize();
        if (dialog.open && typeof dialog.close === "function") dialog.close();
        else dialog.removeAttribute("open");
      },
      isOpen() {
        return Boolean(dialog?.open);
      },
      setBusy(value, label = "Working\u2026") {
        const element = get();
        element.setAttribute("aria-busy", String(value));
        element.querySelectorAll("button, [data-pat-name]").forEach((control) => {
          control.disabled = value;
        });
        if (!value) {
          element.querySelectorAll("[data-idle-label]").forEach((button) => {
            button.textContent = button.dataset.idleLabel;
            delete button.dataset.idleLabel;
          });
        }
        const active = element.querySelector("[data-pat-view]:not([hidden]) [data-pat-create]");
        if (value && active) {
          if (!active.dataset.idleLabel) active.dataset.idleLabel = active.textContent;
          active.textContent = label;
        }
      },
      render(model) {
        const element = get();
        if (model.state === "checking") {
          element.querySelector("[data-pat-checking-title]").textContent =
            model.title || "Checking personal access tokens";
          element.querySelector("[data-pat-checking-description]").textContent =
            model.description || "Checking for a personal access token for this API.";
          element.querySelector("[data-pat-checking-progress]").textContent = model.progress || "Checking\u2026";
        }
        if (model.state === "permission-error") {
          element.querySelector("[data-pat-permission-error]").textContent = model.message;
        }
        if (model.state === "list-error") element.querySelector("[data-pat-list-error]").textContent = model.message;
        if (model.state === "decision") {
          element.querySelector("[data-pat-name]").value = model.tokenName;
          element.querySelector("[data-pat-scopes]").replaceChildren(
            ...model.scopeNames.map((scope) => {
              const code = document2.createElement("code");
              code.textContent = scope;
              return code;
            }),
          );
          updateScopeDisclosure(element);
          element.querySelector("[data-pat-scopes-description]").textContent =
            `Includes all scopes required by ${model.apiLabel} that are available to your account.`;
          const error = element.querySelector("[data-pat-error]");
          error.textContent = model.error || "";
          error.hidden = !model.error;
          const nameInput = element.querySelector("[data-pat-name]");
          const nameError = element.querySelector("[data-pat-name-error]");
          nameError.textContent = model.nameError || "";
          nameError.hidden = !model.nameError;
          if (model.nameError) nameInput.setAttribute("aria-invalid", "true");
          else nameInput.removeAttribute("aria-invalid");
          element.querySelector("[data-pat-decision-title]").textContent = "Create personal access token";
          element.querySelector("[data-pat-decision-description]").textContent =
            `Create a token to use with ${model.apiLabel}.`;
        }
        if (model.state === "result") {
          element.querySelector("[data-pat-result-description]").textContent = model.populated
            ? "Your Account ID and token are ready to use in the API playground during this browsing session."
            : "Copy these credentials into the Basic authentication fields under Authorization.";
          const username = element.querySelector("[data-pat-username]");
          username.value = model.credential.username;
          username.size = Math.max(1, model.credential.username.length);
          resetCopyButton("username");
          const personalToken = element.querySelector("[data-pat-personal-token]");
          personalToken.value = model.credential.personalToken;
          personalToken.size = Math.max(1, model.credential.personalToken.length);
        }
        show(model.state);
      },
      focusError() {
        browserWindow.requestAnimationFrame(() => get().querySelector("[data-pat-error]")?.focus());
      },
      focusName() {
        browserWindow.requestAnimationFrame(() => get().querySelector("[data-pat-name]")?.focus());
      },
      zeroize,
      async copy(field, value) {
        const element = get();
        const label = getCopyLabel(field);
        const status = element.querySelector("[data-pat-copy-status]");
        try {
          await clipboard.writeText(value);
          status.textContent = "";
          status.hidden = true;
          showCopyConfirmation(field);
          return true;
        } catch {
          cancelCopyConfirmation(field);
          const input = element.querySelector(
            field === "username" ? "[data-pat-username]" : "[data-pat-personal-token]",
          );
          input.focus();
          input.select();
          status.textContent = `${label} selected. Copy it with your keyboard or browser menu.`;
          status.hidden = false;
          return false;
        }
      },
      getElement: get,
    };
  };

  // src/pat-playground/playground-adapter.mjs
  var CONTROL_ATTRIBUTE = "data-text-docs-pat-control";
  var DIALOG_ID2 = "text-docs-pat-dialog";
  var AUTHORIZATION_SECTION_TEST_ID = "api-input-section-Authorization";
  var createPlaygroundAdapter = ({
    browserWindow,
    document: document2,
    resolveRoute,
    onControlClick,
    onImpression,
  }) => {
    let activeGroupId = "";
    let discardPassword = false;
    let discardUsername = false;
    let retainedPassword = null;
    let passwordWriteInProgress = false;
    let usernameWriteInProgress = false;
    const passwordFieldGroups = /* @__PURE__ */ new WeakMap();
    const usernameFieldGroups = /* @__PURE__ */ new WeakMap();
    const usernameOverrides = /* @__PURE__ */ new Map();
    const isRendered = (element) => {
      if (!(element instanceof browserWindow.HTMLElement) || element.hidden) return false;
      const styles = browserWindow.getComputedStyle(element);
      return styles.display !== "none" && styles.visibility !== "hidden" && element.getClientRects().length > 0;
    };
    const getPlaygroundRoot = () =>
      Array.from(document2.querySelectorAll('[data-testid="api-playground-modal"]')).find(isRendered) || null;
    const getInputDescriptor = (input) => {
      const values = [
        input.getAttribute("aria-label"),
        input.getAttribute("placeholder"),
        input.getAttribute("name"),
        input.getAttribute("autocomplete"),
        input.closest("label")?.textContent,
        ...(input.labels ? Array.from(input.labels, (label) => label.textContent) : []),
      ];
      let ancestor = input.parentElement;
      for (let depth = 0; ancestor && depth < 3; depth += 1, ancestor = ancestor.parentElement) {
        values.push(ancestor.querySelector(":scope > label")?.textContent);
        values.push(ancestor.querySelector(':scope > [data-component-part="field-name"]')?.textContent);
        values.push(ancestor.previousElementSibling?.textContent);
      }
      return values.filter(Boolean).join(" ").toLowerCase();
    };
    const getCredentialTargets = (root) => {
      const inputs = Array.from(root.querySelectorAll("input, textarea")).filter(
        (input) =>
          !input.closest(`#${DIALOG_ID2}`) &&
          !input.disabled &&
          !["button", "checkbox", "file", "hidden", "radio", "submit"].includes(input.type) &&
          isRendered(input),
      );
      const described = inputs.map((input) => ({ descriptor: getInputDescriptor(input), input }));
      const username = described.find(({ descriptor }) => /account.?id|e-?mail|user.?name/.test(descriptor));
      const password = described.find(
        ({ descriptor, input }) =>
          input !== username?.input && /personal access token|password|\bpat\b/.test(descriptor),
      );
      return username && password ? { username: username.input, password: password.input } : null;
    };
    const getAuthorizationSection = (root, targets) => {
      const exact = root.querySelector?.(`[data-testid="${AUTHORIZATION_SECTION_TEST_ID}"]`);
      if (exact && isRendered(exact)) return exact;
      const matching = Array.from(root.querySelectorAll?.("[data-testid]") || []).find(
        (element) =>
          element.getAttribute("data-testid")?.toLowerCase() === AUTHORIZATION_SECTION_TEST_ID.toLowerCase() &&
          isRendered(element),
      );
      if (matching) return matching;
      if (!targets) return null;
      for (const selector of ['[role="group"]', "fieldset", "section"]) {
        const container2 = targets.username.closest(selector);
        if (container2?.contains(targets.password) && isRendered(container2)) return container2;
      }
      let container = targets.username.parentElement;
      for (let depth = 0; container && depth < 4; depth += 1, container = container.parentElement) {
        if (container.contains?.(targets.password) && isRendered(container)) return container;
      }
      return null;
    };
    const getAuthorizationCard = (section, targets) => {
      if (!section || !targets || !section.contains(targets.username) || !section.contains(targets.password))
        return null;
      let container = targets.username.parentElement;
      while (container && container !== section) {
        if (container.contains(targets.password) && isRendered(container)) return container;
        container = container.parentElement;
      }
      return isRendered(section) ? section : null;
    };
    const setNativeValue = (element, value) => {
      let prototype = Object.getPrototypeOf(element);
      let setter = null;
      while (prototype && !setter) {
        setter = Object.getOwnPropertyDescriptor(prototype, "value")?.set || null;
        prototype = Object.getPrototypeOf(prototype);
      }
      if (!setter) throw new Error("The playground credential field is unsupported.");
      setter.call(element, value);
      element.dispatchEvent(new browserWindow.Event("input", { bubbles: true }));
      element.dispatchEvent(new browserWindow.Event("change", { bubbles: true }));
    };
    const setUsernameValue = (element, value) => {
      usernameWriteInProgress = true;
      try {
        setNativeValue(element, value);
      } finally {
        usernameWriteInProgress = false;
      }
    };
    const setPasswordValue = (element, value) => {
      passwordWriteInProgress = true;
      try {
        setNativeValue(element, value);
      } finally {
        passwordWriteInProgress = false;
      }
    };
    const selectActiveGroup = (groupId = "") => {
      if (activeGroupId === groupId) return;
      activeGroupId = groupId;
      retainedPassword = null;
    };
    const syncUsernameField = (input, groupId, authenticatedValue) => {
      if (!usernameFieldGroups.has(input)) {
        input.addEventListener("input", () => {
          const fieldGroupId = usernameFieldGroups.get(input);
          if (usernameWriteInProgress) return;
          discardUsername = false;
          if (fieldGroupId) usernameOverrides.set(fieldGroupId, input.value);
        });
      }
      usernameFieldGroups.set(input, groupId);
      if (discardUsername) {
        if (authenticatedValue) {
          discardUsername = false;
          usernameOverrides.delete(groupId);
          if (input.value !== authenticatedValue) setUsernameValue(input, authenticatedValue);
        } else if (input.value) {
          setUsernameValue(input, "");
        }
        return;
      }
      const hasOverride = usernameOverrides.has(groupId);
      const preferredValue = hasOverride ? usernameOverrides.get(groupId) : authenticatedValue;
      if ((hasOverride || !input.value) && input.value !== preferredValue) setUsernameValue(input, preferredValue);
    };
    const syncPasswordField = (input, groupId) => {
      if (input instanceof browserWindow.HTMLInputElement && input.type !== "password") input.type = "password";
      const hasPreviousGroup = passwordFieldGroups.has(input);
      const previousGroupId = passwordFieldGroups.get(input);
      if (!hasPreviousGroup) {
        input.addEventListener("input", () => {
          const fieldGroupId = passwordFieldGroups.get(input);
          if (!passwordWriteInProgress) discardPassword = false;
          if (
            !passwordWriteInProgress &&
            fieldGroupId &&
            fieldGroupId === activeGroupId &&
            input.isConnected &&
            isRendered(input)
          ) {
            retainedPassword = input.value;
          }
        });
      }
      passwordFieldGroups.set(input, groupId);
      if (hasPreviousGroup && previousGroupId !== groupId) {
        if (input.value) setPasswordValue(input, "");
        return;
      }
      if (discardPassword) {
        if (input.value) setPasswordValue(input, "");
        return;
      }
      if (input.value) retainedPassword = input.value;
      else if (retainedPassword !== null) setPasswordValue(input, retainedPassword);
    };
    const createControl = () => {
      const control = document2.createElement("div");
      control.className = "text-docs-pat-control print:hidden";
      control.setAttribute(CONTROL_ATTRIBUTE, "");
      const prompt = document2.createElement("span");
      prompt.className = "text-docs-pat-control-prompt";
      prompt.textContent = "Need a personal access token to call this API?";
      const button = document2.createElement("button");
      button.type = "button";
      button.className = "text-docs-pat-control-button";
      button.setAttribute("aria-label", "Create personal access token");
      button.textContent = "Create token";
      button.addEventListener("click", onControlClick);
      control.append(prompt, button);
      return control;
    };
    const clearCredentialTargets = (targets) => {
      try {
        setUsernameValue(targets.username, "");
        setPasswordValue(targets.password, "");
      } catch {}
    };
    const clearRenderedCredentials = () => {
      const root = getPlaygroundRoot();
      const targets = root ? getCredentialTargets(root) : null;
      if (targets) clearCredentialTargets(targets);
    };
    return {
      getPlaygroundRoot,
      getCredentialTargets,
      getAuthorizationSection,
      getAuthorizationCard,
      syncUsernameField,
      syncControl(entry, authenticatedUsername) {
        selectActiveGroup(entry?.groupId);
        const controls = Array.from(document2.querySelectorAll(`[${CONTROL_ATTRIBUTE}]`));
        if (!entry) {
          controls.forEach((control2) => control2.remove());
          return false;
        }
        const root = getPlaygroundRoot();
        const targets = root ? getCredentialTargets(root) : null;
        const section = root ? getAuthorizationSection(root, targets) : null;
        const card = getAuthorizationCard(section, targets);
        if (!card) {
          controls.forEach((control2) => control2.remove());
          return false;
        }
        try {
          syncUsernameField(targets.username, entry.groupId, authenticatedUsername);
          syncPasswordField(targets.password, entry.groupId);
        } catch {}
        const control = controls.shift() || createControl();
        controls.forEach((duplicate) => duplicate.remove());
        if (card.lastElementChild !== control) card.append(control);
        onImpression(entry);
        return true;
      },
      getPreferredUsername(groupId, fallback) {
        if (discardUsername) return fallback;
        if (usernameOverrides.has(groupId)) {
          const override = usernameOverrides.get(groupId);
          if (override) return override;
          usernameOverrides.delete(groupId);
          return fallback;
        }
        const root = resolveRoute()?.groupId === groupId ? getPlaygroundRoot() : null;
        const value = root ? getCredentialTargets(root)?.username?.value : "";
        return value || fallback;
      },
      async clearCredentials() {
        selectActiveGroup();
        discardPassword = true;
        discardUsername = true;
        usernameOverrides.clear();
        clearRenderedCredentials();
        await new Promise((resolve) => browserWindow.requestAnimationFrame(resolve));
        await new Promise((resolve) => browserWindow.requestAnimationFrame(resolve));
        clearRenderedCredentials();
      },
      async populate(credential, groupId) {
        if (resolveRoute()?.groupId !== groupId) return false;
        selectActiveGroup(groupId);
        const root = getPlaygroundRoot();
        const targets = root ? getCredentialTargets(root) : null;
        if (!targets) return false;
        discardPassword = false;
        discardUsername = false;
        usernameOverrides.delete(groupId);
        retainedPassword = credential.personalToken;
        let updatedTargets = null;
        try {
          setUsernameValue(targets.username, credential.username);
          setPasswordValue(targets.password, credential.personalToken);
          await new Promise((resolve) => browserWindow.requestAnimationFrame(resolve));
          await new Promise((resolve) => browserWindow.requestAnimationFrame(resolve));
          if (resolveRoute()?.groupId !== groupId) throw new Error("The API group changed.");
          const updatedRoot = getPlaygroundRoot();
          updatedTargets = updatedRoot ? getCredentialTargets(updatedRoot) : null;
          if (
            !updatedTargets ||
            updatedTargets.username.value !== credential.username ||
            updatedTargets.password.value !== credential.personalToken
          ) {
            throw new Error("The playground rejected the generated credentials.");
          }
          return true;
        } catch {
          if (activeGroupId === groupId) retainedPassword = null;
          clearCredentialTargets(targets);
          if (updatedTargets && updatedTargets !== targets) clearCredentialTargets(updatedTargets);
          return false;
        }
      },
    };
  };

  // src/pat-playground/route-context.mjs
  var PENDING_STORAGE_KEY = "text.docs.pat.pending-group.v2";
  var PENDING_LIFETIME = 10 * 60 * 1e3;
  var normalizeRoute = (value) => {
    const route = `/${String(value || "").replace(/^\/+|\/+$/g, "")}`;
    return route === "/" ? route : route.replace(/\/+$/g, "");
  };
  var getDocsRoute = (value) => {
    const route = normalizeRoute(value);
    if (route === "/docs") return "/";
    return route.startsWith("/docs/") ? route.slice("/docs".length) : route;
  };
  var matchesRoutePrefix = (pathname, prefix) => {
    const route = getDocsRoute(pathname);
    const boundary = normalizeRoute(prefix);
    return route === boundary || route.startsWith(`${boundary}/`);
  };
  var getRouteApiVersion = (pathname, prefix) => {
    if (!matchesRoutePrefix(pathname, prefix)) return "";
    const route = getDocsRoute(pathname);
    const boundary = normalizeRoute(prefix);
    return route.slice(boundary.length).match(/^\/(v\d+(?:\.\d+)*)(?:\/|$)/i)?.[1] || "";
  };
  var createRouteContext = ({ getManifest, getPathname, sessionStorage, now = Date.now }) => {
    const clearPending = () => {
      try {
        sessionStorage?.removeItem(PENDING_STORAGE_KEY);
      } catch {}
    };
    return {
      resolve(pathname = getPathname()) {
        const manifest = getManifest();
        if (!manifest?.groups) return null;
        for (const [groupId, group] of Object.entries(manifest.groups)) {
          const prefix = group.routePrefixes?.find((candidate) => matchesRoutePrefix(pathname, candidate));
          if (prefix) return { groupId, group, apiVersion: getRouteApiVersion(pathname, prefix) };
        }
        return null;
      },
      writePending(groupId) {
        try {
          sessionStorage?.setItem(PENDING_STORAGE_KEY, JSON.stringify({ createdAt: now(), groupId }));
        } catch {}
      },
      readPending() {
        try {
          const value = JSON.parse(sessionStorage?.getItem(PENDING_STORAGE_KEY));
          const groups = getManifest()?.groups;
          if (
            !groups ||
            !value ||
            !Number.isFinite(value.createdAt) ||
            now() - value.createdAt > PENDING_LIFETIME ||
            typeof value.groupId !== "string" ||
            !groups[value.groupId]
          ) {
            clearPending();
            return null;
          }
          return value;
        } catch {
          clearPending();
          return null;
        }
      },
      clearPending,
      getGroup(groupId) {
        return getManifest()?.groups?.[groupId] || null;
      },
    };
  };

  // src/pat-playground/telemetry.mjs
  var TELEMETRY_EVENT = "text-docs:pat-telemetry";
  var ALLOWED_PROPERTIES = /* @__PURE__ */ new Set(["field", "status"]);
  var SENSITIVE_PATTERN = /credential|secret|token(?:id|_id|name|_name)?|personalToken/i;
  var sanitizeProperty = (key, value) => {
    if (key === "field" && ["username", "personalToken"].includes(value)) return value;
    if (key === "status" && Number.isInteger(value)) return value;
    return void 0;
  };
  var createTelemetry = (browserWindow) => ({
    emit(action, groupId, group, properties = {}) {
      if (!groupId || !group) return;
      const safeProperties = {};
      for (const [key, value] of Object.entries(properties)) {
        if (SENSITIVE_PATTERN.test(key) || !ALLOWED_PROPERTIES.has(key)) continue;
        const safeValue = sanitizeProperty(key, value);
        if (safeValue !== void 0) safeProperties[key] = safeValue;
      }
      const detail = { event: "text_docs_pat", action, api: group.api, apiGroupId: groupId, ...safeProperties };
      browserWindow.dispatchEvent(new browserWindow.CustomEvent(TELEMETRY_EVENT, { detail }));
      if (Array.isArray(browserWindow.dataLayer)) browserWindow.dataLayer.push(detail);
    },
  });

  // src/pat-playground/index.mjs
  var INITIALIZED_KEY = "__textDocsPatPlaygroundInitialized";
  var OAUTH_API_KEY = "__TEXT_DOCS_OAUTH__";
  var MANIFEST_KEY = "__TEXT_DOCS_PAT_API_GROUP_MANIFEST__";
  var OAUTH_READY_EVENT = "text-docs:oauth-ready";
  var OAUTH_STATE_EVENT = "text-docs:oauth-state-change";
  var MANIFEST_READY_EVENT = "text-docs:pat-group-manifest-ready";
  if (!window[INITIALIZED_KEY]) {
    window[INITIALIZED_KEY] = true;
    const getSessionStorage = () => {
      try {
        return window.sessionStorage;
      } catch {
        return null;
      }
    };
    const routeContext = createRouteContext({
      getManifest: () => window[MANIFEST_KEY] || null,
      getPathname: () => window.location.pathname,
      sessionStorage: getSessionStorage(),
    });
    const waitForOAuth = () => {
      if (window[OAUTH_API_KEY]) return Promise.resolve(window[OAUTH_API_KEY]);
      return new Promise((resolve, reject) => {
        const timeout = window.setTimeout(() => {
          window.removeEventListener(OAUTH_READY_EVENT, ready);
          reject(new Error("Text sign-in is unavailable."));
        }, 3e3);
        const ready = () => {
          window.clearTimeout(timeout);
          resolve(window[OAUTH_API_KEY]);
        };
        window.addEventListener(OAUTH_READY_EVENT, ready, { once: true });
      });
    };
    const view = createDialogView({ browserWindow: window, document, clipboard: navigator.clipboard });
    const telemetry = createTelemetry(window);
    let controller;
    const adapter = createPlaygroundAdapter({
      browserWindow: window,
      document,
      resolveRoute: () => routeContext.resolve(),
      onControlClick: () => controller.controlClick(),
      onImpression: (entry) => controller.recordImpression(entry),
    });
    controller = createController({
      routeContext,
      adapter,
      view,
      telemetry,
      waitForOAuth,
      getOAuthState: () => window[OAUTH_API_KEY]?.getState?.() || {},
      createService: (oauth) =>
        createPatService({ client: createAccountsClient(oauth), getIdentity: () => oauth.getState() }),
    });
    let renderScheduled = false;
    const scheduleSync = () => {
      if (renderScheduled) return;
      renderScheduled = true;
      window.requestAnimationFrame(() => {
        renderScheduled = false;
        controller.sync();
      });
    };
    const start = () => {
      new MutationObserver(scheduleSync).observe(document.documentElement, {
        attributeFilter: [
          "aria-label",
          "autocomplete",
          "class",
          "data-testid",
          "hidden",
          "name",
          "placeholder",
          "style",
        ],
        attributes: true,
        childList: true,
        subtree: true,
      });
      window.addEventListener(MANIFEST_READY_EVENT, () => {
        scheduleSync();
        void controller.resumePending();
      });
      window.addEventListener(OAUTH_READY_EVENT, () => {
        scheduleSync();
        void controller.resumePending();
      });
      window.addEventListener(OAUTH_STATE_EVENT, (event) => {
        controller.handleOAuthStateChange(event.detail);
        scheduleSync();
        void controller.resumePending();
      });
      window.addEventListener("popstate", scheduleSync);
      window.addEventListener("pageshow", () => {
        scheduleSync();
        void controller.resumePending();
      });
      scheduleSync();
      void controller.resumePending();
    };
    if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start, { once: true });
    else start();
  }
})();
53:["$","$L59",null,{"customJsDisabled":false,"jsFiles":[{"_id":"6a0c232f9b8894f6eb02b363","filePath":"src/components/NavSectionHeaders.js","subdomain":"text-56a1eab5","__v":0,"content":"$5a"},{"_id":"6a1400e48ed5dd7dc680cc13","filePath":"src/components/chat-widget.js","subdomain":"text-56a1eab5","__v":0,"content":"$5b"},{"_id":"6a37018b436d2197be5de2f0","filePath":"src/components/feedback-position.js","subdomain":"text-56a1eab5","__v":0,"content":"$5c"},{"_id":"6a37018b436d2197be5de306","filePath":"src/components/openapi-labels.js","subdomain":"text-56a1eab5","__v":0,"content":"function relabelEnumOptions() {\n  const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null);\n  let node;\n  while ((node = walker.nextNode())) {\n    if (node.textContent.trim() === \"Available options\") {\n      node.textContent = node.textContent.replace(\"Available options\", \"Possible values\");\n    }\n  }\n}\n\nlet _relabelRafPending = false;\nfunction scheduleRelabel() {\n  if (_relabelRafPending) return;\n  _relabelRafPending = true;\n  requestAnimationFrame(() => {\n    _relabelRafPending = false;\n    relabelEnumOptions();\n  });\n}\n\nif (document.readyState === \"loading\") {\n  document.addEventListener(\"DOMContentLoaded\", () => {\n    relabelEnumOptions();\n    scheduleRelabel();\n  });\n} else {\n  relabelEnumOptions();\n  scheduleRelabel();\n}\n\nnew MutationObserver(scheduleRelabel).observe(document.body, {\n  childList: true,\n  subtree: true,\n});\n"},{"_id":"6a4f8ff57ec0f75650e38caf","filePath":"src/components/changelog-filter.js","subdomain":"text-56a1eab5","__v":0,"content":"$5d"},{"_id":"6a9009d2b98f9ef4392a8cfa","filePath":"src/components/oauth-navbar.js","subdomain":"text-56a1eab5","__v":0,"content":"$5e"},{"_id":"6a980cbe014816711bc4cb2a","filePath":"src/components/api-playground-sentence-case.js","subdomain":"text-56a1eab5","__v":0,"content":"$5f"},{"_id":"6a9a7cdf3683460af5d407fa","subdomain":"text-56a1eab5","filePath":"src/components/pat-api-group-manifest.js","__v":0,"content":"$60"},{"_id":"6a9a7cdf3683460af5d4086c","filePath":"src/components/pat-playground.js","subdomain":"text-56a1eab5","__v":0,"content":"$61"}]}]
64:T24f5,"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`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Icon,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Icon)_missingMdxReference(`Icon`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The Agent Chat API gives you programmatic access to everything that happens in your Text conversations. Use it to build automations, connect chat to your internal tools, create custom agent interfaces, or deploy bots that handle routine requests.`}),`
`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`
`,_jsx(_components.p,{children:`For access requirements and version support, see:`}),`
`,_jsxs(`p`,{children:[_jsxs(_components.p,{children:[_jsx(Icon,{icon:`file`}),` `,_jsx(_components.a,{href:`/authentication/overview`,children:`Authorization`})]}),_jsx(`br`,{}),_jsxs(_components.p,{children:[_jsx(Icon,{icon:`file`}),` `,_jsx(_components.a,{href:`/authentication/scopes`,children:`Scopes`})]}),_jsx(`br`,{}),_jsxs(_components.p,{children:[_jsx(Icon,{icon:`file`}),` `,_jsx(_components.a,{href:`/key-concepts/api-versioning`,children:`API versioning`})]})]}),`
`,_jsx(Heading,{level:`2`,id:`choose-web-api-or-rtm-api`,children:`Choose Web API or RTM API`}),`
`,_jsx(_components.p,{children:`The Agent Chat API is available as a Web API and an RTM API. Choose between them based on how your integration connects and receives updates.`}),`
`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`API`}),_jsx(_components.th,{children:`Connection and use`}),_jsx(_components.th,{children:`Event delivery`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Web API`}),_jsx(_components.td,{children:`Sends an HTTP request for each action. Use it for stateless integrations and bots.`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/webhooks/v3.6/`,children:`Webhooks`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/rtm`,children:`RTM API`})}),_jsx(_components.td,{children:`Maintains a WebSocket connection. Use it when an agent interface needs conversation changes as they happen.`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/rtm/pushes`,children:`Pushes`})})]})]})]}),`
`,_jsx(Heading,{level:`2`,id:`agent-chat-resources`,children:`Agent Chat resources`}),`
`,_jsxs(_components.p,{children:[`The Agent Chat Web API resources cover operations that agents and bots can perform when working with customer conversations. For shared chat, thread, event, and user objects, see the Agent Chat API `,_jsx(_components.a,{href:`/api/agent-chat/v3.6/data-structures`,children:`data structures`}),`.`]}),`
`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Resource`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/chats/list-chats`,children:`Chats`})}),_jsx(_components.td,{children:`Access chat history and manage the lifecycle of chats and threads. Following a chat lets an agent receive its updates without joining it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/chat-access/transfer-chat`,children:`Chat access`})}),_jsx(_components.td,{children:`Transfer an active chat to another agent or group.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/chat-users/add-user-to-chat`,children:`Chat users`})}),_jsx(_components.td,{children:`Add or remove participants from active chats.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/events/send-event-preview`,children:`Events`})}),_jsx(_components.td,{children:`Send messages, files, rich message postbacks, and message previews to chats.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/properties/update-chat-properties`,children:`Properties`})}),_jsx(_components.td,{children:`Manage custom properties attached to chats, threads, and events.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/thread-tags/tag-thread`,children:`Thread tags`})}),_jsxs(_components.td,{children:[`Apply or remove tags on individual threads. To manage tags, use the `,_jsx(_components.a,{href:`/api/configuration/v3.6/tags/list-tags`,children:`Configuration API`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/customers/get-customer`,children:`Customers`})}),_jsx(_components.td,{children:`Access and update customer data associated with a conversation, inspect segment memberships, or temporarily prevent the customer from connecting.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/status/set-routing-status`,children:`Status`})}),_jsx(_components.td,{children:`Control whether an agent or bot accepts chats and inspect agent routing status.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/agent-chat/v3.6/other/mark-events-as-seen`,children:`Other`})}),_jsx(_components.td,{children:`Covers conversation actions outside the other resource groups, including read state, activity indicators, transfer candidates, multicast messages, and thread summaries.`})]})]})]}),`
`,_jsx(Heading,{level:`2`,id:`related-apis`,children:`Related APIs`}),`
`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`If you need to`}),_jsx(_components.th,{children:`Use`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Interact with a conversation as a customer`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/customer-chat/`,children:`Customer Chat API`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Manage agents, bots, groups, tags, and other organization settings`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/configuration/`,children:`Configuration API`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Store customer data from external systems for agents to use during conversations`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api/customer-data-platform/`,children:`Customer Data Platform API`})})]})]})]}),`
`,_jsxs(_components.p,{children:[`For a broader comparison, see `,_jsx(_components.a,{href:`/api-overview/messaging-apis`,children:`Messaging APIs`}),`.`]}),`
`,_jsx(Heading,{level:`2`,id:`calling-the-api-as-a-bot`,children:`Calling the API as a bot`}),`
`,_jsxs(_components.p,{children:[`To call the Agent Chat API as a bot, use a bot token created with `,_jsx(_components.a,{href:`/api/configuration/v3.6/bots/issue-bot-token`,children:`Issue Bot Token`}),`. This authenticates the request as the bot, letting it interact with the API.`]}),`
`,_jsx(_components.p,{children:`Bots can only use the Web API.`}),`
`,_jsx(Heading,{level:`2`,id:`rate-limits`,children:`Rate limits`}),`
`,_jsxs(_components.p,{children:[`Method calls are rate-limited. If you exceed a limit, requests return a `,_jsx(_components.code,{children:`Too many requests`}),` error until the limit resets.`]}),`
`,_jsx(Heading,{level:`2`,id:`request-pagination`,children:`Pagination`}),`
`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`limit`}),` to control the page size and `,_jsx(_components.code,{children:`sort_order`}),` to return the oldest or newest records first. Provide any filters in the first request.`]}),`
`,_jsxs(_components.p,{children:[`The response contains `,_jsx(_components.code,{children:`next_page_id`}),` and, where supported, `,_jsx(_components.code,{children:`previous_page_id`}),`. Pass the appropriate value as `,_jsx(_components.code,{children:`page_id`}),` to move forward or backward. The API reuses the original `,_jsx(_components.code,{children:`filters`}),`, `,_jsx(_components.code,{children:`limit`}),`, and `,_jsx(_components.code,{children:`sort_order`}),`, which can’t be provided along with `,_jsx(_components.code,{children:`page_id`}),`. Start a new pagination request to change them.`]}),`
`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`page_id`}),` token expires after 1 month.`]})]})}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.")}54:["$","$L62",null,{"slug":"api/agent-chat/v3.6","pageMetadata":"$49:props:pageMetadata","theme":"palm","children":["$","$L63",null,{"mdxSource":{"compiledSource":"$64","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Using the Agent Chat API","description":"Connect agents, bots, and your own tools to Text so they can participate in customer conversations through the Web API.","href":"/api/agent-chat/v3.6/index"}}},"mdxSourceWithNoJs":"$undefined","displayDomain":"www.text.com/docs"}]}]
