Functions are the building blocks of logic. They can be used to perform actions, such as retrieving a record from the database, or generating a random number.
Hover over a node and click the plus icon to insert a new function after it. You can also hover over the connecting lines to insert a function at that point in the flow.
Adding new functions
In the panel that opens on the right, you can select the function you want to add. Use the search at the top, or navigate through the function categories.
Each function will have a different set of options available to you, so it’s best to consult that function’s specific documentation for more information.
Add a function by clicking the + Add Function button below the function stack, hover over a function and click the + sign, or use your up and down arrow keys to select a row, and press A on your keyboard to add a new function.
In the panel that opens on the right, you can select the function you want to add. Use the search at the top, or navigate through the function categories.
Each function will have a different set of options available to you, so it’s best to consult that function’s specific documentation for more information.After you add a function, Xano will sometimes suggest the most likely next step; for example, adding a Query All Records will suggest a loop after. You can choose to add the suggestion, ignore it, or just continue working and Xano will dismiss the suggestion automatically.
Functions are defined in the stack block, placed immediately after the declaration and accompanying parameters, such as the description.
Example of the stack block and positioning
stack { db.query user { search = $db.user.name ==? $input.name return = {type: "list"} } as $model}
Functions begin with a namespace — basically, a category that the function is a part of. Each namespace is followed by a period, with the function name immediately after. After that, you’ll declare any parameters the function requires. Functions can also have a description, which is optional.
Review all available functions below by selecting the section you’re interested in.
Database Requests
Database Requests are used to perform operations against your database tables,
such as retrieving, creating, updating, and deleting records.
Data Manipulation
Data Manipulation is used to parse and manipulate data, such as looping,
filtering, sorting, and transforming data.
Security
Security is used to secure your data, such as encrypting data, and validating
data.
APIs and Lambdas
APIs and Lambdas are used to create APIs and lambdas, such as creating APIs
and lambdas.
AI Tools
Functions for using AI and related tools, such as Agents, the Template Engine,
and MCP Servers.
Data Caching (Redis)
Data Caching (Redis) is used to cache data, such as caching data in Redis.
Actions
Actions are reusable building blocks by the Xano team and community that you
can use in your own workspace.
Custom Functions
Custom Functions contain all of the custom functions you’ve created.
Utility Functions
Utility Functions are used for things like debugging, error handling,
grouping, and more.
File Storage
File Storage functions are used to store, retrieve, and manage files in your
Xano files library.
Cloud Services
Cloud Services are used to connect to cloud services, such as Algolia, AWS
OpenSearch, S3, and more.
Was this page helpful?
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Xano Documentation","colors":{"primary":"#1b62f8","light":"#3884ff","dark":"#1b62f8"},"logo":{"light":"https://mintcdn.com/xano-997cb9ee/hLg--ImSu58u2jLW/logo/logo_wordmark_blue_1_.svg?fit=max\u0026auto=format\u0026n=hLg--ImSu58u2jLW\u0026q=85\u0026s=487b8933249723b2ebc7bf7b6179ea0c","dark":"https://mintcdn.com/xano-997cb9ee/hLg--ImSu58u2jLW/logo/logo_wordmark_white.svg?fit=max\u0026auto=format\u0026n=hLg--ImSu58u2jLW\u0026q=85\u0026s=2d791d4d44350552266e449b7bea065c"},"favicon":"https://mintcdn.com/xano-997cb9ee/hLg--ImSu58u2jLW/logo/logo_symbol_blue.svg?fit=max\u0026auto=format\u0026n=hLg--ImSu58u2jLW\u0026q=85\u0026s=5d31c3241d161111c202c2ec3afcbcc0","background":{"color":{"light":"#f9f9f9","dark":"#141518"}},"navbar":{"links":[{"href":"/legal","label":"Legal"},{"href":"/updates","label":"Releases"},{"href":"https://status.xano.com/","label":"Status"},{"href":"https://app.xano.com/","label":"Log in"}],"primary":{"type":"button","label":"Get started for free","href":"https://app.xano.com/signup?plan=build\u0026cluster_id=1\u0026segment=eyJhbm9ueW1vdXNJZCI6IjU4NTcwNzY4NDUuODY1MzMwMTE5MCIsInV0bV9tZWRpdW0iOiIiLCJ1dG1fc291cmNlIjoiIiwidXRtX2NhbXBhaWduIjoiIiwidXRtX3Rlcm0iOiIiLCJ1dG1fY29udGVudCI6IiIsInJlZmVycmVyIjoiIn0%3D"}},"footer":{"socials":{"x":"https://x.com/nocodebackend","youtube":"https://www.youtube.com/@nocodebackend","linkedin":"https://www.linkedin.com/company/xano","facebook":"https://www.facebook.com/xanoinc"}},"seo":{"metatags":{"og:type":"website","og:site_name":"Xano Documentation","og:description":"Visual-first unified backend for modern apps. Build APIs, AI Agents, data, logic, auth, \u0026 more—all in one platform."},"indexing":"all"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"intercom":{"appId":"abk6h5qu"},"segment":{"key":"manKNsFY6zkgO9hggr91nc5yFYUh2d4B"}},"errors":{"404":{"redirect":false,"title":"Looks like a wire came loose","description":"The page you're looking for doesn't exist, or it moved. Try the search bar above, browse the [documentation home](/), or [contact support](https://xano.com/contact/) if you think something's broken."}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"xano-997cb9ee","hasAudioNarration":false,"actualSubdomain":"xano-997cb9ee","customDomains":["docs.xano.com"],"gitSource":{"type":"github","owner":"xano-labs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aebb6b222e8fae225981095","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Metadata API","count":208},{"language":"default","tag":"Xano","count":132},{"language":"default","tag":"Build","count":47},{"language":"default","tag":"XanoScript","count":46},{"language":"default","tag":"References","count":32},{"language":"default","tag":"table / schema / type","count":25},{"language":"default","tag":"Test \u0026 Deploy","count":20},{"language":"default","tag":"CLI","count":18},{"language":"default","tag":"Enterprise","count":17},{"language":"default","tag":"Logic \u0026 Workflows","count":13}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area .link{color:#103B95}.prose img:not([data-rmiz-modal-img]){max-width:60%;height:auto}.w-full aspect-video rounded-xl{max-width:60%!important}[data-rmiz-modal-content] img[data-rmiz-modal-img]{max-width:90vw!important;max-height:90vh!important;object-fit:contain}html.dark #content-area .link{color:#6B99FA}html.dark .mermaid svg g.node .label text,html.dark .mermaid svg g.node span.nodeLabel{fill:#eaf1ff!important;color:#103B95!important}html.dark .mermaid svg g.node rect,html.dark .mermaid svg g.node circle,html.dark .mermaid svg g.node ellipse,html.dark .mermaid svg g.node polygon,html.dark .mermaid svg g.node path{stroke:#8fb3ff!important;stroke-width:15px!important}img{background:none!important;background-color:transparent!important}.nodeLabel{font-size:12px}.stickyDiagram{position:sticky;top:var(--scroll-mt);flex:0 0 180px;min-width:100px}@media (max-width: 768px){.stickyDiagram{position:static;top:auto;flex:none;width:100%;margin-bottom:1rem}}table{display:table!important;width:100%;table-layout:auto}table th,table td{vertical-align:top;border-left:1px solid #dadada!important;border-right:1px solid #dadada!important;padding:0.5rem!important}.table-wrapper{overflow-x:visible}.supportButton{border:0px!important}.arcadediv{position:relative;padding-bottom:calc(80.4861% + 41px);height:0px;width:100%}.arcadeiframe{position:absolute;top:0;left:0;width:100%;height:100%!important;color-scheme:light}.tab-icon{display:inline-block;border-radius:4px;padding:2px}html.dark .tab-icon{background-color:#bababa!important}h2>span>.icon{position:relative;top:-0.1em;margin-right:0.4rem;vertical-align:middle}.ui-bubble{display:inline-flex;align-items:center;gap:0.35rem;padding:0.2rem 0.5rem;margin-bottom:0.2rem;margin-left:0.2rem;margin-right:0.2rem;background-color:var(--mintlify-code-bg, #f3f4f6);border:1px solid var(--mintlify-border-color, #e5e7eb);border-radius:6px;font:inherit;vertical-align:middle;font-size:0.9em!important;font-weight:800!important}html.dark .ui-bubble{background-color:#1f2937;border-color:#374151}.ui-bubble .icon{width:1.2em!important;height:1.2em!important;flex-shrink:0;display:inline-block;vertical-align:middle}.kb{display:inline-flex;align-items:center;gap:0.35rem;padding:0.2rem 0.5rem;margin-bottom:0.2rem;margin-left:0.2rem;margin-right:0.2rem;background-color:var(--mintlify-code-bg, #f3f4f6);border:1px solid var(--mintlify-border-color, #e5e7eb);border-radius:6px;font:inherit;vertical-align:middle;font-size:0.8em!important;font-weight:600!important;font-family:ui-monospace, \"SFMono-Regular\", \"Fira Code\",\n \"Cascadia Code\", Menlo, Consolas, monospace!important}html.dark .kb{background-color:#1f2937;border-color:#374151}.kb .icon{width:1em!important;height:1em!important;flex-shrink:0;display:inline-block;vertical-align:middle}.kbd{display:inline-flex;align-items:center;gap:0.3rem;padding:0.15rem 0.45rem;margin-bottom:0.2rem;margin-left:0.2rem;margin-right:0.2rem;background-color:var(--mintlify-code-bg, #f3f4f6);border:1px solid var(--mintlify-border-color, #e5e7eb);border-bottom-width:3px;border-radius:6px;font:inherit;vertical-align:middle;font-size:0.85em!important;font-weight:700!important;line-height:1.4;white-space:nowrap;user-select:none;color:var(--mintlify-content-color, #374151)}html.dark .kbd{background-color:#1f2937;border-color:#374151;border-bottom-color:#4b5563;color:#e5e7eb}.kbd .icon{width:1.1em!important;height:1.1em!important;flex-shrink:0;display:inline-block;vertical-align:middle}.kbd svg{width:1em;height:1em;flex-shrink:0;vertical-align:middle}.kbd--mac::before{font-family:\"Font Awesome 6 Brands\", \"Font Awesome 6 Free\", FontAwesome;content:\"\\f179\";font-weight:900;font-style:normal;font-size:0.95em;margin-right:0.25em;vertical-align:middle}.kbd--windows::before{font-family:\"Font Awesome 6 Brands\", \"Font Awesome 6 Free\", FontAwesome;content:\"\\f17a\";font-weight:400;font-style:normal;font-size:0.9em;margin-right:0.25em;vertical-align:middle}.kbd--linux::before{font-family:\"Font Awesome 6 Brands\", \"Font Awesome 6 Free\", FontAwesome;content:\"\\f17c\";font-weight:400;font-style:normal;font-size:0.95em;margin-right:0.25em;vertical-align:middle}:root[data-theme=\"dark\"] .prose :where(h1,h2,h3,h4,h5,h6),html.dark .prose :where(h1,h2,h3,h4,h5,h6){color:#fff!important}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important;margin-bottom:0!important}.prose :where(h1,h2,h3,h4,h5,h6)[id]{scroll-margin-top:120px!important}.browser-frame{--bf-radius: 10px;--bf-shadow: 0 8px 24px rgba(0,0,0,.06);--bf-border: #e5e7eb;--bf-bg: #ffffff;--bf-chrome: #f3f4f6;--bf-text: #6b7280;--bf-address-bg: rgba(255,255,255,.75);border:1px solid var(--bf-border);border-radius:var(--bf-radius);background:var(--bf-bg);box-shadow:var(--bf-shadow);overflow:hidden;max-width:100%}.dark .browser-frame{--bf-border: rgba(255,255,255,.12);--bf-bg: #0b0f19;--bf-chrome: #111827;--bf-text: rgba(255,255,255,.70);--bf-address-bg: rgba(255,255,255,.06);--bf-shadow: 0 12px 34px rgba(0,0,0,.45)}.browser-frame__top{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bf-chrome);border-bottom:1px solid var(--bf-border)}.browser-frame__controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}.browser-frame__dot{width:10px;height:10px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}.dark .browser-frame__dot{box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)}.browser-frame__dot--red{background:#ff5f57}.browser-frame__dot--yellow{background:#febc2e}.browser-frame__dot--green{background:#28c840}.browser-frame__address{flex:1 1 auto;height:22px;border-radius:999px;border:1px solid rgba(0,0,0,.06);background:var(--bf-address-bg);display:flex;align-items:center;justify-content:center;padding:0 10px;font:500 11px/1.2 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;color:var(--bf-text);letter-spacing:.2px;user-select:none}.dark .browser-frame__address{border-color:rgba(255,255,255,.08)}.browser-frame__body{background:var(--bf-bg)}.browser-frame__body img{width:100%;height:auto}.browser-frame__body *{border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}.browser-frame__body>*{margin:0!important;padding:0!important}.browser-frame__body pre{margin:0!important;padding:0!important}.browser-frame__body .browser-frame__img--light{display:block}.browser-frame__body .browser-frame__img--dark{display:none}.dark .browser-frame__body .browser-frame__img--light{display:none}.dark .browser-frame__body .browser-frame__img--dark{display:block}.qs-step{border:1px solid var(--mintlify-border-color, #e5e7eb);border-radius:1rem;padding:2rem;margin-bottom:2rem;position:relative}.qs-step-number{position:absolute;top:-0.75rem;left:1.25rem;width:1.75rem;height:1.75rem;border-radius:50%;background:linear-gradient(135deg, #1b62f8, #6366f1);display:flex;align-items:center;justify-content:center;color:#fff;font-size:0.8rem;font-weight:700;line-height:1}.qs-step h3:first-of-type{margin-top:0.25rem}.feature-grid{display:grid;grid-template-columns:1fr 1fr;border:none;margin:0.5rem 0 0.5rem}.feature-grid__item{padding:1.25rem 1.5rem;text-align:justify}.feature-grid__item strong{font-size:1.15rem}.feature-grid__item svg{margin-right:0.4rem;width:1.75em;height:1.75em;vertical-align:middle;position:relative;top:-0.1em}.feature-grid__desc{margin-top:0.75rem}.feature-grid__item:nth-child(odd){border-right:1px solid var(--mintlify-border-color, #e5e7eb)}.feature-grid__item:nth-child(n+3){border-top:1px solid var(--mintlify-border-color, #e5e7eb)}html.dark .feature-grid__item:nth-child(odd){border-right-color:rgba(255, 255, 255, 0.1)}html.dark .feature-grid__item:nth-child(n+3){border-top-color:rgba(255, 255, 255, 0.1)}@media (max-width: 640px){.feature-grid{grid-template-columns:1fr}.feature-grid__item:nth-child(odd){border-right:none}.feature-grid__item:nth-child(n+2){border-top:1px solid var(--mintlify-border-color, #e5e7eb)}}html.dark .callout[data-callout-type=\"tip\"]{background-color:rgba(5, 46, 22, 0.6)!important}.hero-tabs [role=\"tablist\"]{display:flex!important;gap:0.75rem;border-bottom:none!important;margin-bottom:1.5rem}.hero-tabs [role=\"tab\"]{flex:1;text-align:center;padding:0.625rem 1rem;border:1px solid var(--mintlify-border-color, #e5e7eb);border-radius:0.75rem;font-weight:500;font-size:0.9rem;color:#374151;background:var(--mintlify-card-bg, #fff);cursor:pointer;transition:all 0.15s ease;box-shadow:0 1px 2px rgba(0, 0, 0, 0.04)}html.dark .hero-tabs [role=\"tab\"]{color:#d1d5db;background:var(--mintlify-card-bg, rgba(255, 255, 255, 0.05));border-color:var(--mintlify-border-color, rgba(255, 255, 255, 0.1));box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.hero-tabs [role=\"tab\"]:hover{border-color:#1b62f8;color:#111827;box-shadow:0 1px 3px rgba(56, 132, 255, 0.15)}html.dark .hero-tabs [role=\"tab\"]:hover{border-color:#3884ff;color:#f3f4f6;box-shadow:0 1px 3px rgba(56, 132, 255, 0.25)}.hero-tabs [role=\"tab\"][aria-selected=\"true\"]{border-color:#1b62f8;color:#103B95;background:#eef4ff;box-shadow:0 1px 3px rgba(56, 132, 255, 0.18)}html.dark .hero-tabs [role=\"tab\"][aria-selected=\"true\"]{border-color:#6B99FA;color:#eaf1ff;background:rgba(56, 132, 255, 0.16);box-shadow:0 1px 3px rgba(0, 0, 0, 0.3)}.hero-tabs [role=\"tab\"],.hero-tabs [role=\"tab\"] *{text-decoration:none!important}.hero-tabs [role=\"tab\"] *{border-bottom:none!important}@media (min-width: 1024px){#content-area{max-width:1100px!important}}@media (min-width: 1280px){#content-area{margin-left:auto!important;margin-right:auto!important}}@media (min-width: 1800px){#content-area{max-width:1200px!important}}.opsai-hero{position:relative;display:flex;flex-direction:column;align-items:center;margin:0 0 2.5rem;padding:3.25rem 2rem 3rem;border-radius:1.25rem;overflow:hidden;text-align:center;background:radial-gradient(120% 140% at 50% -20%, rgba(56, 132, 255, 0.35) 0%, rgba(56, 132, 255, 0) 60%),\n linear-gradient(160deg, #0b1220 0%, #0e1729 55%, #0b1220 100%);border:1px solid rgba(56, 132, 255, 0.25)}.opsai-hero::after{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(56, 132, 255, 0.06) 1px, transparent 1px),\n linear-gradient(90deg, rgba(56, 132, 255, 0.06) 1px, transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(70% 70% at 50% 0%, #000 0%, transparent 75%);mask-image:radial-gradient(70% 70% at 50% 0%, #000 0%, transparent 75%);pointer-events:none}.opsai-hero>*{position:relative;z-index:1}.opsai-mark{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:0 0 1rem;border-radius:50%;background:rgba(56, 132, 255, 0.12);box-shadow:0 0 0 8px rgba(56, 132, 255, 0.06);animation:opsai-glow 4.5s ease-in-out infinite}.opsai-mark::before{content:\"\";width:34px;height:34px;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237db4ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42'/%3E%3C/svg%3E\")}@keyframes opsai-glow{0%,100%{box-shadow:0 0 0 8px rgba(56, 132, 255, 0.06)}50%{box-shadow:0 0 0 13px rgba(56, 132, 255, 0.03)}}@media (prefers-reduced-motion: reduce){.opsai-mark{animation:none}}.opsai-wordmark{display:flex;justify-content:center;align-items:baseline;width:100%;font-size:3rem!important;font-weight:800!important;letter-spacing:-0.04em;line-height:1!important;margin:0!important;padding:0!important;border:0!important;color:#f8fafc!important}.opsai-wordmark .accent{background:linear-gradient(90deg, #1b62f8, #7db4ff);-webkit-background-clip:text;background-clip:text;color:transparent}.opsai-tagline{margin:1.15rem 0 0!important;max-width:40rem;font-size:1.15rem;line-height:1.55;color:#cbd5e1!important}.opsai-tagline strong{color:#f1f5f9;font-weight:700}.opsai-pills{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center;margin-top:1.5rem}.opsai-pill{font-size:0.8rem;font-weight:600;letter-spacing:0.01em;color:#bfdbfe;padding:0.35rem 0.85rem;border-radius:999px;border:1px solid rgba(56, 132, 255, 0.35);background:rgba(56, 132, 255, 0.10)}.opsai-stats{display:grid;grid-template-columns:repeat(3, 1fr);gap:1rem;margin:0 0 2.5rem}@media (max-width: 720px){.opsai-stats{grid-template-columns:1fr}}.opsai-stat{text-align:center;padding:1.4rem 1rem;border-radius:0.9rem;border:1px solid rgba(148, 163, 184, 0.18);background:linear-gradient(180deg, rgba(56, 132, 255, 0.06), rgba(56, 132, 255, 0.01))}.opsai-stat__num{font-size:1.7rem;font-weight:800;letter-spacing:-0.03em;background:linear-gradient(90deg, #1b62f8, #7db4ff);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}.opsai-stat__label{margin-top:0.45rem;font-size:0.9rem;color:#94a3b8;line-height:1.45}.opsai-nav{display:flex;gap:1rem;margin-top:3rem}@media (max-width: 600px){.opsai-nav{flex-direction:column}}.opsai-nav a{flex:1 1 0;display:block;padding:1rem 1.15rem;border-radius:0.75rem;border:1px solid rgba(148, 163, 184, 0.22);background:linear-gradient(180deg, rgba(56, 132, 255, 0.05), rgba(56, 132, 255, 0.01));text-decoration:none!important;transition:border-color 0.15s ease, transform 0.15s ease}.opsai-nav a:hover{border-color:rgba(56, 132, 255, 0.5);transform:translateY(-1px)}.opsai-nav a.opsai-nav--next{text-align:right}.opsai-nav__dir{display:block;font-size:0.72rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b}.opsai-nav__title{display:block;margin-top:0.25rem;font-size:1.02rem;font-weight:600;color:#1b62f8}div:has(>div>.chat-assistant-input){background-color:#eef4ff!important;border-color:#cbd5e1!important;box-shadow:0 2px 12px rgba(16, 59, 149, 0.14)!important;transition:border-color 0.15s ease, box-shadow 0.15s ease,\n opacity 0.25s ease!important}html.chat-dimmed div:has(>div>.chat-assistant-input){opacity:0.35}html.chat-dimmed div:has(>div>.chat-assistant-input):hover,html.chat-dimmed div:has(>div>.chat-assistant-input):focus-within{opacity:1}@media (prefers-reduced-motion: reduce){div:has(>div>.chat-assistant-input){transition:none!important}}div:has(>div>.chat-assistant-input):hover{border-color:#94a3b8!important}div:has(>div>.chat-assistant-input):focus-within{border-color:#1b62f8!important;box-shadow:0 4px 18px rgba(16, 59, 149, 0.22)!important}html.dark div:has(>div>.chat-assistant-input){background-color:#16203a!important;border-color:rgba(255, 255, 255, 0.3)!important;box-shadow:0 2px 14px rgba(0, 0, 0, 0.45)!important}html.dark div:has(>div>.chat-assistant-input):hover{border-color:rgba(255, 255, 255, 0.5)!important}html.dark div:has(>div>.chat-assistant-input):focus-within{border-color:#6B99FA!important}.chat-assistant-input::placeholder{color:#103B95!important;opacity:1!important;font-weight:600}html.dark .chat-assistant-input::placeholder{color:#9dc0ff!important}.steps [data-component-part=\"step-number\"]>div{border-radius:0.5rem!important;background-color:#f1f5f9!important;border:1px solid #cbd5e1;color:#0f172a!important;box-shadow:0 1px 2px rgba(15, 23, 42, 0.06)}html.dark .steps [data-component-part=\"step-number\"]>div{background-color:#1f2937!important;border-color:rgba(255, 255, 255, 0.18);color:#f3f4f6!important;box-shadow:none}.steps [data-component-part=\"step-line\"]{width:1.5px!important}.steps [data-component-part=\"step-line\"]:not([class*=\"to-transparent\"]){background-color:#cbd5e1!important}.steps [data-component-part=\"step-line\"][class*=\"to-transparent\"]{background-color:transparent!important;background-image:linear-gradient(to bottom, #cbd5e1, rgba(203, 213, 225, 0))!important}html.dark .steps [data-component-part=\"step-line\"]:not([class*=\"to-transparent\"]){background-color:rgba(255, 255, 255, 0.18)!important}html.dark .steps [data-component-part=\"step-line\"][class*=\"to-transparent\"]{background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0))!important}.steps [data-component-part=\"step-content\"]:first-child>h3:first-child{margin-top:0;font-size:1em;line-height:1.75;font-weight:600}nav ul.toc{position:relative;padding-left:0.875rem}nav ul.toc li.toc-item>a{position:relative}nav ul.toc li.toc-item>a::after{content:\"\";position:absolute;top:0;bottom:0;left:calc(var(--toc-padding-left, 0rem) - 0.875rem);width:1.5px;background-color:#e5e7eb;transition:background-color 0.2s ease}html.dark nav ul.toc li.toc-item>a::after{background-color:rgba(255, 255, 255, 0.12)}nav ul.toc .toc-slider{position:absolute;top:0;left:0;z-index:1;list-style:none;width:1.5px;height:0;opacity:0;background-color:#1b62f8;transition:transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n height 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s ease;pointer-events:none}html.dark nav ul.toc .toc-slider{background-color:#6B99FA}nav ul.toc .toc-link,nav ul.toc .toc-tracer{position:absolute;top:0;left:0;height:1.5px;list-style:none;pointer-events:none}nav ul.toc .toc-link{background-image:repeating-linear-gradient(\n to right,\n #d1d5db 0 2px,\n transparent 2px 5px\n )}html.dark nav ul.toc .toc-link{background-image:repeating-linear-gradient(\n to right,\n rgba(255, 255, 255, 0.22) 0 2px,\n transparent 2px 5px\n )}nav ul.toc .toc-tracer{width:0;opacity:0;z-index:1;background-color:#1b62f8;transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1),\n width 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s ease}html.dark nav ul.toc .toc-tracer{background-color:#6B99FA}@media (prefers-reduced-motion: reduce){nav ul.toc .toc-slider,nav ul.toc .toc-tracer{transition:none}}html:not(.toc-slide) nav ul.toc li.toc-item[data-active]>a::after{background-color:#1b62f8}html:not(.toc-slide) nav ul.toc li.toc-item[data-active]:has(li.toc-item[data-active])>a::after,html:not(.toc-slide) nav ul.toc li.toc-item[data-active]:has(~li.toc-item[data-active])>a::after{background-color:#e5e7eb}html.dark:not(.toc-slide) nav ul.toc li.toc-item[data-active]>a::after{background-color:#6B99FA}html.dark:not(.toc-slide) nav ul.toc li.toc-item[data-active]:has(li.toc-item[data-active])>a::after,html.dark:not(.toc-slide) nav ul.toc li.toc-item[data-active]:has(~li.toc-item[data-active])>a::after{background-color:rgba(255, 255, 255, 0.12)}div.border-l:has(ul.toc){border-left:none!important}.chat-assistant-send-button{background-color:#1b62f8!important}.chat-assistant-send-button:hover{background-color:#1f6dea!important}@font-face{font-family:\"Press Start 2P\";font-style:normal;font-weight:400;font-display:swap;src:url(\"/fonts/press-start-2p-latin.woff2\") format(\"woff2\");unicode-range:U+0030-0039}div:has(>#error-badge)::before{content:\"\";display:block;width:100%;max-width:131px;aspect-ratio:262 / 292;margin:0 auto -0.9rem;translate:-5px;z-index:1;background:url(\"/images/robot-not-found.png\") center bottom / contain no-repeat;image-rendering:pixelated}#error-badge{font-family:\"Press Start 2P\", ui-monospace, monospace;font-size:5.5rem;line-height:1;letter-spacing:0;padding:0}.sidebar-group-header .sidebar-title{text-transform:uppercase;font-size:0.6875rem;font-weight:600;letter-spacing:0.06em}#navigation-items div:has(>.sidebar-group-header):not(:first-child){margin-top:2.5rem}#navigation-items button.group>div:has(>svg.transition-transform){margin-left:auto}#navigation-items li ul li a>div:first-child:has(>:is(svg,img)){display:none}.prompt{padding:1.25rem!important;gap:0.875rem!important;border-color:#cfe0ff!important;background:linear-gradient(180deg, #f6faff 0%, #edf4ff 100%)!important;box-shadow:0 1px 2px rgba(16, 59, 149, 0.06)}html.dark .prompt{border-color:rgba(56, 132, 255, 0.28)!important;background:rgba(56, 132, 255, 0.08)!important;box-shadow:none}.prompt [data-component-part=\"prompt-icon\"] svg{background-color:#1b62f8!important}html.dark .prompt [data-component-part=\"prompt-icon\"] svg{background-color:#6b99fa!important}.prompt [data-component-part=\"prompt-description\"]{font-size:0.9375rem;line-height:1.5}.prompt [data-component-part=\"prompt-actions-wrapper\"]{flex-basis:100%;justify-content:flex-end;gap:0.5rem!important}.prompt [data-component-part=\"prompt-action-copy-button\"],.prompt [data-component-part=\"prompt-action-cursor-button\"]{padding:0.4375rem 0.875rem!important;font-size:0.8125rem!important;line-height:1.25rem!important;border-radius:0.625rem!important}.prompt [data-component-part=\"prompt-action-copy-button\"]{background-color:#1b62f8!important;box-shadow:0 1px 2px rgba(16, 59, 149, 0.18)}.prompt [data-component-part=\"prompt-action-copy-button\"]:hover{background-color:#2f6fd9!important}.prompt [data-component-part=\"prompt-action-cursor-button\"]{color:#103b95!important;background:#fff!important;border-color:#cfe0ff!important;box-shadow:0 1px 2px rgba(16, 59, 149, 0.06)}.prompt [data-component-part=\"prompt-action-cursor-button\"]:hover{background:#f3f8ff!important;border-color:#1b62f8!important}html.dark .prompt [data-component-part=\"prompt-action-cursor-button\"]{color:#eaf1ff!important;background:rgba(255, 255, 255, 0.06)!important;border-color:rgba(56, 132, 255, 0.35)!important;box-shadow:none}html.dark .prompt [data-component-part=\"prompt-action-cursor-button\"]:hover{background:rgba(56, 132, 255, 0.18)!important;border-color:#6b99fa!important}@font-face{font-family:\"Kalam\";font-style:normal;font-weight:400;font-display:swap;src:url(\"/fonts/kalam-latin-400.woff2\") format(\"woff2\");unicode-range:U+0000-00FF, U+2018-2019, U+201C-201D, U+2013-2014}.hand-note{position:relative;z-index:5;display:flex;align-items:flex-end;gap:0.25rem;margin:1.5rem 0 0.75rem;color:#1b62f8;pointer-events:none}.hand-note-right{justify-content:flex-end;padding-right:1rem}.hand-note-left{justify-content:flex-start;padding-left:1rem;flex-direction:row-reverse}html.dark .hand-note{color:#6b99fa}.hand-note-text{font-family:\"Kalam\", \"Comic Sans MS\", cursive;font-size:1.125rem;line-height:1.2;transform:rotate(-3deg)}.hand-note-arrow{width:44px;height:66px;margin-bottom:-44px;flex:none}.hand-note-left .hand-note-arrow{transform:scaleX(-1)}:not(pre)>code{color:#18181b!important;background-color:rgba(17, 24, 39, 0.08)!important;border-color:rgba(17, 24, 39, 0.1)!important}html.dark :not(pre)>code{color:#f4f4f5!important;background-color:rgba(255, 255, 255, 0.1)!important;border-color:rgba(255, 255, 255, 0.14)!important}a :not(pre)>code,a>code{color:inherit!important}details.accordion{border-color:rgba(17, 24, 39, 0.08)!important;background:#fff!important}html.dark details.accordion{border-color:rgba(255, 255, 255, 0.12)!important;background:transparent!important}details.accordion>summary{padding:1.0625rem 1.5rem!important}details.accordion>summary:hover{background:#f6f8fb!important}details.accordion>[data-component-part=\"accordion-content\"]{padding-top:0.75rem!important}html.dark details.accordion>summary:hover{background:rgba(255, 255, 255, 0.04)!important}.faqx{--faqx-line:var(--gray-200,#e5e7eb);--faqx-fg:var(--gray-900,#111827);--faqx-fg2:var(--gray-500,#6b7280);--faqx-bg:#fff;--faqx-accent:#3884ff;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:12px}html.dark .faqx{--faqx-line:rgba(255,255,255,.1);--faqx-fg:var(--gray-100,#f3f4f6);--faqx-fg2:var(--gray-400,#9ca3af);--faqx-bg:transparent}.faqx--inline{margin-top:-2.5rem}@media (max-width:640px){.faqx--inline{margin-top:0;justify-content:flex-start}}.faqx-search{position:relative;flex:0 1 260px;min-width:180px}.faqx-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--faqx-fg2);pointer-events:none}.faqx-input{width:100%;box-sizing:border-box;font-size:13px;line-height:1.4;color:var(--faqx-fg);background:var(--faqx-bg);border:1px solid var(--faqx-line);border-radius:8px;padding:6px 10px 6px 27px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.faqx-input::placeholder{color:var(--faqx-fg2)}.faqx-input:focus{border-color:var(--faqx-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--faqx-accent) 18%,transparent)}.faqx-input::-webkit-search-cancel-button{cursor:pointer}.faqx-btn{font-size:13px;line-height:1.4;font-weight:500;color:var(--faqx-fg);white-space:nowrap;background:var(--faqx-bg);border:1px solid var(--faqx-line);border-radius:8px;padding:6px 11px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.faqx-btn:hover{border-color:var(--faqx-accent);color:var(--faqx-accent)}.faqx-btn:focus-visible{outline:2px solid var(--faqx-accent);outline-offset:2px}.faqx-count{font-size:12px;color:var(--faqx-fg2);white-space:nowrap}.faqx--hero{flex-wrap:nowrap;gap:10px;margin:0 0 2rem}.faqx--hero .faqx-search{flex:1 1 auto;min-width:0}.faqx--hero .faqx-search svg{left:14px;width:16px;height:16px}.faqx--hero .faqx-input{font-size:15px;padding:11px 84px 11px 40px;border-radius:12px;box-shadow:0 1px 2px rgba(17,24,39,.05)}.faqx--hero .faqx-btn{font-size:14px;padding:11px 16px;border-radius:12px;flex:none}.faqx--hero .faqx-count{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none}html.dark .faqx--hero .faqx-input{background:rgba(255,255,255,.03);box-shadow:none}.faqx-empty{font-size:14px;color:var(--faqx-fg2);border:1px dashed var(--faqx-line);border-radius:12px;padding:16px;text-align:center;margin-bottom:12px}.accordion-group>details[data-faqx-hidden]{display:none!important}.accordion-group[data-faqx-hidden],h2[data-faqx-hidden],h3[data-faqx-hidden]{display:none!important}.accordion-group>details[data-faqx-first]{border-top-width:0!important}::highlight(faqx-hit){background:color-mix(in srgb,#3884ff 22%,transparent);color:inherit;border-radius:2px}html.dark ::highlight(faqx-hit){background:color-mix(in srgb,#3884ff 38%,transparent)}@media (prefers-reduced-motion:reduce){.faqx-input,.faqx-btn{transition:none}}.faqx-count[hidden],.faqx-empty[hidden]{display:none}.xano-hs-trigger{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;font-size:0.875rem;font-weight:600;line-height:1.25rem;color:#ffffff;background-color:#3884ff;border:none;border-radius:0.5rem;cursor:pointer;transition:background-color 0.15s ease, transform 0.15s ease}.xano-hs-trigger:hover{background-color:#2f74e6}.xano-hs-trigger:active{transform:translateY(1px)}.xano-hs-trigger:focus-visible{outline:2px solid #3884ff;outline-offset:2px}.xano-hs-trigger--header{margin-right:0.5rem;padding:0.375rem 0.75rem;border-radius:0.75rem;font-weight:500;color:#ffffff;background-color:#3884ff;white-space:nowrap;flex-shrink:0}.xano-hs-trigger--header:hover{background-color:#2f74e6}#page-context-menu{flex-wrap:wrap;row-gap:0.5rem}.xano-hs-overlay{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem;overflow-y:auto;background-color:rgba(15, 17, 21, 0.55);backdrop-filter:blur(2px)}.xano-hs-modal{position:relative;width:100%;max-width:30rem;margin:auto;padding:1.75rem;border-radius:0.875rem;background-color:#ffffff;border:1px solid rgba(0, 0, 0, 0.08);box-shadow:0 24px 48px -12px rgba(0, 0, 0, 0.35);color:#1a1c20}html.dark .xano-hs-modal{background-color:#1a1c20;border-color:rgba(255, 255, 255, 0.1);color:#f2f3f5}.xano-hs-close{position:absolute;top:0.75rem;right:0.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;color:inherit;opacity:0.55;background:transparent;border:none;border-radius:0.375rem;cursor:pointer}.xano-hs-close:hover{opacity:1;background:rgba(127, 127, 127, 0.14)}.xano-hs-title{margin:0 1.75rem 0.375rem 0;font-size:1.125rem;font-weight:600;line-height:1.4}.xano-hs-subtitle{margin:0 0 1.25rem 0;font-size:0.875rem;line-height:1.5;opacity:0.7}.xano-hs-status{font-size:0.875rem;line-height:1.5;opacity:0.7}.xano-hs-status--error{color:#dc2626;opacity:1}html.dark .xano-hs-status--error{color:#f87171}.xano-hs-row{display:grid;grid-template-columns:1fr 1fr;gap:0 0.75rem}@media (max-width: 480px){.xano-hs-row{grid-template-columns:1fr}}.xano-hs-form .hs-form-field{margin-bottom:0.875rem}.xano-hs-form label{display:block;margin-bottom:0.3rem;font-size:0.8125rem;font-weight:500}.xano-hs-form .hs-form-required{color:#dc2626;margin-left:0.15rem}.xano-hs-form .hs-input:not([type=\"checkbox\"]):not([type=\"radio\"]){width:100%;box-sizing:border-box;padding:0.5rem 0.7rem;font-size:0.875rem;font-family:inherit;color:inherit;background-color:rgba(127, 127, 127, 0.07);border:1px solid rgba(127, 127, 127, 0.3);border-radius:0.5rem}.xano-hs-form .hs-input:focus{outline:none;border-color:#3884ff;box-shadow:0 0 0 3px rgba(56, 132, 255, 0.2)}.xano-hs-form .hs-error-msgs{margin:0.35rem 0 0 0;padding:0;list-style:none}.xano-hs-form .hs-error-msgs li{padding:0!important;margin:0!important}.xano-hs-form .hs-error-msgs li::before{display:none!important}.xano-hs-form .hs-error-msgs label{margin:0;font-weight:400;font-size:0.8125rem;color:#dc2626}html.dark .xano-hs-form .hs-error-msgs label{color:#f87171}.xano-hs-form .legal-consent-container{font-size:0.75rem;line-height:1.5}.xano-hs-form .legal-consent-container p{margin:0 0 0.625rem 0;opacity:0.75}.xano-hs-form .legal-consent-container a{color:#3884ff}.xano-hs-form .xano-hs-consent{display:flex;align-items:flex-start;gap:0.5rem;margin-bottom:0.625rem}.xano-hs-form .xano-hs-consent input{flex:none;width:1rem;height:1rem;margin:0.1rem 0 0 0;accent-color:#3884ff;cursor:pointer}.xano-hs-form .xano-hs-consent label{margin:0;font-size:0.8125rem;line-height:1.4;cursor:pointer}.xano-hs-form .xano-hs-consent+.hs-error-msgs{margin:-0.3rem 0 0.625rem 1.5rem}.xano-hs-form .hs-button{width:100%;margin-top:0.5rem;padding:0.55rem 1rem;font-size:0.875rem;font-weight:600;font-family:inherit;color:#ffffff;background-color:#3884ff;border:none;border-radius:0.5rem;cursor:pointer}.xano-hs-form .hs-button:hover{background-color:#2f74e6}.xano-hs-form .hs-button:disabled{opacity:0.7;cursor:progress}.xano-hs-form .hs-button:focus-visible{outline:2px solid #3884ff;outline-offset:2px}.xano-hs-form .xano-hs-status{margin-bottom:0.5rem}.xano-hs-toast{position:fixed;left:50%;bottom:1.5rem;z-index:2147483000;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 2rem);padding:0.75rem 1rem;font-size:0.875rem;line-height:1.5;color:#ffffff;background-color:#1a1c20;border:1px solid rgba(255, 255, 255, 0.1);border-left:3px solid #3884ff;border-radius:0.625rem;box-shadow:0 12px 32px -8px rgba(0, 0, 0, 0.35)}.xano-hs-toast[hidden]{display:none}html.dark .xano-hs-toast{color:#1a1c20;background-color:#ffffff;border-color:rgba(0, 0, 0, 0.08);border-left-color:#3884ff}"}],"page":{"pagePath":"building/logic/core-components/functions","slug":"/building/logic/core-components/functions","pageMetadata":{"title":"Functions","sidebarTitle":"Functions","description":"The functions that make up your logic","href":"/building/logic/core-components/functions"},"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: \"The functions that make up your logic\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{Card,CodeBlock,Columns,Frame,Heading,OptimizedImage,Tab,Tabs}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Functions are the building blocks of logic. They can be used to perform actions, such as retrieving a record from the database, or generating a random number.`}),`\n`,_jsx(Heading,{level:`2`,id:`adding-a-function`,children:`Adding a Function`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Canvas View`,icon:`hammer-brush`,id:`canvas-view`,children:[_jsx(_components.p,{children:`Hover over a node and click the plus icon to insert a new function after it. You can also hover over the connecting lines to insert a function at that point in the flow.`}),_jsx(Frame,{caption:`Adding new functions`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=b10128d1ee5892681f4293652261ace3`,alt:`visual-canvas-20251010-142619`,\"data-og-width\":`915`,width:`915`,\"data-og-height\":`312`,height:`312`,\"data-path\":`images/visual-canvas-20251010-142619.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=280\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=29d0f4153510eecfbd6c4e631a0bfe82 280w, https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=560\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=c2cf6fe5e552f391baf5e4d5514056fb 560w, https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=840\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=cb0c1203c529f492e3a8289ce128820c 840w, https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=bfd83d729b853ad94fc70f05a3e78ec8 1100w, https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=e136fda97045cb923e19c9ee46f6ee41 1650w, https://mintcdn.com/xano-997cb9ee/4xy0p5vdU3hAE_8U/images/visual-canvas-20251010-142619.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4xy0p5vdU3hAE_8U\u0026q=85\u0026s=a76f25d835a47327fb5e62b1fb3e395b 2500w`})}),_jsx(_components.p,{children:`In the panel that opens on the right, you can select the function you want to add. Use the search at the top, or navigate through the function categories.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=323337139c844dbc757640e2fcae1762`,alt:`function-stack-20251008-154357`,\"data-og-width\":`1164`,width:`1164`,\"data-og-height\":`1048`,height:`1048`,\"data-path\":`images/function-stack-20251008-154357.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=280\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=f4bc3c1bf4167f414f04717cd2ab37f0 280w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=560\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=0451d2c4c06dc1cffdc655b86b70c88b 560w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=840\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=bb105a13779f5f41d6a83b4fa836f7d5 840w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=182b0f01c53c4011f7c439b81d50314b 1100w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=427cb16db1ceb23392a1fbf1bc38f5fc 1650w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=a5582b235cd848a08cfd64a838eb6d55 2500w`})}),_jsx(`br`,{}),_jsx(_components.p,{children:`Each function will have a different set of options available to you, so it’s best to consult that function’s specific documentation for more information.`})]}),_jsxs(Tab,{title:`Function Stack`,icon:`code`,id:`function-stack`,children:[_jsxs(_components.p,{children:[`Add a function by clicking the `,_jsx(_components.strong,{children:`+ Add Function`}),` button below the function stack, hover over a function and click the `,_jsx(_components.strong,{children:`+`}),` sign, or use your up and down arrow keys to select a row, and press A on your keyboard to add a new function.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=171f653b607bbe5b9ff0d9ae121432f5`,alt:`function-stack-20251008-154316`,\"data-og-width\":`962`,width:`962`,\"data-og-height\":`525`,height:`525`,\"data-path\":`images/function-stack-20251008-154316.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=280\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=d0b17ef84454d75703e48973655c7e46 280w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=560\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=9ae128ca21184814efc7b7c02f860745 560w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=840\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=06058a1693d6bfaaf19e4b7d6b5bf334 840w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=c1057183c65308be7f31e0cc471fc5d3 1100w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=a9634d15b0a42b32a997f6bbe58145e8 1650w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154316.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=f47361bbddbac8819580de831bedb6b8 2500w`})}),_jsx(_components.p,{children:`In the panel that opens on the right, you can select the function you want to add. Use the search at the top, or navigate through the function categories.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=323337139c844dbc757640e2fcae1762`,alt:`function-stack-20251008-154357`,\"data-og-width\":`1164`,width:`1164`,\"data-og-height\":`1048`,height:`1048`,\"data-path\":`images/function-stack-20251008-154357.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=280\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=f4bc3c1bf4167f414f04717cd2ab37f0 280w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=560\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=0451d2c4c06dc1cffdc655b86b70c88b 560w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=840\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=bb105a13779f5f41d6a83b4fa836f7d5 840w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=182b0f01c53c4011f7c439b81d50314b 1100w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=427cb16db1ceb23392a1fbf1bc38f5fc 1650w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154357.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=a5582b235cd848a08cfd64a838eb6d55 2500w`})}),_jsx(`br`,{}),_jsx(_components.p,{children:`Each function will have a different set of options available to you, so it’s best to consult that function’s specific documentation for more information.`}),_jsx(_components.p,{children:`After you add a function, Xano will sometimes suggest the most likely next step; for example, adding a Query All Records will suggest a loop after. You can choose to add the suggestion, ignore it, or just continue working and Xano will dismiss the suggestion automatically.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=36a35184964106ead1cfe174655499e2`,alt:`function-stack-20251008-154710`,\"data-og-width\":`973`,width:`973`,\"data-og-height\":`239`,height:`239`,\"data-path\":`images/function-stack-20251008-154710.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=280\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=12a12df6e747da85677e5a5cc0ed16a2 280w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=560\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=f662122f6a4447fc0f803649eb899b3d 560w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=840\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=cb5eaf17e1631a212106cce224717c58 840w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=177c74a5191076dc6bf5d33dd29293a5 1100w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=c659970482e725dc513065b20962a8f3 1650w, https://mintcdn.com/xano-997cb9ee/bCVIC1Tg3ccBy86J/images/function-stack-20251008-154710.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bCVIC1Tg3ccBy86J\u0026q=85\u0026s=8cad1c49be9d41c386b66ff05e1a2a3c 2500w`})})]}),_jsxs(Tab,{title:`XanoScript`,icon:`code`,id:`xanoscript`,children:[_jsxs(_components.p,{children:[`Functions are defined in the `,_jsx(_components.code,{children:`stack`}),` block, placed immediately after the declaration and accompanying parameters, such as the description.`]}),_jsx(CodeBlock,{filename:`Example of the stack block and positioning`,icon:`code`,lines:`true`,numberOfLines:`6`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`stack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` db`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` search`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $db`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $input`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"list\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` $model`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Functions begin with a `,_jsx(_components.strong,{children:`namespace`}),` — basically, a category that the function is a part of. Each namespace is followed by a period, with the function name immediately after. After that, you’ll declare any parameters the function requires. Functions can also have a description, which is optional.`]}),_jsx(CodeBlock,{filename:`Stack with function declaration`,icon:`code`,lines:`true`,numberOfLines:`6`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`stack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` function_namespace`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`function_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` description`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\u003cdescription>\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#4EC9B0`},children:`parameter_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#4EC9B0`},children:`parameter_value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`function-reference`,children:`Function Reference`}),`\n`,_jsx(_components.p,{children:`Review all available functions below by selecting the section you’re interested in.`}),`\n`,_jsxs(Columns,{col:2,children:[_jsx(Card,{title:`Database Requests`,icon:`table`,href:`/the-function-stack/functions/database-requests`,children:_jsx(_components.p,{children:`Database Requests are used to perform operations against your database tables,\nsuch as retrieving, creating, updating, and deleting records.`})}),_jsx(Card,{title:`Data Manipulation`,icon:`swap-arrows`,href:`/the-function-stack/functions/data-manipulation`,children:_jsx(_components.p,{children:`Data Manipulation is used to parse and manipulate data, such as looping,\nfiltering, sorting, and transforming data.`})}),_jsx(Card,{title:`Security`,icon:`lock-keyhole`,href:`/the-function-stack/functions/security`,children:_jsx(_components.p,{children:`Security is used to secure your data, such as encrypting data, and validating\ndata.`})}),_jsx(Card,{title:`APIs and Lambdas`,icon:`plug`,href:`/the-function-stack/functions/apis-and-lambdas`,children:_jsx(_components.p,{children:`APIs and Lambdas are used to create APIs and lambdas, such as creating APIs\nand lambdas.`})}),_jsx(Card,{title:`AI Tools`,icon:`robot`,href:`/the-function-stack/functions/ai-tools`,children:_jsx(_components.p,{children:`Functions for using AI and related tools, such as Agents, the Template Engine,\nand MCP Servers.`})}),_jsx(Card,{title:`Data Caching (Redis)`,icon:`binary-circle-check`,href:`/the-function-stack/functions/data-caching-redis`,children:_jsx(_components.p,{children:`Data Caching (Redis) is used to cache data, such as caching data in Redis.`})}),_jsx(Card,{title:`Actions`,icon:`block-brick`,href:`/xano-actions/what-are-actions`,children:_jsx(_components.p,{children:`Actions are reusable building blocks by the Xano team and community that you\ncan use in your own workspace.`})}),_jsx(Card,{title:`Custom Functions`,icon:`function`,href:`/the-function-stack/functions/custom-functions`,children:_jsx(_components.p,{children:`Custom Functions contain all of the custom functions you’ve created.`})}),_jsx(Card,{title:`Utility Functions`,icon:`screwdriver-wrench`,href:`/the-function-stack/functions/utility-functions`,children:_jsx(_components.p,{children:`Utility Functions are used for things like debugging, error handling,\ngrouping, and more.`})}),_jsx(Card,{title:`File Storage`,icon:`floppy-disks`,href:`/the-function-stack/functions/file-storage`,children:_jsx(_components.p,{children:`File Storage functions are used to store, retrieve, and manage files in your\nXano files library.`})}),_jsx(Card,{title:`Cloud Services`,icon:`clouds`,href:`/the-function-stack/functions/cloud-services`,children:_jsx(_components.p,{children:`Cloud Services are used to connect to cloud services, such as Algolia, AWS\nOpenSearch, S3, and more.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Functions","sidebarTitle":"Functions","description":"The functions that make up your logic","href":"/building/logic/core-components/functions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Adding a Function","slug":"adding-a-function","depth":2,"children":[]},{"title":"Function Reference","slug":"function-reference","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/xano-997cb9ee/7ccbde81bbdf9fb7/remark-link-graph.js","/_mintlify/custom/xano-997cb9ee/8b02dc1f3860c4eb/iconvisibility.js","/_mintlify/custom/xano-997cb9ee/8bba6e93fd00475c/chat-dim.js","/_mintlify/custom/xano-997cb9ee/f6ebfcfeda318efb/toc-indicator.js","/_mintlify/custom/xano-997cb9ee/2152a7ac01bb32e6/accordion-hash.js","/_mintlify/custom/xano-997cb9ee/d9385cd9a5429ca0/faq-controls.js"],"subdomain":"xano-997cb9ee","siteName":"Xano Documentation","title":"Functions - Xano Documentation","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ae274ef13fbac4c78c5b8b0","deploymentId":"680ff9808abe3a2c762b86fa","questionText":"What are functions used for?","status":"active","generatedBy":"contextual","path":"building/logic/core-components/functions","createdAt":"2026-10-28T22:19:27.781Z","updatedAt":"2026-10-28T22:19:27.781Z","__v":0},{"_id":"6ae274ef13fbac4c78c5b8af","deploymentId":"680ff9808abe3a2c762b86fa","questionText":"Where do I insert functions in flow?","status":"active","generatedBy":"contextual","path":"building/logic/core-components/functions","createdAt":"2026-10-28T22:19:27.781Z","updatedAt":"2026-10-28T22:19:27.781Z","__v":0},{"_id":"6ae274ef13fbac4c78c5b8ae","deploymentId":"680ff9808abe3a2c762b86fa","questionText":"How do I add a function?","status":"active","generatedBy":"contextual","path":"building/logic/core-components/functions","createdAt":"2026-10-28T22:19:27.781Z","updatedAt":"2026-10-28T22:19:27.781Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T22:18:53.481Z","originalFileLocation":"building/logic/core-components/functions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The functions that make up your logic\">\u003cmeta data-mint-head name=\"application-name\" content=\"Xano Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Functions - Xano Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Visual-first unified backend for modern apps. Build APIs, AI Agents, data, logic, auth, \u0026amp; more—all in one platform.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Xano Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.xano.com/building/logic/core-components/functions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://xano-997cb9ee.mintlify.site/_mintlify/api/og/v2?division=Logic+%26+Workflows\u0026amp;title=Functions\u0026amp;description=The+functions+that+make+up+your+logic\u0026amp;theme=0109c854116588ad84872d4a\u0026amp;signature=08d44738083eb8c8354c06ebc558e1c94a40a1ff66d1736a513f3c4e6961b02c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Functions - Xano Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Visual-first unified backend for modern apps. Build APIs, AI Agents, data, logic, auth, \u0026amp; more—all in one platform.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://xano-997cb9ee.mintlify.site/_mintlify/api/og/v2?division=Logic+%26+Workflows\u0026amp;title=Functions\u0026amp;description=The+functions+that+make+up+your+logic\u0026amp;theme=0109c854116588ad84872d4a\u0026amp;signature=08d44738083eb8c8354c06ebc558e1c94a40a1ff66d1736a513f3c4e6961b02c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/xano-997cb9ee/cgGwIFviWDgTKtuE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Xano Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1b62f8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.xano.com/building/logic/core-components/functions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/building/logic/core-components/functions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.xano.com/#organization\",\"name\":\"Xano Documentation\",\"url\":\"https://docs.xano.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/xano-997cb9ee/hLg--ImSu58u2jLW/logo/logo_wordmark_blue_1_.svg?fit=max\u0026auto=format\u0026n=hLg--ImSu58u2jLW\u0026q=85\u0026s=487b8933249723b2ebc7bf7b6179ea0c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.xano.com#website\",\"name\":\"Xano Documentation\",\"url\":\"https://docs.xano.com\",\"publisher\":{\"@id\":\"https://docs.xano.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.xano.com/building/logic/core-components/functions#webpage\",\"url\":\"https://docs.xano.com/building/logic/core-components/functions\",\"name\":\"Functions\",\"description\":\"The functions that make up your logic\",\"dateModified\":\"2026-10-28T22:18:53.481Z\",\"isPartOf\":{\"@id\":\"https://docs.xano.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.xano.com/building/logic/core-components/functions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.xano.com/building/logic/core-components/functions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build\",\"item\":\"https://docs.xano.com/getting-started-ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Logic \u0026 Workflows\",\"item\":\"https://docs.xano.com/building/logic/logic\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Functions\",\"item\":\"https://docs.xano.com/building/logic/core-components/functions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.xano.com/building/logic/core-components/functions#article\",\"headline\":\"Functions\",\"name\":\"Functions\",\"description\":\"The functions that make up your logic\",\"url\":\"https://docs.xano.com/building/logic/core-components/functions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.xano.com/building/logic/core-components/functions#webpage\"},\"dateModified\":\"2026-10-28T22:18:53.481Z\",\"publisher\":{\"@id\":\"https://docs.xano.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.xano.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Xano Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Xano Documentation","nav":{"global":null,"tabs":[{"tab":"Xano","icon":"https://mintlify.s3.us-west-1.amazonaws.com/xano-997cb9ee/images/icons/xano.svg","pages":[{"title":"Get Started","icon":"rocket","href":""},{"title":"What's New","icon":"newspaper","href":"/updates"},{"title":"Xano — Features \u0026 Capabilities FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/frequently-asked-questions"},{"title":"Navigating Xano","icon":"compass","tag":"NEW","href":"/navigating-xano"},{"group":"Build","pages":[{"title":"Build from your Local Agent","sidebarTitle":"Agentic Development","icon":"robot","href":"/getting-started-ai"},{"title":"Xano Agent","tag":"NEW","icon":"wand-magic-sparkles","href":"/building/xano-agent"},{"title":"Knowledge","tag":"NEW","icon":"brain","href":"/agent-knowledge"},{"group":"Logic \u0026 Workflows","icon":"diagram-project","pages":[{"title":"Logic \u0026 Workflows","sidebarTitle":"Logic \u0026 Workflows","icon":"sitemap","href":"/building/logic/logic"},{"title":"Building APIs in Xano","sidebarTitle":"APIs","href":"/building/logic/apis"},{"title":"Building Custom Functions in Xano","sidebarTitle":"Custom Functions","href":"/building/logic/custom-functions"},{"title":"Background Tasks in Xano","sidebarTitle":"Background Tasks","href":"/building/logic/background-tasks"},{"title":"Triggers","href":"/building/logic/triggers"},{"title":"Middleware","href":"/building/logic/middleware"},{"title":"Inputs","sidebarTitle":"Inputs","href":"/building/logic/core-components/inputs"},{"title":"Logic","sidebarTitle":"Logic","description":"The business logic that executes when called","href":"/building/logic/core-components/logic"},{"title":"Functions","sidebarTitle":"Functions","href":"/building/logic/core-components/functions"},{"title":"Variables","sidebarTitle":"Variables","description":"Variables are used to store temporary information that you need to access later in a workflow","href":"/building/logic/working-with-data/variables"},{"title":"Environment Variables","sidebarTitle":"Environment Variables","href":"/building/logic/working-with-data/environment-variables"},{"title":"Filters","sidebarTitle":"Filters","href":"/building/logic/core-components/filters"},{"title":"Response","sidebarTitle":"Response","href":"/building/logic/core-components/response"}]},{"group":"Database","icon":"database","pages":[{"title":"Database Overview","href":"/the-database/database"},{"title":"Database Basics","href":"/the-database/database-basics"},{"title":"Field Types","href":"/the-database/database-basics/field-types"},{"title":"Database Design Fundamentals","href":"/the-database/designing-your-database"},{"title":"Migrating Data to Xano","href":"/the-database/migrating-your-data"},{"title":"Data Sources","href":"/the-database/database-basics/data-sources"},{"title":"Database Views","href":"/the-database/database-basics/database-views"},{"title":"Export And Sharing","href":"/the-database/database-basics/export-and-sharing"},{"title":"Database Performance And Maintenance","href":"/the-database/database-performance-and-maintenance"}]},{"group":"AI Agents","icon":"robot","pages":[{"title":"Agents","href":"/ai-tools/agents"},{"title":"Using OpenTelemetry with AI Agents","sidebarTitle":"OpenTelemetry","href":"/ai-tools/agents/opentelemetry"},{"title":"Templates","href":"/ai-tools/agents/templates"}]},{"group":"MCP Servers","icon":"plug","pages":[{"title":"MCP Builder","sidebarTitle":"MCP Builder","href":"/ai-tools/mcp-builder"},{"title":"Prompts and Resources","href":"/ai-tools/mcp-builder/prompts-and-resources"},{"title":"MCP Functions","href":"/ai-tools/mcp-builder/mcp-functions"},{"title":"Connecting Clients","href":"/ai-tools/mcp-builder/connecting-clients"},{"title":"Require sign-in (OAuth) on an MCP server","sidebarTitle":"OAuth Sign-In","href":"/ai-tools/mcp-builder/sign-in"},{"title":"Bring your own identity provider","sidebarTitle":"Bring Your Own IdP","href":"/ai-tools/mcp-builder/oauth-proxy"}]},{"group":"Authentication","icon":"lock-keyhole","pages":[{"title":"User Auth \u0026 Data","href":"/building-backend-features/user-authentication-and-user-data"},{"title":"Separating User Data","href":"/building-backend-features/user-authentication-and-user-data/separating-user-data"},{"title":"Restricting Access (RBAC)","href":"/building-backend-features/user-authentication-and-user-data/restricting-access-rbac"},{"title":"OAuth (SSO)","href":"/building-backend-features/user-authentication-and-user-data/oauth-sso"},{"title":"Best Practices","icon":"shield-check","href":"/security/best-practices"},{"title":"Getting Answers to Security Questions","sidebarTitle":"Security Questionnaires","icon":"clipboard-question","href":"/security/getting-answers-to-security-questions"}]},{"group":"File Storage","icon":"folder-open","pages":[{"title":"File Storage In Xano","sidebarTitle":"File Storage","href":"/file-storage/file-storage-in-xano"},{"title":"Private File Storage","href":"/file-storage/private-file-storage"}]},{"group":"Realtime","icon":"signal-stream","pages":[{"title":"Realtime","sidebarTitle":"Overview","href":"/realtime/overview"},{"title":"Realtime Servers \u0026 Channels","sidebarTitle":"Servers \u0026 Channels","href":"/realtime/realtime-servers-and-channels"},{"title":"Connecting a Realtime Client","sidebarTitle":"Connecting a Client","href":"/realtime/connecting-a-client"},{"title":"Realtime Messages","sidebarTitle":"Messages","href":"/realtime/messages"},{"title":"Realtime Access Control","sidebarTitle":"Access Control","href":"/realtime/access-control"},{"title":"Realtime Triggers","sidebarTitle":"Triggers","href":"/realtime/realtime-triggers"},{"title":"Publishing to a Channel from Xano","sidebarTitle":"Publishing from Xano","href":"/realtime/publishing-from-xano"},{"title":"Legacy Realtime vs Realtime","sidebarTitle":"Legacy vs Realtime","href":"/realtime/migrating-from-legacy-realtime"}]}]},{"group":"Test \u0026 Deploy","pages":[{"group":"Test","icon":"flask","pages":[{"title":"Test Suites","href":"/testing-debugging/test-suites"},{"title":"Unit Tests","href":"/testing-debugging/unit-tests"},{"title":"Ephemeral Tenants","icon":"hourglass-half","tag":"NEW","href":"/xano-cli/ephemeral"},{"title":"Publishing","href":"/the-function-stack/building-with-visual-development/publishing"},{"title":"Swagger/OpenAPI Docs","href":"/the-function-stack/building-with-visual-development/apis/swagger-openapi-documentation"}]},{"group":"Deploy","icon":"cloud-arrow-up","tag":"NEW","pages":[{"title":"Deployment Readiness","icon":"clipboard-check","href":"/deployment-readiness"},{"title":"Static Hosting","href":"/xano-features/static-hosting"},{"title":"Sandbox Testing","tag":"NEW","href":"/testing-debugging/sandbox"},{"group":"Connecting a Frontend","pages":[{"title":"Connecting a Frontend","icon":"browser","href":"/connecting-to-a-frontend/overview"},{"title":"Custom Coded Apps","href":"/connecting-to-a-frontend/custom-coded-apps"},{"title":"AI App Builders","href":"/connecting-to-a-frontend/ai-app-builders"},{"title":"No-Code App Builders","href":"/connecting-to-a-frontend/no-code-builders"}]},{"title":"Git Sync","sidebarTitle":"Git Sync","href":"/xano-features/workspace-settings/git-sync"}]},{"group":"Monitor \u0026 Troubleshoot","icon":"gauge-high","tag":"NEW","pages":[{"title":"Performance Insights","href":"/maintenance-monitoring-and-logging/performance-insights"},{"title":"Request History","tag":"UPDATED","href":"/maintenance-monitoring-and-logging/request-history"},{"title":"Statement Explorer","href":"/maintenance-monitoring-and-logging/statement-explorer"},{"title":"Error Logs","tag":"NEW","href":"/maintenance-monitoring-and-logging/error-logs"},{"title":"Audit Logs","href":"/xano-features/workspace-settings/audit-logs"},{"title":"What to Do If Your APIs Aren't Responding","href":"/troubleshooting-and-support/my-apis-arent-responding"},{"title":"What to Do If Your Instance Is Down","href":"/troubleshooting-and-support/my-instance-is-down"},{"title":"Error Reference","href":"/troubleshooting-and-support/error-reference"},{"title":"Reporting Potential Bugs and Issues","href":"/troubleshooting-and-support/reporting-potential-bugs-and-issues"}]}]},{"group":"Team Collaboration","pages":[{"title":"Team Collaboration","icon":"users","href":"/team-collaboration/team-collaboration"},{"title":"Managing Team Members","icon":"user-gear","href":"/team-collaboration/managing-team-members"},{"title":"Realtime Collaboration","icon":"arrows-rotate","href":"/team-collaboration/realtime-collaboration"},{"title":"Branching \u0026 Merging","icon":"code-branch","href":"/team-collaboration/branching-and-merging"},{"title":"Role Based Access Control (RBAC)","icon":"user-shield","href":"/team-collaboration/role-based-access-control-rbac"}]},{"group":"Integrations","pages":[{"title":"Browse Integrations","url":"https://www.xano.com/connect/","icon":"puzzle-piece","href":"/connect"},{"title":"Webhooks","icon":"webhook","href":"/building-backend-features/webhooks"},{"title":"Connecting a Frontend","icon":"browser","href":"/connecting-to-a-frontend/overview"},{"title":"Metadata API","icon":"brackets-curly","href":"/xano-features/metadata-api"},{"title":"Xano MCP Server","icon":"share-nodes","href":"/ai-tools/xano-mcp-server"}]},{"group":"Security","pages":[{"title":"Best Practices","icon":"shield-check","href":"/security/best-practices"},{"title":"Securing Your App Before Launch","sidebarTitle":"Pre-Launch Security","icon":"list-check","href":"/security/pre-launch-security-checklist"},{"title":"Getting Answers to Security Questions","sidebarTitle":"Security Questionnaires","icon":"clipboard-question","href":"/security/getting-answers-to-security-questions"},{"title":"GDPR","url":"https://security.xano.com/certifications/gdpr","icon":"earth-europe","href":"/security/gdpr"},{"title":"HIPAA","url":"https://security.xano.com/certifications/hipaa","icon":"suitcase-medical","href":"/security/hipaa"},{"title":"SOC 2","url":"https://security.xano.com/certifications/soc-2","icon":"certificate","href":"/security/soc2"},{"title":"security.xano.com","url":"https://security.xano.com","icon":"shield-halved","href":"/security/security"}]},{"group":"Tutorials","pages":[{"group":"Ready-to-use Building Blocks","icon":"cubes","expanded":false,"pages":[{"title":"Snippets","icon":"scissors","href":"/xano-features/snippets"},{"title":"Actions","icon":"block-brick","href":"/xano-actions/what-are-actions"},{"title":"Browse Actions","url":"https://xano.com/actions","href":"/xano-actions/browse-actions"},{"title":"Browse Snippets","url":"https://xano.com/snippet","href":"/browse-snippets"}]},{"group":"Build-along Guides","icon":"graduation-cap","expanded":false,"pages":[{"title":"User Auth \u0026 Data","href":"/building-backend-features/user-authentication-and-user-data"},{"title":"Emails","href":"/building-backend-features/emails"},{"title":"Webhooks","icon":"webhook","href":"/building-backend-features/webhooks"},{"title":"Fuzzy Search","href":"/building-backend-features/fuzzy-search"},{"title":"Messaging","href":"/building-backend-features/messaging"},{"title":"Chatbots","href":"/building-backend-features/chatbots"},{"title":"Custom Report Generation","href":"/building-backend-features/custom-report-generation"}]}]},{"group":"Enterprise","pages":[{"title":"Tenant Center","icon":"building","href":"/enterprise/enterprise-features/tenant-center"},{"title":"Compliance Center","icon":"clipboard-check","href":"/enterprise/enterprise-features/compliance-center"},{"title":"Security Policy","icon":"file-shield","href":"/enterprise/enterprise-features/security-policy"},{"title":"Instance Activity","icon":"chart-line","href":"/enterprise/enterprise-features/instance-activity"},{"title":"Deployment","icon":"rocket-launch","href":"/enterprise/enterprise-features/deployment"},{"title":"RBAC (Role-based Access Control)","icon":"user-shield","href":"/enterprise/enterprise-features/rbac-role-based-access-control"},{"title":"Xano Link","icon":"link","href":"/enterprise/enterprise-features/xano-link"},{"title":"Resource Management","icon":"sliders-up","href":"/enterprise/enterprise-features/resource-management"},{"group":"Microservices","icon":"boxes-stacked","pages":[{"title":"Microservices","sidebarTitle":"Instance Level Microservices","href":"/enterprise/enterprise-features/microservices"},{"group":"In the Workspace","icon":"sitemap","tag":"NEW","pages":[{"title":"Microservices in the Workspace","sidebarTitle":"Overview","icon":"sitemap","href":"/enterprise/enterprise-features/microservices/workspace-microservices"},{"title":"Creating a Microservice","icon":"plus","href":"/enterprise/enterprise-features/microservices/workspace-microservices/creating-a-microservice"},{"title":"Private Registries","icon":"key","href":"/enterprise/enterprise-features/microservices/workspace-microservices/private-registries"},{"title":"Deploying and Monitoring","icon":"chart-line","href":"/enterprise/enterprise-features/microservices/workspace-microservices/deploying-and-monitoring"},{"title":"Calling from the Function Stack","icon":"code","href":"/enterprise/enterprise-features/microservices/workspace-microservices/calling-from-the-function-stack"},{"title":"Releases and Tenants","icon":"building","href":"/enterprise/enterprise-features/microservices/workspace-microservices/releases-and-tenants"},{"title":"XanoScript Reference","icon":"file-code","href":"/enterprise/enterprise-features/microservices/workspace-microservices/xanoscript-reference"}]},{"title":"Ollama","sidebarTitle":"Example: Ollama","href":"/enterprise/enterprise-features/microservices/ollama"}]}]},{"group":"Agencies","pages":[{"title":"Xano For Agencies","icon":"handshake","href":"/agencies/xano-for-agencies"},{"title":"Agency Features","icon":"briefcase","href":"/agencies/agency-features"}]},{"group":"Account and Settings","pages":[{"title":"Workspace Settings","icon":"gear","href":"/xano-features/workspace-settings"},{"title":"Instance Settings","sidebarTitle":"Instance Settings","icon":"server","href":"/xano-features/instance-settings"},{"title":"Account Settings","icon":"circle-user","href":"/your-xano-account/account-page"},{"title":"Billing","icon":"credit-card","href":"/your-xano-account/billing"},{"title":"Getting Help","sidebarTitle":"Getting Support in Xano","icon":"life-ring","href":"/troubleshooting-and-support/getting-help"}]},{"group":"Legal","pages":[{"title":"Terms \u0026 Conditions","icon":"scale-balanced","href":"/legal"},{"title":"AI Terms","icon":"file-contract","href":"/legal/ai-terms"},{"title":"Xano Engine License","icon":"file-contract","href":"/legal/xano-engine-license"},{"title":"Privacy Notice","icon":"lock","href":"/legal/privacy-notice"},{"title":"Cookie Policy","icon":"cookie-bite","href":"/legal/cookie-policy"},{"title":"DMCA Policy","icon":"copyright","href":"/legal/dmca-policy"},{"title":"General Disclaimer","icon":"triangle-exclamation","href":"/legal/general-disclaimer"},{"title":"Subprocessors","icon":"sitemap","href":"/legal/xano-subprocessors"},{"title":"Referral Agreement","icon":"file-signature","href":"/legal/referral-program/agreement"},{"title":"FAQ","icon":"question","href":"/legal/referral-program/faq"}]}]},{"tab":"XanoScript","icon":"code","pages":[{"title":"XanoScript","href":"/xanoscript/introduction"}]},{"tab":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/xano-cli/get-started"}]},{"tab":"Developer MCP","icon":"robot","pages":[{"title":"Developer MCP","href":"/developer-mcp/get-started"}]},{"tab":"Metadata API","icon":"webhook","pages":[{"title":"Metadata API","href":"/api-reference/audit-logs/search-audit-logs-across-all-workspaces"}]}]},"basePath":"","title":"Functions - Xano Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}