{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
API Reference
Create Tool
Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.
Current default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SLNG: the execution layer for voice - SLNG Documentation","colors":{"primary":"#fbe566","light":"#fbe566","dark":"#000000"},"logo":{"light":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6","dark":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6"},"favicon":{"light":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6","dark":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6"},"background":{"color":{"light":"#ffffff"}},"navbar":{"links":[{"href":"mailto:support@slng.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.slng.ai"}},"footer":{"socials":{"x":"https://x.com/slng_ai","github":"https://github.com/slng-ai","linkedin":"https://linkedin.com/company/slng-ai","discord":"https://discord.gg/kxZactmWj"},"links":[{"header":"Company","items":[{"label":"Team","href":"/team"}]}]},"fonts":{"heading":{"family":"Geist Mono"}},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-W2STKL7Z"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"slng-new-docs","hasAudioNarration":false,"actualSubdomain":"slng-new-docs","customDomains":["docs.slng.ai"],"gitSource":{"type":"github","owner":"slng-ai","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad773c56e89f16d0373f26f","collectionId":"3e12ce44-97d1-4c8d-8302-6faacc32eba8","liveDeploymentHistoryId":"6ad773c56e89f16d0373f26f","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad773c56e89f16d0373f26f","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":158},{"language":"default","tag":"Agents","count":66},{"language":"default","tag":"Guides","count":52},{"language":"default","tag":"Third party","count":27},{"language":"default","tag":"Text to speech","count":27},{"language":"default","tag":"Agent Builder","count":25},{"language":"default","tag":"Models","count":24},{"language":"default","tag":"Speech to text","count":19},{"language":"default","tag":"Tools","count":14},{"language":"default","tag":"SLNG hosted","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"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":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"@keyframes lp-marquee-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes hosting-banner-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}:root{--color-brand:#FBE566;--color-brand-10:rgba(251, 229, 102, 0.1);--color-brand-15:rgba(251, 229, 102, 0.15);--color-text-dark:#15120D;--color-text-light:#FBFAF7;--surface:#ffffff;--surface-border:#e2e8f0;--surface-border-hover:#cbd5e1;--surface-shadow:rgba(0, 0, 0, 0.06);--surface-hover:var(--color-brand-10);--text-primary:var(--color-text-dark);--text-body:#374151;--text-strong:#1f2937;--text-secondary:#6b7280;--text-muted:#9ca3af;--pill-bg:#f3f4f6;--pill-text:#374151;--badge-stt-bg:#e8e0ff;--badge-stt-text:#6b4fbb;--badge-tts-bg:#dbeafe;--badge-tts-text:#2563eb}.dark{--surface:#1a1a1a;--surface-border:#2d2d2d;--surface-border-hover:#444444;--surface-shadow:rgba(0, 0, 0, 0.3);--surface-hover:var(--color-brand-15);--text-primary:var(--color-text-light);--text-body:#d1d5db;--text-strong:#d1d5db;--text-secondary:#9ca3af;--text-muted:#6b7280;--pill-bg:#374151;--pill-text:#d1d5db;--badge-stt-bg:rgba(107, 79, 187, 0.25);--badge-stt-text:#c4b5fd;--badge-tts-bg:rgba(37, 99, 235, 0.25);--badge-tts-text:#93c5fd}.hosting-slng{display:inline-block;padding:.05rem .4rem;border-radius:4px;background:var(--color-brand);color:var(--color-text-dark);font-size:.8em;font-weight:600}.model-card__flag,.region-flag{display:inline-block;width:1em;height:1em;flex-shrink:0;border-radius:50%;background-position:center;background-size:cover}.region-flag{margin-right:.3rem;vertical-align:-.15em}.region-item{white-space:nowrap}.model-card__flag{width:1.15rem;height:1.15rem}:root:not(.dark) li[role=tab][aria-selected=true]{background-color:var(--color-brand);border-radius:.375rem .375rem 0 0;margin-bottom:-1px;padding:0 .5rem;border-bottom:1px solid var(--color-brand)}:root:not(.dark) li[role=tab][aria-selected=true] [data-component-part=tab-button]{color:var(--color-text-dark)!important;border-color:transparent!important}:root:not(.dark) li[role=tab][aria-selected=true] [data-component-part=tab-button] svg{background-color:var(--color-text-dark)!important}:root:not(.dark) li[role=tab]:not([aria-selected=true]) [data-component-part=tab-button]:hover{border-color:var(--color-brand)!important}#navigation-items a:hover,#navigation-items a[class*=bg-primary]{color:var(--color-text-dark);background-color:var(--color-brand)}#navigation-items a:hover svg,#navigation-items a[class*=bg-primary] svg{background-color:var(--color-text-dark)!important}#navigation-items button:has(>img),.sidebar-group-header:has(>img){align-items:center!important}.eyebrow{display:inline-flex;align-items:center;width:fit-content;height:auto!important;padding:.125rem .5rem;margin-bottom:.5rem;border-radius:.375rem;background-color:var(--color-brand);color:var(--color-text-dark);text-transform:uppercase;letter-spacing:.05em}.dark .eyebrow{color:#000}.toc-item a[class*=text-primary]{background-color:transparent;color:var(--color-text-dark);text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}.dark .toc-item a[class*=text-primary]{color:var(--color-text-light);text-decoration-color:var(--color-brand)}[data-component-part=field-info-pill]{word-break:normal;overflow-wrap:break-word}.dark .group:hover [data-component-part=card-cta] button,:root:not(.dark) .group:hover [data-component-part=card-cta] button{color:inherit!important;text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}:root:not(.dark) [data-component-part=field-name][class*=text-primary],:root:not(.dark) [role=menuitem][class*=text-primary],:root:not(.dark) button[aria-haspopup=menu][class*=text-primary],:root:not(.dark) button[role=tab][aria-selected=true][class*=text-primary]{color:var(--color-text-dark)}:root:not(.dark) [role=menuitem][class*=text-primary][class*=font-medium]{text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}:root:not(.dark) [role=menuitem][class*=text-primary]:hover,:root:not(.dark) button[role=tab] [class*=peer\\/title]:hover{color:var(--color-text-dark)!important}:root:not(.dark) button[aria-haspopup=menu] [class*=hover\\:text-primary]:hover{color:var(--color-text-dark)!important;background-color:var(--color-brand-10)}.dark button[aria-haspopup=menu] [class*=hover\\:text-primary]:hover{color:var(--color-brand)!important}:root:not(.dark) [data-component-part=code-block-root] .line-highlight{background:rgba(251,229,102,.35)!important}.audio-player{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--surface-border);background:var(--surface)}.audio-player.compact{padding:0;border:0;background:0 0;gap:0}.audio-player .meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.audio-player .titles{display:flex;flex-direction:column;gap:.15rem}.audio-player .title{font-weight:600;color:var(--text-primary)}.audio-player .description{color:var(--text-secondary);font-size:.9rem}.audio-player .download{font-size:.85rem;color:var(--text-primary);text-decoration:none;font-weight:600;white-space:nowrap}.audio-player .download:hover{text-decoration:underline;text-decoration-color:var(--color-brand);text-underline-offset:3px;text-decoration-thickness:2px}.audio-player .audio-control{width:100%}.audio-player .controls{display:flex;align-items:center;gap:.6rem}.audio-player .play-button{width:36px;height:36px;border-radius:999px;border:0;background:var(--color-brand);color:var(--color-text-dark);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}.audio-player .play-button:hover{filter:brightness(.95)}.audio-player .play-button:focus-visible,.audio-player .scrubber:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.audio-player .time{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--text-secondary);min-width:2.75rem;text-align:center;flex-shrink:0}.audio-player .scrubber{-webkit-appearance:none;appearance:none;flex:1;height:6px;border-radius:999px;cursor:pointer;background:linear-gradient(to right,var(--color-brand) var(--progress, 0%),var(--surface-border) var(--progress, 0%))}.audio-player .scrubber::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:2px solid var(--surface);cursor:pointer}.audio-player .scrubber::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:2px solid var(--surface);cursor:pointer}.audio-player .compact-button{width:32px;height:32px;border-radius:999px;border:1px solid var(--surface-border);background:var(--surface);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.audio-player .compact-button:hover{background:var(--surface-hover)}.audio-player .compact-icon{font-size:12px;line-height:1}@media (max-width:640px){.audio-player .meta{flex-direction:column;align-items:flex-start}}:has(>.model-card){row-gap:.75rem!important}.model-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;border:1px solid var(--surface-border);border-radius:12px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.model-card:hover{border-color:var(--surface-border-hover);box-shadow:0 2px 8px var(--surface-shadow)}.model-card__footer,.model-card__header,.model-card__meta,.model-card__region,.model-card__regions{display:flex;align-items:center}.model-card__header{gap:.75rem}.model-card__logo{display:flex;width:36px;height:36px;min-width:36px;align-items:center;justify-content:center;border-radius:8px;font-size:.75rem;font-weight:700;line-height:1}.model-card__logo--provider,.model-card__pill{background:var(--pill-bg);color:var(--pill-text)}.model-card__logo-img{width:100%;height:100%;border-radius:6px;object-fit:contain}.model-card__logo--image{box-sizing:border-box;padding:4px;background:var(--surface)}.model-card__identity{min-width:0;flex:1}.model-card__name{overflow:hidden;margin:0;color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.model-card__name-button{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;min-width:0;padding:0;border:0;background:0 0;font:inherit;color:inherit;cursor:pointer;text-align:left}.model-card__name-text{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.model-card__copy-icon{display:inline-flex;flex-shrink:0;color:var(--text-muted);opacity:0;transition:opacity .12s}.model-card__copy-icon--copied,.model-card__name-button:focus-visible .model-card__copy-icon,.model-card__name-button:hover .model-card__copy-icon{opacity:1}.model-card__copy-icon--copied{color:var(--text-primary)}.model-card__provider{color:var(--text-secondary);font-size:.8rem}.model-card__meta{flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.model-card__badge,.model-card__hosting{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}.model-card__badge{text-transform:uppercase}.model-card__badge--stt{background:var(--badge-stt-bg);color:var(--badge-stt-text)}.model-card__badge--tts{background:var(--badge-tts-bg);color:var(--badge-tts-text)}.model-card__hosting{background:var(--color-brand);color:var(--color-text-dark)}.model-card__description{display:-webkit-box;overflow:hidden;margin:0;color:var(--text-body);font-size:.9rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.model-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--surface-border);border-radius:8px}.model-card__metric{min-width:0;padding:.55rem .65rem;border-right:1px solid var(--surface-border)}.model-card__metric:last-child{border-right:0}.model-card__detail-label,.model-card__metric-label{display:block;margin-bottom:.15rem;color:var(--text-secondary);font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.model-card__metric strong{display:block;overflow:hidden;color:var(--text-strong);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.model-card__detail-row{color:var(--text-body);font-size:.8rem}.model-card__pills{display:flex;flex-wrap:wrap;gap:.375rem}.model-card__pill{overflow:hidden;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.model-card__footer{justify-content:space-between;padding-top:.1rem}.model-card__footer,.model-card__regions{flex-wrap:wrap;gap:.5rem}.model-card__region{gap:.25rem;color:var(--text-secondary);font-size:.72rem;font-weight:600}.model-card__region--more{opacity:.75;cursor:help}.model-card__cta{color:var(--text-primary);font-size:.8rem;font-weight:600;text-decoration:none;border-bottom:0!important}.model-card__cta:hover{text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}@media (max-width:640px){.model-card__metrics{grid-template-columns:1fr}.model-card__metric{border-right:0;border-bottom:1px solid var(--surface-border)}.model-card__metric:last-child{border-bottom:0}}@font-face{font-family:\"Saans\";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Saans-Regular.woff2) format(\"woff2\")}@font-face{font-family:\"Saans\";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Saans-SemiBold.woff2) format(\"woff2\")}@font-face{font-family:\"Saans\";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Saans-Heavy.woff2) format(\"woff2\")}.lp-root{font-family:\"Saans\",var(--font-sans, ui-sans-serif, system-ui, sans-serif);color:var(--color-text-dark)}.dark .lp-root{color:var(--color-text-light)}.lp-root a{text-decoration:none}.lp-wrap{max-width:1080px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}.lp-section{padding-top:4rem;padding-bottom:4rem}.lp-section--tight{padding-top:2.5rem;padding-bottom:2.5rem}.lp-section__eyebrow{font-family:\"Geist Mono\",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#8a7a2f;margin-bottom:.5rem}.dark .lp-section__eyebrow{color:#c8b85a}.lp-section__title{font-size:1.7rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .5rem;line-height:1.15}.lp-section__intro{font-size:1rem;color:#5c5648;max-width:48ch;margin:0;line-height:1.55}.dark .lp-section__intro{color:#b9b3a4}.lp-hero{position:relative;text-align:center;padding:5.5rem 1.5rem 4rem;overflow:hidden}.lp-hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(21,18,13,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 35%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 70% 65% at 50% 35%,#000 30%,transparent 75%);pointer-events:none}.dark .lp-hero::before{background-image:radial-gradient(rgba(251,250,247,.07) 1px,transparent 1px)}.lp-hero__inner{position:relative;max-width:760px;margin:0 auto}.lp-hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:\"Geist Mono\",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--color-text-dark);background-color:var(--color-brand);padding:.25rem .7rem;border-radius:999px;margin-bottom:1.5rem}.lp-hero__title{font-size:3.1rem;line-height:1.04;font-weight:800;letter-spacing:-.03em;margin:0 0 1.1rem}.lp-hero__title .lp-mark{background:linear-gradient(transparent 62%,var(--color-brand) 62%);padding:0 .1em}.lp-hero__sub{font-size:1.18rem;line-height:1.55;color:#5c5648;max-width:38rem;margin:0 auto 2rem}.dark .lp-hero__sub{color:#b9b3a4}.lp-cta-row{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.lp-btn{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.95rem;padding:.7rem 1.35rem;border-radius:10px;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease}.lp-btn:hover{transform:translateY(-1px)}.lp-btn--ghost,.lp-btn--primary{color:var(--color-text-dark)!important}.lp-btn--primary{background-color:var(--color-brand);box-shadow:0 1px 2px rgba(21,18,13,.12)}.lp-btn--primary:hover{box-shadow:0 6px 18px rgba(251,229,102,.5)}.lp-btn--ghost{background-color:transparent;border:1px solid rgba(21,18,13,.18)}.dark .lp-btn--ghost{color:var(--color-text-light)!important;border-color:rgba(251,250,247,.22)}.lp-btn--ghost:hover{border-color:rgba(21,18,13,.4)}.dark .lp-btn--ghost:hover{border-color:rgba(251,250,247,.45)}.lp-stats{border-top:1px solid rgba(21,18,13,.08);border-bottom:1px solid rgba(21,18,13,.08);background:rgba(251,229,102,.05)}.dark .lp-stats{border-color:rgba(251,250,247,.1);background:rgba(251,229,102,.04)}.lp-stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding:2.25rem 0}.lp-stat__num{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:2rem;font-weight:600;letter-spacing:-.02em;line-height:1}.lp-stat__num small{font-size:1.1rem;font-weight:600}.lp-stat__label{margin-top:.5rem;font-size:.85rem;color:#5c5648;line-height:1.4}.dark .lp-cmd__cap,.dark .lp-stat__label{color:#b9b3a4}.lp-cmd{display:inline-flex;align-items:center;gap:.5rem;font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.9rem;background:#211d15;color:#fbfaf7;border:1px solid rgba(251,250,247,.15);padding:.6rem 1rem;border-radius:10px;margin-top:1.25rem}.lp-cmd__prompt{color:var(--color-brand);user-select:none}.lp-cmd__cap{font-size:.85rem;color:#5c5648;margin-top:.7rem}.lp-split{display:grid;grid-template-columns:1fr 1.15fr;gap:2.5rem;align-items:center}.lp-grid-3,.lp-grid-4{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.75rem}.lp-grid-4{grid-template-columns:repeat(4,1fr)}.lp-tile{display:block;padding:1.4rem;border-radius:14px;border:1px solid rgba(21,18,13,.1);background:#fff;color:inherit!important;height:100%;transition:border-color .15s,box-shadow .15s,transform .15s}.dark .lp-tile{background:#1a1712;border-color:rgba(251,250,247,.1)}.lp-tile:hover{border-color:var(--color-brand);box-shadow:0 6px 22px rgba(21,18,13,.08);transform:translateY(-2px)}.lp-tile__icon{width:38px;height:38px;border-radius:10px;background:var(--color-brand);color:var(--color-text-dark);display:inline-flex;align-items:center;justify-content:center;margin-bottom:.9rem}.lp-tile__title{font-weight:600;font-size:1.05rem;margin:0 0 .35rem}.lp-tile__desc{font-size:.9rem;color:#5c5648;margin:0;line-height:1.5}.dark .lp-tile__desc{color:#b9b3a4}.lp-tile__step{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.75rem;color:#8a7a2f;margin-bottom:.6rem}.dark .lp-tile__step{color:#c8b85a}.lp-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.75rem}.lp-integrations{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.75rem}.lp-integration{flex:0 0 calc(25% - .75rem);display:flex;align-items:center;gap:.85rem;min-height:76px;padding:1rem 1.1rem;border:1px solid rgba(21,18,13,.1);border-radius:14px;background:#fff;color:inherit!important;transition:border-color .15s,box-shadow .15s,transform .15s}.dark .lp-integration{background:#1a1712;border-color:rgba(251,250,247,.1)}.lp-integration:hover{border-color:var(--color-brand);box-shadow:0 6px 22px rgba(21,18,13,.08);transform:translateY(-2px)}.lp-integration:focus-visible{outline:3px solid var(--color-brand);outline-offset:2px}.lp-integration__mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;overflow:hidden;border:1px solid rgba(21,18,13,.08);border-radius:10px;background:#fff}.lp-integration__logo{display:block;width:34px;height:34px;object-fit:contain}.lp-integration__name{font-size:1rem;font-weight:600}.lp-trust{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.8rem;color:#8a7a2f;margin-top:1.5rem}.dark .lp-trust{color:#c8b85a}.lp-trust a{color:inherit;border-bottom:1px solid currentColor}.lp-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2.25rem;margin-top:1.75rem}.lp-logos a{display:inline-flex;align-items:center;border-bottom:none!important;box-shadow:none!important}.lp-logos img{height:26px;width:auto;opacity:.7;filter:grayscale(1);transition:opacity .15s,filter .15s}.lp-logos img:hover{opacity:1;filter:grayscale(0)}.dark .lp-logos img{opacity:.85}.lp-cta-band{background:#15120d;color:var(--color-text-light);border-radius:18px;padding:3rem 2rem;text-align:center}.lp-cta-band h2{font-size:1.9rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .6rem;color:var(--color-text-light)}.lp-cta-band p,.lp-cta-band__lead{color:#b9b3a4;margin:0 auto 1.75rem;max-width:40rem}.lp-cta-band__lead{margin-bottom:.35rem}.lp-cta-band__price{color:#b9b3a4;max-width:40rem;margin:0 auto 1.75rem;font-size:.95rem}.lp-nowrap{white-space:nowrap}.lp-cta-band .lp-btn--ghost{color:var(--color-text-light)!important;border-color:rgba(251,250,247,.25)}.lp-cta-band .lp-btn--ghost:hover{border-color:rgba(251,250,247,.5)}.lp-cta-band .lp-cmd{margin-top:0;margin-bottom:1.5rem}@media (max-width:900px){.lp-split{grid-template-columns:1fr}.lp-stats__grid{grid-template-columns:repeat(2,1fr);gap:1.75rem 1rem}.lp-grid-3{grid-template-columns:1fr}.lp-grid-4{grid-template-columns:repeat(2,1fr)}.lp-grid-2{grid-template-columns:1fr}.lp-integration{flex-basis:calc(50% - .5rem)}.lp-hero__title{font-size:2.3rem}.lp-hero{padding-top:3.5rem}}@media (max-width:640px){.lp-integration{flex-basis:100%}.lp-grid-4{grid-template-columns:1fr}}.lp-hero__art{margin:2.75rem auto 0;max-width:480px}.lp-figure img,.lp-hero__art img{width:100%;height:auto;display:block}.lp-figure{border-radius:16px;overflow:hidden;border:1px solid rgba(21,18,13,.1);background:#f3f1ed;line-height:0}.dark .lp-figure{border-color:rgba(251,250,247,.12)}.lp-regions-map .regions-map{margin:0}.lp-hero__grid{max-width:1080px;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;text-align:left}.lp-hero__grid .lp-hero__sub{margin-left:0;margin-right:0}.lp-hero__grid .lp-cta-row{justify-content:flex-start}.lp-hero--split .lp-hero__art{margin:0 auto;max-width:460px}.lp-hero__getstarted{margin-top:2.75rem}.lp-stat__num{white-space:nowrap}.lp-marquee{margin-top:1.75rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.lp-marquee__track{display:flex;width:max-content;animation:lp-marquee-scroll 42s linear infinite;will-change:transform}.lp-marquee:hover .lp-marquee__track{animation-play-state:paused}.lp-marquee__group{display:flex;align-items:center;gap:3rem;padding-right:3rem;flex-shrink:0}.lp-marquee__group img{height:22px;width:auto;opacity:.8;transition:opacity .15s}.lp-marquee:hover .lp-marquee__group img{opacity:1}:root:not(.dark) .lp-marquee__group img{filter:invert(1)}@media (prefers-reduced-motion:reduce){.lp-marquee__track{animation:none}.lp-marquee{-webkit-mask-image:none;mask-image:none}.lp-marquee__track{flex-wrap:wrap;justify-content:center;row-gap:1.5rem}}@media (max-width:900px){.lp-hero__grid{grid-template-columns:1fr;text-align:center;gap:2rem}.lp-hero__grid .lp-hero__sub{margin-left:auto;margin-right:auto}.lp-hero__grid .lp-cta-row{justify-content:center}.lp-hero--split .lp-hero__art{max-width:360px}}.lp-split--reverse{grid-template-columns:1.15fr 1fr}.lp-split--reverse>:first-child{order:2}.lp-split--reverse>:last-child{order:1}@media (max-width:900px){.lp-split--reverse>*{order:0}}.hosting-banner{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;border-radius:12px;line-height:1.45;margin-bottom:1rem}.hosting-banner--slng{background-color:var(--color-brand);color:var(--color-text-dark)}.hosting-banner--thirdparty{background-color:#1a3a3a;color:#e8f0f0}.dark .hosting-banner--thirdparty{background-color:#162e2e}.hosting-banner__icon{flex-shrink:0;margin-top:.1rem;opacity:.85}.hosting-banner__body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.hosting-banner__eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.72}.hosting-banner__headline{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:700}.hosting-banner__arrow{flex-shrink:0;animation:hosting-banner-arrow-bounce 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.hosting-banner__arrow{animation:none}}.hosting-banner__sub{font-size:.85rem;opacity:.88}.hosting-banner__foot{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .6rem;margin-top:.3rem}.hosting-banner__avail{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.hosting-banner__chips{display:inline-flex;flex-wrap:wrap;gap:.35rem}.hosting-banner__chip{display:inline-flex;align-items:center;gap:.35rem;padding:.1rem .55rem .1rem .35rem;border-radius:999px;background-color:rgba(0,0,0,.07);border:1px solid rgba(0,0,0,.14);font-family:inherit;font-size:.8rem;font-weight:600;color:inherit;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease}button.hosting-banner__chip{cursor:pointer}button.hosting-banner__chip:hover{background-color:rgba(0,0,0,.12);border-color:rgba(0,0,0,.28)}.hosting-banner--thirdparty .hosting-banner__chip{background-color:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}.hosting-banner--thirdparty button.hosting-banner__chip:hover{background-color:rgba(255,255,255,.17);border-color:rgba(255,255,255,.38)}.hosting-banner--thirdparty .hosting-banner__chip.is-active,.hosting-banner__chip.is-active{border-color:#059669;box-shadow:inset 0 0 0 1px #059669;background-color:rgba(5,150,105,.16)}.hosting-banner__chip.is-active .hosting-banner__chip-name{color:#047857}.hosting-banner--thirdparty .hosting-banner__chip-variant.is-active,.hosting-banner--thirdparty .hosting-banner__chip.is-active .hosting-banner__chip-name{color:#6ee7b7}.hosting-banner__chip-flag{display:inline-block;width:.95rem;height:.95rem;background-size:cover;background-position:center;border-radius:50%;flex-shrink:0}.hosting-banner__chip-variants{display:inline-flex;align-items:center;padding-left:.4rem;margin-left:.1rem;border-left:1px solid currentColor;font-weight:500}.hosting-banner__chip-variant{font-family:inherit;font-size:inherit;font-weight:500;color:inherit;background:0 0;border:0;padding:0 .2rem;border-radius:4px;cursor:pointer;opacity:.7;transition:opacity .12s ease,background-color .12s ease}.hosting-banner__chip-variant:not(:first-child)::before{content:\"·\";display:inline-block;padding-right:.3rem;opacity:.6;cursor:default}.hosting-banner__chip-variant:hover{opacity:1;text-decoration:underline;text-underline-offset:2px}.hosting-banner__chip-variant.is-active{opacity:1;font-weight:700;color:#047857}.hosting-banner__request{font-size:.8rem}.hosting-banner a{background-image:none;border-bottom:0;text-underline-offset:2px}.dark .hosting-banner--slng a,.hosting-banner--slng a{color:var(--color-text-dark);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-text-dark);-webkit-text-decoration-color:var(--color-text-dark)}.dark .hosting-banner--thirdparty a,.hosting-banner--thirdparty a{color:#a3d4d4;font-weight:600;text-decoration:underline;text-decoration-color:#a3d4d4;-webkit-text-decoration-color:#a3d4d4}.region-picker-badge{display:inline-flex;align-items:center;gap:.3rem;margin-right:.4rem;padding:.15rem .5rem;border:1.5px solid rgba(5,150,105,.4);background-color:rgba(5,150,105,.12);border-radius:.5rem;line-height:1.25rem;white-space:nowrap;flex-shrink:0;cursor:pointer}.region-picker-flag{display:inline-block;width:1rem;height:1rem;background-size:cover;background-position:center;border-radius:50%;flex-shrink:0}.region-picker-code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:.875rem;line-height:1.25rem;font-weight:600;color:#059669}.dark .region-picker-chevron,.dark .region-picker-code{color:#34d399}.region-picker-chevron{display:inline-flex;align-items:center;color:#059669;opacity:.75;flex-shrink:0}.region-picker-chevron svg{display:block}@media (max-width:640px){.hosting-banner__foot{align-items:flex-start}}"}],"page":{"pagePath":"api-reference/create-tool","slug":"/api-reference/create-tool","pageMetadata":{"title":"Create Tool","description":"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools","href":"/api-reference/create-tool","autogeneratedByOpenApi":true},"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: \"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Tool","description":"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools","href":"/api-reference/create-tool","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/slng-new-docs/79891e058276ac73/region-picker-flag.js"],"openApiReferenceData":{"operation":{"summary":"Create Tool","operationId":"createTool","requestBody":"a2751210-2602-4f26-a7b1-bc4c07261970","responses":{"201":"c9bacf75-82c1-4730-9084-df6c519a9cbc","401":"8c2727ab-460c-479a-83ad-d59867df3ade","403":"1ab6af94-29ae-4eae-a703-80bcd1925173","409":"5c90b56a-a426-4401-b04f-44a003f3b8b5","422":"e26903c5-d3d4-453c-add8-b89da8b62889","429":"d2762e9f-7904-4e36-b6fd-a0be6985c250","500":"7ee0de7b-5991-4f34-9c3f-b7667c0a5a42"},"description":"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.","method":"post","type":"path","servers":["7d2067d9-05d6-4b9b-93c6-e698e29160a2"],"security":["6ae6cb05-4cd1-4743-b847-2a85a84c6164"],"path":"/v1/agents/tools","baseUrlOptions":["https://api.agents.slng.ai"],"title":"Create Tool","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"description":"The tool draft to create.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Custom Code","description":"Run sandboxed Python you provide. Custom code has no internet access.","required":["name"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","code_src":"from pydantic import BaseModel\n\nclass Input(BaseModel):\n customer_id: str\n region: str\n\nclass Output(BaseModel):\n customer_id: str\n region: str\n\ndef handler(input: Input) -> Output:\n return Output(customer_id=input.customer_id, region=input.region)\n","argument_defaults":{"region":"{{$DEFAULT_REGION}}"},"config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.0.name","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.0.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.0.argument_defaults","typeLabel":"Argument Defaults · object"},"tool_type":{"type":"string","const":"code","title":"Tool Type","default":"code","uniqueKey":"oneOf.0.tool_type","typeLabel":"string"},"config":{"properties":{"type":{"type":"string","const":"code","title":"Type","default":"code","uniqueKey":"oneOf.0.config.type","typeLabel":"string"},"import_probes":{"items":{"type":"string","uniqueKey":"oneOf.0.config.import_probes.items.[INDEX]","typeLabel":"string"},"type":"array","maxItems":100,"title":"Import Probes","uniqueKey":"oneOf.0.config.import_probes","typeLabel":"string[]"},"egress":{"additionalProperties":true,"type":"object","title":"Egress","description":"Historical compatibility only. Custom code has no internet access.","uniqueKey":"oneOf.0.config.egress","typeLabel":"Egress · object"}},"additionalProperties":false,"type":"object","title":"CodeConfig","description":"Configuration for a Custom Code tool. Custom code runs sandboxed with no internet access.","uniqueKey":"oneOf.0.config","typeLabel":"CodeConfig · object"},"code_src":{"type":"string","description":"The Python source for the tool. Only used by Custom Code tools and ignored for other tool types. Custom Code runs sandboxed with no internet access.","title":"Code Src","default":"","uniqueKey":"oneOf.0.code_src","typeLabel":"string"},"declared_secrets":{"items":{"type":"string","uniqueKey":"oneOf.0.declared_secrets.items.[INDEX]","typeLabel":"string"},"type":"array","description":"Names of Vault secrets the code may read at runtime.","title":"Declared Secrets","uniqueKey":"oneOf.0.declared_secrets","typeLabel":"string[]"},"dependencies":{"items":{"type":"string","uniqueKey":"oneOf.0.dependencies.items.[INDEX]","typeLabel":"string"},"type":"array","description":"Python package dependencies to install for the code, as exact pinned specifiers.","title":"Dependencies","uniqueKey":"oneOf.0.dependencies","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"Custom Code · object"},{"type":"object","title":"API Request","description":"Call an external HTTP API and map its response back to the agent.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.1.name","typeLabel":"string"},"tool_type":{"type":"string","const":"api_request","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.1.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.1.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.1.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"api_request","title":"Type","default":"api_request","uniqueKey":"oneOf.1.config.type","typeLabel":"string"},"url":{"type":"string","maxLength":2000,"title":"Url","default":"","uniqueKey":"oneOf.1.config.url","typeLabel":"string"},"http_method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Http Method","default":"POST","uniqueKey":"oneOf.1.config.http_method","typeLabel":"enum\u003cstring>"},"auth":{"properties":{"type":{"type":"string","enum":["none","bearer","hmac"],"description":"Authentication for the outgoing API request: `none`, `bearer` for a bearer token, or `hmac` for HMAC request signing.","title":"Type","default":"none","uniqueKey":"oneOf.1.config.auth.type","typeLabel":"enum\u003cstring>"},"secret_name":{"oneOf":[{"type":"string","title":"Secret Name","maxLength":200,"minLength":1,"uniqueKey":"oneOf.1.config.auth.secret_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Secret Name","uniqueKey":"oneOf.1.config.auth.secret_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config.auth.secret_name","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","title":"API request authentication","description":"How the outgoing API request is authenticated.","uniqueKey":"oneOf.1.config.auth","typeLabel":"API request authentication · object"},"headers":{"items":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","isRequired":true,"uniqueKey":"oneOf.1.config.headers.items.[INDEX].name","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"oneOf.1.config.headers.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Value","uniqueKey":"oneOf.1.config.headers.items.[INDEX].value.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Value","uniqueKey":"oneOf.1.config.headers.items.[INDEX].value.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Value","uniqueKey":"oneOf.1.config.headers.items.[INDEX].value.oneOf.3","typeLabel":"number"},{"type":"null","title":"Value","uniqueKey":"oneOf.1.config.headers.items.[INDEX].value.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.1.config.headers.items.[INDEX].value","typeLabel":"string | boolean | integer | number | null"},"secret_name":{"oneOf":[{"type":"string","title":"Secret Name","maxLength":200,"minLength":1,"uniqueKey":"oneOf.1.config.headers.items.[INDEX].secret_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Secret Name","uniqueKey":"oneOf.1.config.headers.items.[INDEX].secret_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config.headers.items.[INDEX].secret_name","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["name"],"title":"API request header","description":"A header sent with the outgoing API request.","uniqueKey":"oneOf.1.config.headers.items.[INDEX]","typeLabel":"API request header · object"},"type":"array","maxItems":64,"description":"Extra request headers sent to the MCP server; each is a literal value or resolved from a Vault secret.","title":"Headers","uniqueKey":"oneOf.1.config.headers","typeLabel":"API request header · object[]"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","uniqueKey":"oneOf.1.config.parameters","typeLabel":"Parameters · object"},"strict":{"type":"boolean","title":"Strict","default":true,"uniqueKey":"oneOf.1.config.strict","typeLabel":"boolean"},"webhook_format":{"type":"string","enum":["envelope","raw"],"description":"How the API-request tool formats its outgoing request body (`envelope` or `raw`). Defaults to `envelope`.","title":"Webhook Format","default":"envelope","uniqueKey":"oneOf.1.config.webhook_format","typeLabel":"enum\u003cstring>"},"timeout_seconds":{"type":"number","maximum":60,"minimum":1,"title":"Timeout Seconds","default":10,"uniqueKey":"oneOf.1.config.timeout_seconds","typeLabel":"number"},"wait_for_response":{"type":"boolean","title":"Wait For Response","default":true,"uniqueKey":"oneOf.1.config.wait_for_response","typeLabel":"boolean"},"response":{"properties":{"show_to_llm":{"type":"boolean","title":"Show To Llm","default":true,"uniqueKey":"oneOf.1.config.response.show_to_llm","typeLabel":"boolean"},"instructions":{"oneOf":[{"type":"string","title":"Instructions","maxLength":2000,"uniqueKey":"oneOf.1.config.response.instructions.oneOf.0","typeLabel":"string"},{"type":"null","title":"Instructions","uniqueKey":"oneOf.1.config.response.instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config.response.instructions","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","title":"API response handling","description":"How the upstream API response is processed and returned to the agent.","uniqueKey":"oneOf.1.config.response","typeLabel":"API response handling · object"}},"additionalProperties":false,"type":"object","title":"ApiRequestConfig","description":"Request settings for an API Request tool, covering URL, method, auth, headers, and response handling.","uniqueKey":"oneOf.1.config","typeLabel":"ApiRequestConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"API Request · object"},{"type":"object","title":"End Call","description":"End the call, optionally speaking a goodbye message first.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.2.name","typeLabel":"string"},"tool_type":{"type":"string","const":"end_call","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.2.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.2.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.2.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"end_call","title":"Type","default":"end_call","uniqueKey":"oneOf.2.config.type","typeLabel":"string"},"goodbye_message":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config.goodbye_message.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"oneOf.2.config.goodbye_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config.goodbye_message","typeLabel":"TemplateStringExpression · object | null"},"wait_for_completion":{"type":"boolean","title":"Wait For Completion","default":true,"uniqueKey":"oneOf.2.config.wait_for_completion","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"EndCallConfig","description":"Configuration for an End Call tool, including an optional goodbye message.","uniqueKey":"oneOf.2.config","typeLabel":"EndCallConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"End Call · object"},{"type":"object","title":"Voicemail Detection","description":"Detect an answering machine or voicemail and respond accordingly.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.3.name","typeLabel":"string"},"tool_type":{"type":"string","const":"voicemail_detection","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.3.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.3.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.3.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"voicemail_detection","title":"Type","default":"voicemail_detection","uniqueKey":"oneOf.3.config.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"oneOf.3.config.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"oneOf.3.config.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"oneOf.3.config.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.3.config.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"type":"object","title":"VoicemailDetectionConfig","description":"Configuration for a Voicemail Detection tool.","uniqueKey":"oneOf.3.config","typeLabel":"VoicemailDetectionConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.3","typeLabel":"Voicemail Detection · object"},{"type":"object","title":"Transfer Call","description":"Transfer the live call to another phone number.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.4.name","typeLabel":"string"},"tool_type":{"type":"string","const":"transfer_call","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.4.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.4.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.4.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"transfer_call","title":"Type","default":"transfer_call","uniqueKey":"oneOf.4.config.type","typeLabel":"string"},"destination":{"oneOf":[{"type":"string","title":"Destination","uniqueKey":"oneOf.4.config.destination.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Destination","uniqueKey":"oneOf.4.config.destination.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Destination","uniqueKey":"oneOf.4.config.destination.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Destination","uniqueKey":"oneOf.4.config.destination.oneOf.3","typeLabel":"number"},{"type":"null","title":"Destination","uniqueKey":"oneOf.4.config.destination.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.4.config.destination","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"type":"object","title":"TransferCallConfig","description":"Configuration for a Transfer Call tool, including the destination number.","uniqueKey":"oneOf.4.config","typeLabel":"TransferCallConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.4","typeLabel":"Transfer Call · object"},{"type":"object","title":"Send SMS","description":"Send an SMS message; recipient, body, and from-number come from attachment values.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.5.name","typeLabel":"string"},"tool_type":{"type":"string","const":"send_sms","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.5.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.5.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.5.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"send_sms","title":"Type","default":"send_sms","uniqueKey":"oneOf.5.config.type","typeLabel":"string"},"recipient":{"oneOf":[{"type":"string","title":"Recipient","uniqueKey":"oneOf.5.config.recipient.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Recipient","uniqueKey":"oneOf.5.config.recipient.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Recipient","uniqueKey":"oneOf.5.config.recipient.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Recipient","uniqueKey":"oneOf.5.config.recipient.oneOf.3","typeLabel":"number"},{"type":"null","title":"Recipient","uniqueKey":"oneOf.5.config.recipient.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.5.config.recipient","typeLabel":"string | boolean | integer | number | null"},"body":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"oneOf.5.config.body.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"oneOf.5.config.body.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"oneOf.5.config.body.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"oneOf.5.config.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.5.config.body","typeLabel":"TemplateStringExpression · object | null"},"from_number":{"oneOf":[{"type":"string","title":"From Number","uniqueKey":"oneOf.5.config.from_number.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"From Number","uniqueKey":"oneOf.5.config.from_number.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"From Number","uniqueKey":"oneOf.5.config.from_number.oneOf.2","typeLabel":"integer"},{"type":"number","title":"From Number","uniqueKey":"oneOf.5.config.from_number.oneOf.3","typeLabel":"number"},{"type":"null","title":"From Number","uniqueKey":"oneOf.5.config.from_number.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.5.config.from_number","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"type":"object","title":"SendSmsConfig","description":"Managed SMS capability; recipient/body/from-number are attachment values.","uniqueKey":"oneOf.5.config","typeLabel":"SendSmsConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.5","typeLabel":"Send SMS · object"},{"type":"object","title":"Current Date and Time","description":"Give the agent the current date and time in a configured IANA timezone.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.6.name","typeLabel":"string"},"tool_type":{"type":"string","const":"current_datetime","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.6.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.6.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.6.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"current_datetime","title":"Type","default":"current_datetime","uniqueKey":"oneOf.6.config.type","typeLabel":"string"},"timezone":{"type":"string","title":"Timezone","default":"UTC","uniqueKey":"oneOf.6.config.timezone","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"oneOf.6.config.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"oneOf.6.config.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"oneOf.6.config.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.config.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"type":"object","title":"CurrentDatetimeConfig","description":"Configuration for a Current Date and Time tool, including the IANA timezone.","uniqueKey":"oneOf.6.config","typeLabel":"CurrentDatetimeConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.6","typeLabel":"Current Date and Time · object"},{"type":"object","title":"User Phone Number","description":"Give the agent the caller's phone number.","required":["name","tool_type"],"example":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup"}},"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Name","isRequired":true,"uniqueKey":"oneOf.7.name","typeLabel":"string"},"tool_type":{"type":"string","const":"user_phone_number","title":"Tool Type","isRequired":true,"uniqueKey":"oneOf.7.tool_type","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"title":"Description","default":"","uniqueKey":"oneOf.7.description","typeLabel":"string"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument. The keys are the argument names the tool declares; the shape is the same for every tool type.","title":"Argument Defaults","uniqueKey":"oneOf.7.argument_defaults","typeLabel":"Argument Defaults · object"},"config":{"properties":{"type":{"type":"string","const":"user_phone_number","title":"Type","default":"user_phone_number","uniqueKey":"oneOf.7.config.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"oneOf.7.config.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"oneOf.7.config.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"oneOf.7.config.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.7.config.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"type":"object","title":"UserPhoneNumberConfig","description":"Configuration for a User Phone Number tool.","uniqueKey":"oneOf.7.config","typeLabel":"UserPhoneNumberConfig · object"}},"additionalProperties":false,"uniqueKey":"oneOf.7","typeLabel":"User Phone Number · object"}],"uniqueKey":"","typeLabel":"Custom Code · object | API Request · object | End Call · object | Voicemail Detection · object | Transfer Call · object | Send SMS · object | Current Date and Time · object | User Phone Number · object"},"examples":{"Custom Code":{"title":"Custom Code","value":{"name":"lookup_customer","tool_type":"code","description":"Look up a customer by id and region","code_src":"from pydantic import BaseModel\n\nclass Input(BaseModel):\n customer_id: str\n region: str\n\nclass Output(BaseModel):\n customer_id: str\n region: str\n\ndef handler(input: Input) -> Output:\n return Output(\n customer_id=input.customer_id,\n region=input.region,\n )\n","config":{"type":"code"},"declared_secrets":["CRM_API_KEY"],"dependencies":["requests==2.32.3"],"argument_defaults":{"region":"{{$DEFAULT_REGION}}"}}},"API Request":{"title":"API Request","value":{"name":"lookup_customer","tool_type":"api_request","description":"Look up a customer by id","config":{"type":"api_request","url":"https://api.example.com/lookup","http_method":"POST","parameters":{"type":"object","properties":{"customer_id":{"type":"string"}},"required":["customer_id"]}}}},"End Call":{"title":"End Call","value":{"name":"end_call","tool_type":"end_call","description":"End the call once the conversation is complete","config":{"type":"end_call","wait_for_completion":true}}},"Voicemail Detection":{"title":"Voicemail Detection","value":{"name":"detect_voicemail","tool_type":"voicemail_detection","description":"Detect an answering machine and respond accordingly"}},"Transfer Call":{"title":"Transfer Call","value":{"name":"transfer_call","tool_type":"transfer_call","description":"Transfer the live call to a human agent"}},"Send SMS":{"title":"Send SMS","value":{"name":"send_sms","tool_type":"send_sms","description":"Send an SMS follow-up to the caller"}},"Current Date and Time":{"title":"Current Date and Time","value":{"name":"current_datetime","tool_type":"current_datetime","description":"Report the current date and time in New York","config":{"type":"current_datetime","timezone":"America/New_York"}}},"User Phone Number":{"title":"User Phone Number","value":{"name":"user_phone_number","tool_type":"user_phone_number","description":"Give the agent the caller phone number"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"c9bacf75-82c1-4730-9084-df6c519a9cbc":{"description":"The newly created organisation tool.","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"organisation_id":{"type":"string","format":"uuid","title":"Organisation Id","isRequired":true,"uniqueKey":"organisation_id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","title":"Description","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"declared_secrets":{"items":{"type":"string","uniqueKey":"declared_secrets.items.[INDEX]","typeLabel":"string"},"type":"array","description":"Vault secret names this tool is allowed to read at runtime.","title":"Declared Secrets","isRequired":true,"uniqueKey":"declared_secrets","typeLabel":"string[]"},"dependencies":{"items":{"type":"string","uniqueKey":"dependencies.items.[INDEX]","typeLabel":"string"},"type":"array","description":"Pinned Python package dependencies installed for this tool.","title":"Dependencies","isRequired":true,"uniqueKey":"dependencies","typeLabel":"string[]"},"source":{"type":"string","enum":["curated","org"],"description":"`curated` tools are built in and maintained by SLNG; `org` tools were created by your organisation.","title":"Source","isRequired":true,"uniqueKey":"source","typeLabel":"enum\u003cstring>"},"content_hash":{"type":"string","title":"Content Hash","isRequired":true,"uniqueKey":"content_hash","typeLabel":"string"},"is_current_hash_green":{"type":"boolean","title":"Is Current Hash Green","isRequired":true,"uniqueKey":"is_current_hash_green","typeLabel":"boolean"},"is_current_version":{"type":"boolean","title":"Is Current Version","isRequired":true,"uniqueKey":"is_current_version","typeLabel":"boolean"},"schema_stale":{"type":"boolean","title":"Schema Stale","isRequired":true,"uniqueKey":"schema_stale","typeLabel":"boolean"},"gate_status":{"properties":{"static":{"oneOf":[{"type":"object","title":"Static gate","description":"A publish readiness gate evaluated from static analysis.","required":["parse","models","schema","secrets_exist","name_unique"],"properties":{"parse":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.parse.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.parse.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.parse.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.0.parse.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.parse","typeLabel":"CheckResult · object"},"models":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.models.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.models.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.models.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.0.models.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.models","typeLabel":"CheckResult · object"},"schema":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.schema.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.schema.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.schema.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.0.schema.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.schema","typeLabel":"CheckResult · object"},"secrets_exist":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.secrets_exist.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.secrets_exist.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.secrets_exist.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.0.secrets_exist.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.secrets_exist","typeLabel":"CheckResult · object"},"name_unique":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.name_unique.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.name_unique.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.0.name_unique.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.0.name_unique.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.0.name_unique","typeLabel":"CheckResult · object"}},"uniqueKey":"gate_status.static.oneOf.0","typeLabel":"Static gate · object"},{"type":"object","title":"Typed static gate","description":"A typed publish readiness gate evaluated from static analysis.","required":["config_valid","secrets_exist","name_unique"],"properties":{"config_valid":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.config_valid.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.config_valid.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.config_valid.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.1.config_valid.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.config_valid","typeLabel":"CheckResult · object"},"secrets_exist":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.secrets_exist.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.secrets_exist.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.secrets_exist.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.1.secrets_exist.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.secrets_exist","typeLabel":"CheckResult · object"},"name_unique":{"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.name_unique.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.name_unique.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.static.oneOf.1.name_unique.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.static.oneOf.1.name_unique.detail","typeLabel":"string | null"}},"type":"object","required":["passed"],"title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","isRequired":true,"uniqueKey":"gate_status.static.oneOf.1.name_unique","typeLabel":"CheckResult · object"}},"uniqueKey":"gate_status.static.oneOf.1","typeLabel":"Typed static gate · object"},{"type":"null","title":"Static","uniqueKey":"gate_status.static.oneOf.2","typeLabel":"null"}],"uniqueKey":"gate_status.static","typeLabel":"Static gate · object | Typed static gate · object | null"},"green_run":{"oneOf":[{"type":"object","title":"GreenRun","description":"Result of the green-run gate, with the hash proven by a successful test run.","required":["passed"],"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.green_run.oneOf.0.passed","typeLabel":"boolean"},"proven_hash":{"oneOf":[{"type":"string","title":"Proven Hash","uniqueKey":"gate_status.green_run.oneOf.0.proven_hash.oneOf.0","typeLabel":"string"},{"type":"null","title":"Proven Hash","uniqueKey":"gate_status.green_run.oneOf.0.proven_hash.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.green_run.oneOf.0.proven_hash","typeLabel":"string | null"}},"uniqueKey":"gate_status.green_run.oneOf.0","typeLabel":"GreenRun · object"},{"type":"null","uniqueKey":"gate_status.green_run.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.green_run","typeLabel":"GreenRun · object | null"},"config_valid":{"oneOf":[{"type":"object","title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","required":["passed"],"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.config_valid.oneOf.0.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.config_valid.oneOf.0.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.config_valid.oneOf.0.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.config_valid.oneOf.0.detail","typeLabel":"string | null"}},"uniqueKey":"gate_status.config_valid.oneOf.0","typeLabel":"CheckResult · object"},{"type":"null","uniqueKey":"gate_status.config_valid.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.config_valid","typeLabel":"CheckResult · object | null"},"code_environment":{"oneOf":[{"type":"object","title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","required":["passed"],"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.code_environment.oneOf.0.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.code_environment.oneOf.0.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.code_environment.oneOf.0.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.code_environment.oneOf.0.detail","typeLabel":"string | null"}},"uniqueKey":"gate_status.code_environment.oneOf.0","typeLabel":"CheckResult · object"},{"type":"null","uniqueKey":"gate_status.code_environment.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.code_environment","typeLabel":"CheckResult · object | null"},"content_current":{"oneOf":[{"type":"object","title":"CheckResult","description":"Result of one publish readiness check, with a pass flag and optional detail.","required":["passed"],"properties":{"passed":{"type":"boolean","title":"Passed","isRequired":true,"uniqueKey":"gate_status.content_current.oneOf.0.passed","typeLabel":"boolean"},"detail":{"oneOf":[{"type":"string","title":"Detail","uniqueKey":"gate_status.content_current.oneOf.0.detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Detail","uniqueKey":"gate_status.content_current.oneOf.0.detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.content_current.oneOf.0.detail","typeLabel":"string | null"}},"uniqueKey":"gate_status.content_current.oneOf.0","typeLabel":"CheckResult · object"},{"type":"null","uniqueKey":"gate_status.content_current.oneOf.1","typeLabel":"null"}],"uniqueKey":"gate_status.content_current","typeLabel":"CheckResult · object | null"}},"type":"object","title":"GateStatus","description":"Gate set is selected by tool_type (V2): data → static + green_run;\ncode also reports config_valid; ctx-bound → config_valid ONLY.","isRequired":true,"uniqueKey":"gate_status","typeLabel":"GateStatus · object"},"tool_type":{"type":"string","enum":["code","api_request","end_call","voicemail_detection","transfer_call","send_sms","current_datetime","user_phone_number"],"title":"Tool Type","default":"code","uniqueKey":"tool_type","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","title":"CodeConfig","description":"Configuration for a Custom Code tool. Custom code runs sandboxed with no internet access.","properties":{"type":{"type":"string","const":"code","title":"Type","default":"code","uniqueKey":"config.oneOf.0.type","typeLabel":"string"},"import_probes":{"items":{"type":"string","uniqueKey":"config.oneOf.0.import_probes.items.[INDEX]","typeLabel":"string"},"type":"array","maxItems":100,"title":"Import Probes","uniqueKey":"config.oneOf.0.import_probes","typeLabel":"string[]"},"egress":{"additionalProperties":true,"type":"object","title":"Egress","description":"Historical compatibility only. Custom code has no internet access.","uniqueKey":"config.oneOf.0.egress","typeLabel":"Egress · object"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0","typeLabel":"CodeConfig · object"},{"type":"object","title":"ApiRequestConfig","description":"Request settings for an API Request tool, covering URL, method, auth, headers, and response handling.","properties":{"type":{"type":"string","const":"api_request","title":"Type","default":"api_request","uniqueKey":"config.oneOf.1.type","typeLabel":"string"},"url":{"type":"string","maxLength":2000,"title":"Url","default":"","uniqueKey":"config.oneOf.1.url","typeLabel":"string"},"http_method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Http Method","default":"POST","uniqueKey":"config.oneOf.1.http_method","typeLabel":"enum\u003cstring>"},"auth":{"properties":{"type":{"type":"string","enum":["none","bearer","hmac"],"description":"Authentication for the outgoing API request: `none`, `bearer` for a bearer token, or `hmac` for HMAC request signing.","title":"Type","default":"none","uniqueKey":"config.oneOf.1.auth.type","typeLabel":"enum\u003cstring>"},"secret_name":{"oneOf":[{"type":"string","title":"Secret Name","maxLength":200,"minLength":1,"uniqueKey":"config.oneOf.1.auth.secret_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Secret Name","uniqueKey":"config.oneOf.1.auth.secret_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.1.auth.secret_name","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","title":"API request authentication","description":"How the outgoing API request is authenticated.","uniqueKey":"config.oneOf.1.auth","typeLabel":"API request authentication · object"},"headers":{"items":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","isRequired":true,"uniqueKey":"config.oneOf.1.headers.items.[INDEX].name","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"config.oneOf.1.headers.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Value","uniqueKey":"config.oneOf.1.headers.items.[INDEX].value.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Value","uniqueKey":"config.oneOf.1.headers.items.[INDEX].value.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Value","uniqueKey":"config.oneOf.1.headers.items.[INDEX].value.oneOf.3","typeLabel":"number"},{"type":"null","title":"Value","uniqueKey":"config.oneOf.1.headers.items.[INDEX].value.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.1.headers.items.[INDEX].value","typeLabel":"string | boolean | integer | number | null"},"secret_name":{"oneOf":[{"type":"string","title":"Secret Name","maxLength":200,"minLength":1,"uniqueKey":"config.oneOf.1.headers.items.[INDEX].secret_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Secret Name","uniqueKey":"config.oneOf.1.headers.items.[INDEX].secret_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.1.headers.items.[INDEX].secret_name","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["name"],"title":"API request header","description":"A header sent with the outgoing API request.","uniqueKey":"config.oneOf.1.headers.items.[INDEX]","typeLabel":"API request header · object"},"type":"array","maxItems":64,"description":"Extra request headers sent to the MCP server; each is a literal value or resolved from a Vault secret.","title":"Headers","uniqueKey":"config.oneOf.1.headers","typeLabel":"API request header · object[]"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","uniqueKey":"config.oneOf.1.parameters","typeLabel":"Parameters · object"},"strict":{"type":"boolean","title":"Strict","default":true,"uniqueKey":"config.oneOf.1.strict","typeLabel":"boolean"},"webhook_format":{"type":"string","enum":["envelope","raw"],"description":"How the API-request tool formats its outgoing request body (`envelope` or `raw`). Defaults to `envelope`.","title":"Webhook Format","default":"envelope","uniqueKey":"config.oneOf.1.webhook_format","typeLabel":"enum\u003cstring>"},"timeout_seconds":{"type":"number","maximum":60,"minimum":1,"title":"Timeout Seconds","default":10,"uniqueKey":"config.oneOf.1.timeout_seconds","typeLabel":"number"},"wait_for_response":{"type":"boolean","title":"Wait For Response","default":true,"uniqueKey":"config.oneOf.1.wait_for_response","typeLabel":"boolean"},"response":{"properties":{"show_to_llm":{"type":"boolean","title":"Show To Llm","default":true,"uniqueKey":"config.oneOf.1.response.show_to_llm","typeLabel":"boolean"},"instructions":{"oneOf":[{"type":"string","title":"Instructions","maxLength":2000,"uniqueKey":"config.oneOf.1.response.instructions.oneOf.0","typeLabel":"string"},{"type":"null","title":"Instructions","uniqueKey":"config.oneOf.1.response.instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.1.response.instructions","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","title":"API response handling","description":"How the upstream API response is processed and returned to the agent.","uniqueKey":"config.oneOf.1.response","typeLabel":"API response handling · object"}},"additionalProperties":false,"uniqueKey":"config.oneOf.1","typeLabel":"ApiRequestConfig · object"},{"type":"object","title":"EndCallConfig","description":"Configuration for an End Call tool, including an optional goodbye message.","properties":{"type":{"type":"string","const":"end_call","title":"Type","default":"end_call","uniqueKey":"config.oneOf.2.type","typeLabel":"string"},"goodbye_message":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.2.goodbye_message.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"config.oneOf.2.goodbye_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.2.goodbye_message","typeLabel":"TemplateStringExpression · object | null"},"wait_for_completion":{"type":"boolean","title":"Wait For Completion","default":true,"uniqueKey":"config.oneOf.2.wait_for_completion","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"config.oneOf.2","typeLabel":"EndCallConfig · object"},{"type":"object","title":"VoicemailDetectionConfig","description":"Configuration for a Voicemail Detection tool.","properties":{"type":{"type":"string","const":"voicemail_detection","title":"Type","default":"voicemail_detection","uniqueKey":"config.oneOf.3.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"config.oneOf.3.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.3.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"config.oneOf.3.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.3.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.3","typeLabel":"VoicemailDetectionConfig · object"},{"type":"object","title":"TransferCallConfig","description":"Configuration for a Transfer Call tool, including the destination number.","properties":{"type":{"type":"string","const":"transfer_call","title":"Type","default":"transfer_call","uniqueKey":"config.oneOf.4.type","typeLabel":"string"},"destination":{"oneOf":[{"type":"string","title":"Destination","uniqueKey":"config.oneOf.4.destination.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Destination","uniqueKey":"config.oneOf.4.destination.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Destination","uniqueKey":"config.oneOf.4.destination.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Destination","uniqueKey":"config.oneOf.4.destination.oneOf.3","typeLabel":"number"},{"type":"null","title":"Destination","uniqueKey":"config.oneOf.4.destination.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.4.destination","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.4","typeLabel":"TransferCallConfig · object"},{"type":"object","title":"SendSmsConfig","description":"Managed SMS capability; recipient/body/from-number are attachment values.","properties":{"type":{"type":"string","const":"send_sms","title":"Type","default":"send_sms","uniqueKey":"config.oneOf.5.type","typeLabel":"string"},"recipient":{"oneOf":[{"type":"string","title":"Recipient","uniqueKey":"config.oneOf.5.recipient.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Recipient","uniqueKey":"config.oneOf.5.recipient.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Recipient","uniqueKey":"config.oneOf.5.recipient.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Recipient","uniqueKey":"config.oneOf.5.recipient.oneOf.3","typeLabel":"number"},{"type":"null","title":"Recipient","uniqueKey":"config.oneOf.5.recipient.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.5.recipient","typeLabel":"string | boolean | integer | number | null"},"body":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"config.oneOf.5.body.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"config.oneOf.5.body.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.5.body.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"config.oneOf.5.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.5.body","typeLabel":"TemplateStringExpression · object | null"},"from_number":{"oneOf":[{"type":"string","title":"From Number","uniqueKey":"config.oneOf.5.from_number.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"From Number","uniqueKey":"config.oneOf.5.from_number.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"From Number","uniqueKey":"config.oneOf.5.from_number.oneOf.2","typeLabel":"integer"},{"type":"number","title":"From Number","uniqueKey":"config.oneOf.5.from_number.oneOf.3","typeLabel":"number"},{"type":"null","title":"From Number","uniqueKey":"config.oneOf.5.from_number.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.5.from_number","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.5","typeLabel":"SendSmsConfig · object"},{"type":"object","title":"CurrentDatetimeConfig","description":"Configuration for a Current Date and Time tool, including the IANA timezone.","properties":{"type":{"type":"string","const":"current_datetime","title":"Type","default":"current_datetime","uniqueKey":"config.oneOf.6.type","typeLabel":"string"},"timezone":{"type":"string","title":"Timezone","default":"UTC","uniqueKey":"config.oneOf.6.timezone","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"config.oneOf.6.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.6.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"config.oneOf.6.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.6.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.6","typeLabel":"CurrentDatetimeConfig · object"},{"type":"object","title":"UserPhoneNumberConfig","description":"Configuration for a User Phone Number tool.","properties":{"type":{"type":"string","const":"user_phone_number","title":"Type","default":"user_phone_number","uniqueKey":"config.oneOf.7.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"config.oneOf.7.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.7.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"config.oneOf.7.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.7.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.7","typeLabel":"UserPhoneNumberConfig · object"},{"type":"null","title":"Config","uniqueKey":"config.oneOf.8","typeLabel":"null"}],"uniqueKey":"config","typeLabel":"CodeConfig · object | ApiRequestConfig · object | EndCallConfig · object | VoicemailDetectionConfig · object | TransferCallConfig · object | SendSmsConfig · object | CurrentDatetimeConfig · object | UserPhoneNumberConfig · object | null"},"argument_defaults":{"additionalProperties":true,"type":"object","description":"Current default values for the tool arguments, keyed by argument name. Each value is a literal (string, number, or boolean) or a Vault variable reference using the {{$NAME}} syntax. Applied when a caller does not supply that argument.","title":"Argument Defaults","uniqueKey":"argument_defaults","typeLabel":"Argument Defaults · object"},"code_src":{"oneOf":[{"type":"string","title":"Code Src","description":"Current Python source for the tool, populated for Custom Code tools only. Custom Code runs sandboxed with no internet access.","uniqueKey":"code_src.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code Src","description":"Current Python source for the tool, populated for Custom Code tools only. Custom Code runs sandboxed with no internet access.","uniqueKey":"code_src.oneOf.1","typeLabel":"null"}],"uniqueKey":"code_src","typeLabel":"string | null"},"last_run_status":{"oneOf":[{"type":"string","title":"Last Run Status","uniqueKey":"last_run_status.oneOf.0","typeLabel":"string"},{"type":"null","title":"Last Run Status","uniqueKey":"last_run_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"last_run_status","typeLabel":"string | null"},"latest_version":{"oneOf":[{"type":"integer","title":"Latest Version","uniqueKey":"latest_version.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Latest Version","uniqueKey":"latest_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"latest_version","typeLabel":"integer | null"},"arg_schema":{"oneOf":[{"type":"object","title":"Arg Schema","additionalProperties":true,"uniqueKey":"arg_schema.oneOf.0","typeLabel":"Arg Schema · object"},{"type":"null","title":"Arg Schema","uniqueKey":"arg_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"arg_schema","typeLabel":"Arg Schema · object | null"}},"type":"object","required":["id","organisation_id","name","description","declared_secrets","dependencies","source","content_hash","is_current_hash_green","is_current_version","schema_stale","gate_status"],"title":"Tool","description":"A tool and its current draft state, including config, publish gates, and version info.","example":{"id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","organisation_id":"0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9","name":"lookup_customer","tool_type":"api_request","config":{"type":"api_request","url":"https://api.example.com/lookup","http_method":"POST"},"description":"Look up a customer by id","declared_secrets":[],"dependencies":[],"argument_defaults":{},"code_src":null,"last_run_status":"succeeded","source":"org","latest_version":3,"content_hash":"3f1ab2c4d5e6f708","is_current_hash_green":true,"is_current_version":true,"schema_stale":false,"gate_status":{"static":{"config_valid":{"passed":true},"secrets_exist":{"passed":true},"name_unique":{"passed":true}},"green_run":{"passed":true}}},"uniqueKey":"","typeLabel":"Tool · object"},"examples":{"Example":{"title":"Example","value":{"id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","organisation_id":"0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9","name":"lookup_customer","tool_type":"api_request","config":{"type":"api_request","url":"https://api.example.com/lookup","http_method":"POST"},"description":"Look up a customer by id","declared_secrets":[],"dependencies":[],"argument_defaults":{},"code_src":null,"last_run_status":"succeeded","source":"org","latest_version":3,"content_hash":"3f1ab2c4d5e6f708","is_current_hash_green":true,"is_current_version":true,"schema_stale":false,"gate_status":{"static":{"config_valid":{"passed":true},"secrets_exist":{"passed":true},"name_unique":{"passed":true}},"green_run":{"passed":true}}}}},"exampleType":"generated"}},"exampleType":"generated"},"8c2727ab-460c-479a-83ad-d59867df3ade":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"1ab6af94-29ae-4eae-a703-80bcd1925173":{"description":"The caller cannot perform this operation, or public resource access is disabled for the organisation. Disabled access returns code PUBLIC_SHARED_RESOURCES_DISABLED with retryable set to false.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"5c90b56a-a426-4401-b04f-44a003f3b8b5":{"description":"The requested change conflicts with the current resource state.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"e26903c5-d3d4-453c-add8-b89da8b62889":{"description":"Request validation failed.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"d2762e9f-7904-4e36-b6fd-a0be6985c250":{"description":"The organisation's request limit was exceeded.","headers":{"Retry-After":{"schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"7ee0de7b-5991-4f34-9c3f-b7667c0a5a42":{"description":"The operation failed. The response does not expose secret values.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6ae6cb05-4cd1-4743-b847-2a85a84c6164":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"SLNG API key","description":"Your SLNG consumer API key.","scopes":[]}}},"servers":{"7d2067d9-05d6-4b9b-93c6-e698e29160a2":{"url":"https://api.agents.slng.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"SLNG API key","description":"Your SLNG consumer API key.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your SLNG consumer API key.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/agents/tools.oas.yaml"},"subdomain":"slng-new-docs","siteName":"SLNG: the execution layer for voice - SLNG Documentation","title":"Create Tool - SLNG: the execution layer for voice - SLNG Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-16T14:33:38.975Z","originalFileLocation":"api-reference/create-tool.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=\"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Tool - SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.slng.ai/api-reference/create-tool\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://slng-new-docs.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Create+Tool\u0026amp;description=Create+an+organisation+tool+draft+from+one+of+eight+tool+types.+Curated+capability+types+are+rejected%2C+the+code+type+needs+the+code-tools+feature%2C+and+managed+s\u0026amp;theme=058cea2715ea6a0fe652dddf\u0026amp;signature=bbf98846245c4f353016797c2f10bc48f8a4a2a52b525d9f06e9e220533e2818\">\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=\"Create Tool - SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://slng-new-docs.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Create+Tool\u0026amp;description=Create+an+organisation+tool+draft+from+one+of+eight+tool+types.+Curated+capability+types+are+rejected%2C+the+code+type+needs+the+code-tools+feature%2C+and+managed+s\u0026amp;theme=058cea2715ea6a0fe652dddf\u0026amp;signature=bbf98846245c4f353016797c2f10bc48f8a4a2a52b525d9f06e9e220533e2818\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/slng-new-docs/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fbe566\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.slng.ai/api-reference/create-tool\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/create-tool.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.slng.ai/#organization\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"url\":\"https://docs.slng.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.slng.ai#website\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"url\":\"https://docs.slng.ai\",\"publisher\":{\"@id\":\"https://docs.slng.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.slng.ai/api-reference/create-tool#webpage\",\"url\":\"https://docs.slng.ai/api-reference/create-tool\",\"name\":\"Create Tool\",\"description\":\"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\",\"dateModified\":\"2026-09-16T14:33:38.975Z\",\"isPartOf\":{\"@id\":\"https://docs.slng.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.slng.ai/api-reference/create-tool#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.slng.ai/api-reference/create-tool#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents\",\"item\":\"https://docs.slng.ai/api-reference/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tools\",\"item\":\"https://docs.slng.ai/api-reference/agents-resources/tools\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"API Reference\",\"item\":\"https://docs.slng.ai/api-reference/list-tools\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"API Reference\",\"item\":\"https://docs.slng.ai/api-reference/list-tools\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Create Tool\",\"item\":\"https://docs.slng.ai/api-reference/create-tool\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.slng.ai/api-reference/create-tool#apireference\",\"headline\":\"Create Tool\",\"name\":\"Create Tool\",\"description\":\"Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft.\",\"url\":\"https://docs.slng.ai/api-reference/create-tool\",\"mainEntityOfPage\":{\"@id\":\"https://docs.slng.ai/api-reference/create-tool#webpage\"},\"dateModified\":\"2026-09-16T14:33:38.975Z\",\"publisher\":{\"@id\":\"https://docs.slng.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.slng.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SLNG: the execution layer for voice - SLNG Documentation","nav":{"global":null,"tabs":[{"tab":"Concepts","icon":"lightbulb","pages":[{"title":"Concepts","href":"/concepts/whats-slng/overview"}]},{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/guides/get-started/quickstart"}]},{"tab":"API Reference","icon":"code","pages":[{"title":"Authentication","href":"/api-reference/authentication"},{"group":"Speech to text","icon":"ear","pages":[{"title":"Speech to text API","sidebarTitle":"Overview","href":"/api-reference/speech-to-text/overview"},{"group":"SLNG hosted","icon":"/images/providers/slng-icon.svg","expanded":true,"pages":[{"group":"Deepgram Nova 3","pages":[{"title":"Nova 3 (English)","sidebarTitle":"English","openapi":"api-reference/openapi/stt-slng.oas.yaml POST /v1/stt/slng/deepgram/nova:3-en","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-http"},{"title":"Nova 3 (English)","sidebarTitle":"English","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-en","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-websocket"},{"title":"Nova 3 (Hindi)","sidebarTitle":"Hindi","openapi":"api-reference/openapi/stt-slng.oas.yaml POST /v1/stt/slng/deepgram/nova:3-hi","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-http"},{"title":"Nova 3 (Hindi)","sidebarTitle":"Hindi","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-hi","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-websocket"},{"title":"Nova 3 (Indonesian)","sidebarTitle":"Indonesian","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-id","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-indonesian-websocket"},{"title":"Nova 3 (Kannada)","sidebarTitle":"Kannada","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-kn","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-kannada-websocket"},{"title":"Nova 3 (Marathi)","sidebarTitle":"Marathi","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-mr","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-marathi-websocket"},{"title":"Nova 3 (Telugu)","sidebarTitle":"Telugu","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-te","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-telugu-websocket"}]},{"group":"Speechmatics Realtime v2","pages":[{"title":"Speechmatics Realtime v2 (Indonesian)","sidebarTitle":"Indonesian","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/speechmatics/realtime:v2","href":"/api-reference/speech-to-text/slng/speechmatics-realtime-v2/speechmatics-realtime-v2-indonesian-websocket"}]}]},{"group":"Third party","icon":"pyramid","expanded":true,"pages":[{"group":"Deepgram","pages":[{"title":"Nova 3","sidebarTitle":"Nova 3","openapi":"api-reference/openapi/stt-deepgram.oas.yaml POST /v1/stt/deepgram/nova:3","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-http"},{"title":"Nova 3","sidebarTitle":"Nova 3","asyncapi":"api-reference/asyncapi/stt-deepgram.asyncapi.yaml /v1/stt/deepgram/nova:3","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-websocket"},{"title":"Nova 3 Medical","sidebarTitle":"Nova 3 Medical","openapi":"api-reference/openapi/stt-deepgram.oas.yaml POST /v1/stt/deepgram/nova:3-medical","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-http"},{"title":"Nova 3 Medical","sidebarTitle":"Nova 3 Medical","asyncapi":"api-reference/asyncapi/stt-deepgram.asyncapi.yaml /v1/stt/deepgram/nova:3-medical","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-websocket"}]},{"group":"Gradium","pages":[{"title":"Gradium STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/stt-gradium.asyncapi.yaml /v1/stt/gradium/stt:default","href":"/api-reference/speech-to-text/gradium/gradium-stt/gradium-stt-default-websocket"}]},{"group":"Reson8","pages":[{"title":"Reson8 STT v1","sidebarTitle":"STT v1","asyncapi":"api-reference/asyncapi/stt-reson8.asyncapi.yaml /v1/stt/reson8/reson8stt:v1","href":"/api-reference/speech-to-text/reson8/reson8-stt-v1/reson8-stt-v1-websocket"}]},{"group":"Sarvam AI","pages":[{"title":"Saaras v3","sidebarTitle":"Saaras v3","openapi":"api-reference/openapi/stt-sarvam.oas.yaml POST /v1/stt/sarvam/saaras:v3","href":"/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-http"},{"title":"Saaras v3","sidebarTitle":"Saaras v3","asyncapi":"api-reference/asyncapi/stt-sarvam.asyncapi.yaml /v1/stt/sarvam/saaras:v3","href":"/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-websocket"}]},{"group":"Soniox","pages":[{"title":"Speech AI Real-time v5","sidebarTitle":"Speech AI Real-time v5","asyncapi":"api-reference/asyncapi/stt-soniox.asyncapi.yaml /v1/stt/soniox/speech-ai:rt-v5","href":"/api-reference/speech-to-text/soniox/soniox-speech-ai-real-time-v5/speech-ai-real-time-v5-websocket"}]}]}]},{"group":"Context Router (LLM)","icon":"brain","pages":[{"group":"Chat","pages":[{"title":"Create a chat completion","deprecated":null,"version":null,"sidebarTitle":"Chat completions","openapi":"/api-reference/context-router/context-router.oas.yaml post /chat/completions","href":"/api-reference/context-router/chat-completions"}]},{"group":"Responses","pages":[{"title":"Create a response (OpenAI Responses protocol)","deprecated":null,"version":null,"sidebarTitle":"Responses","openapi":"/api-reference/context-router/context-router.oas.yaml post /responses","href":"/api-reference/context-router/responses"}]}]},{"group":"Text to speech","icon":"audio-lines","pages":[{"title":"Text to speech API","sidebarTitle":"Overview","href":"/api-reference/text-to-speech/overview"},{"group":"SLNG hosted","icon":"/images/providers/slng-icon.svg","expanded":true,"pages":[{"group":"Deepgram Aura 2","pages":[{"title":"Aura 2 (English)","sidebarTitle":"English","openapi":"api-reference/openapi/tts-slng.oas.yaml POST /v1/tts/slng/deepgram/aura:2-en","href":"/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-http"},{"title":"Aura 2 (English)","sidebarTitle":"English","asyncapi":"api-reference/asyncapi/tts-slng.asyncapi.yaml /v1/tts/slng/deepgram/aura:2-en","href":"/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-websocket"}]},{"group":"Fish TTS S2.1 Pro","pages":[{"title":"Fish TTS S2.1 Pro","sidebarTitle":"Fish TTS S2.1 Pro","openapi":"api-reference/openapi/tts-slng.oas.yaml POST /v1/tts/slng/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-http"},{"title":"Fish TTS S2.1 Pro","sidebarTitle":"Fish TTS S2.1 Pro","asyncapi":"api-reference/asyncapi/tts-slng.asyncapi.yaml /v1/tts/slng/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-websocket"}]}]},{"group":"Third party","icon":"pyramid","expanded":true,"pages":[{"group":"Cartesia","pages":[{"title":"Cartesia Sonic 3","sidebarTitle":"Sonic 3","asyncapi":"api-reference/asyncapi/tts-cartesia.asyncapi.yaml /v1/tts/cartesia/sonic:3","href":"/api-reference/text-to-speech/cartesia/cartesia-sonic-3/cartesia-sonic-3-websocket"},{"title":"Cartesia Sonic 3.5","sidebarTitle":"Sonic 3.5","asyncapi":"api-reference/asyncapi/tts-cartesia.asyncapi.yaml /v1/tts/cartesia/sonic:3.5","href":"/api-reference/text-to-speech/cartesia/cartesia-sonic-3-5/cartesia-sonic-3-5-websocket"}]},{"group":"Deepgram","pages":[{"title":"Aura 2","sidebarTitle":"Aura 2","openapi":"api-reference/openapi/tts-deepgram.oas.yaml POST /v1/tts/deepgram/aura:2","href":"/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-http"},{"title":"Aura 2","sidebarTitle":"Aura 2","asyncapi":"api-reference/asyncapi/tts-deepgram.asyncapi.yaml /v1/tts/deepgram/aura:2","href":"/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-websocket"}]},{"group":"Fish Audio","pages":[{"title":"Fish Audio S2 Pro","sidebarTitle":"S2 Pro","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:s2-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-http"},{"title":"Fish Audio S2 Pro","sidebarTitle":"S2 Pro","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:s2-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-websocket"},{"title":"Fish Audio S2.1 Pro","sidebarTitle":"S2.1 Pro","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-http"},{"title":"Fish Audio S2.1 Pro","sidebarTitle":"S2.1 Pro","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-websocket"},{"title":"Fish Audio TTS Drama 3","sidebarTitle":"TTS Drama 3","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:drama-3","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-drama-3/fish-audio-tts-drama-3-http"},{"title":"Fish Audio TTS Drama 3","sidebarTitle":"TTS Drama 3","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:drama-3","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-drama-3/fish-audio-tts-drama-3-websocket"}]},{"group":"Gradium","pages":[{"title":"Gradium TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/tts-gradium.oas.yaml POST /v1/tts/gradium/tts:default","href":"/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-http"},{"title":"Gradium TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/tts-gradium.asyncapi.yaml /v1/tts/gradium/tts:default","href":"/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-websocket"}]},{"group":"KugelAudio","pages":[{"title":"Kugel 2","sidebarTitle":"Kugel 2","asyncapi":"api-reference/asyncapi/tts-kugelaudio.asyncapi.yaml /v1/tts/kugelaudio/kugel:2","href":"/api-reference/text-to-speech/kugelaudio/kugel-2/kugel-2-websocket"}]},{"group":"Murf","pages":[{"title":"Murf Falcon","sidebarTitle":"Falcon","asyncapi":"api-reference/asyncapi/tts-murf.asyncapi.yaml /v1/tts/murf/murftts:falcon","href":"/api-reference/text-to-speech/murf/murf-falcon/murf-falcon-websocket"}]},{"group":"Sarvam AI","pages":[{"title":"Bulbul v3","sidebarTitle":"Bulbul v3","openapi":"api-reference/openapi/tts-sarvam.oas.yaml POST /v1/tts/sarvam/bulbul:v3","href":"/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-http"},{"title":"Bulbul v3","sidebarTitle":"Bulbul v3","asyncapi":"api-reference/asyncapi/tts-sarvam.asyncapi.yaml /v1/tts/sarvam/bulbul:v3","href":"/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-websocket"}]},{"group":"Soniox","pages":[{"title":"Soniox TTS v1","sidebarTitle":"TTS v1","openapi":"api-reference/openapi/tts-soniox.oas.yaml POST /v1/tts/soniox/tts-rt:v1","href":"/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-http"},{"title":"Soniox TTS v1","sidebarTitle":"TTS v1","asyncapi":"api-reference/asyncapi/tts-soniox.asyncapi.yaml /v1/tts/soniox/tts-rt:v1","href":"/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-websocket"}]}]},{"group":"Pronunciation dictionaries","pages":[{"title":"Create pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml POST /v1/pronunciation/dictionaries","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/create-pronunciation-dictionary-http"},{"title":"List pronunciation dictionaries","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml GET /v1/pronunciation/dictionaries","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/list-pronunciation-dictionaries-http"},{"title":"Get pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml GET /v1/pronunciation/dictionaries/{name}","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/get-pronunciation-dictionary-http"},{"title":"Delete pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml DELETE /v1/pronunciation/dictionaries/{name}","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/delete-pronunciation-dictionary-http"}]}]},{"group":"Agents","icon":"bot","pages":[{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents","href":"/api-reference/agents/create-agent"},{"title":"Import agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/import","href":"/api-reference/agents/import-agent"},{"title":"List agent regions","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/regions","href":"/api-reference/agents/list-agent-regions"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}","href":"/api-reference/agents/get-agent"},{"title":"Update agent (partial)","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml patch /v1/agents/{agent_id}","href":"/api-reference/agents/update-agent-partial"},{"title":"Replace agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml put /v1/agents/{agent_id}","href":"/api-reference/agents/replace-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml delete /v1/agents/{agent_id}","href":"/api-reference/agents/delete-agent"},{"title":"Download agent config","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/config","href":"/api-reference/agents/download-agent-config"},{"title":"List SIP trunk options","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/sip-trunk-options","href":"/api-reference/agents/list-sip-trunk-options"},{"title":"Duplicate agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-agent"}]},{"group":"Versions","pages":[{"title":"List agent versions","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions","href":"/api-reference/versions/list-agent-versions"},{"title":"Get agent version","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions/{version_number}","href":"/api-reference/versions/get-agent-version"},{"title":"Update version label","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml patch /v1/agents/{agent_id}/versions/{version_number}","href":"/api-reference/versions/update-version-label"},{"title":"Download version config","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions/{version_number}/config","href":"/api-reference/versions/download-version-config"},{"title":"Preview version restore","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/versions/{version_number}/restore/preview","href":"/api-reference/versions/preview-version-restore"},{"title":"Accept version restore","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/versions/{version_number}/restore/accept","href":"/api-reference/versions/accept-version-restore"}]},{"group":"Calls","pages":[{"title":"Dispatch call","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/calls","href":"/api-reference/calls/dispatch-call"},{"title":"List calls","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls","href":"/api-reference/calls/list-calls"},{"title":"Export calls (CSV)","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls/export","href":"/api-reference/calls/export-calls-csv"},{"title":"Get call","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls/{call_id}","href":"/api-reference/calls/get-call"}]},{"group":"Sessions","pages":[{"title":"Create web session","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/web-sessions","href":"/api-reference/sessions/create-web-session"}]},{"group":"Tools","pages":[{"title":"Tools","sidebarTitle":"Tools overview","href":"/api-reference/agents-resources/tools"},{"group":"API Reference","pages":[{"group":"API Reference","pages":[{"title":"List Tools","description":"List your organisation's live tools. Each item carries its latest published version and a config_valid flag. Filter by name and page with limit and offset.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools","href":"/api-reference/list-tools"},{"title":"Create Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools","href":"/api-reference/create-tool"},{"title":"Get Tool","description":"Return one tool visible to your organisation with its current publish gates. Custom Code responses include code_src, dependencies, declared secrets, and the introspected argument schema. Curated tools are returned with source set to curated and are read-only. A tool owned by another organisation returns 404.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}","href":"/api-reference/get-tool"},{"title":"Delete Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml delete /v1/agents/tools/{tool_id}","href":"/api-reference/delete-tool"},{"title":"Update Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml patch /v1/agents/tools/{tool_id}","href":"/api-reference/update-tool"},{"title":"Introspect Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/introspect","href":"/api-reference/introspect-tool"},{"title":"Run Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/run","href":"/api-reference/run-tool"},{"title":"Publish Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/publish","href":"/api-reference/publish-tool"},{"title":"Duplicate Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/duplicate","href":"/api-reference/duplicate-tool"},{"title":"List Tool Versions","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}/versions","href":"/api-reference/list-tool-versions"},{"title":"Get Tool Version","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}/versions/{version_number}","href":"/api-reference/get-tool-version"},{"title":"Preview Tool Attachment Upgrade","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-preview/{to_version}","href":"/api-reference/preview-tool-attachment-upgrade"},{"title":"Accept Tool Attachment Upgrade","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-accept","href":"/api-reference/accept-tool-attachment-upgrade"}]}]}]},{"group":"MCP servers","pages":[{"title":"MCP servers","sidebarTitle":"MCP servers overview","href":"/api-reference/agents-resources/mcp-servers"},{"group":"API Reference","pages":[{"group":"API Reference","pages":[{"title":"List MCP Servers","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml get /v1/agents/mcp-servers","href":"/api-reference/list-mcp-servers"},{"title":"Create MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml post /v1/agents/mcp-servers","href":"/api-reference/create-mcp-server"},{"title":"Get MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml get /v1/agents/mcp-servers/{server_id}","href":"/api-reference/get-mcp-server"},{"title":"Delete MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml delete /v1/agents/mcp-servers/{server_id}","href":"/api-reference/delete-mcp-server"},{"title":"Update MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml patch /v1/agents/mcp-servers/{server_id}","href":"/api-reference/update-mcp-server"},{"title":"Connect MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml post /v1/agents/mcp-servers/{server_id}/connect","href":"/api-reference/connect-mcp-server"}]}]}]},{"group":"Vault","pages":[{"group":"API Reference","pages":[{"title":"List Vault","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets","href":"/api-reference/list-vault"},{"title":"Create Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml post /v1/agents/secrets","href":"/api-reference/create-vault-entry"},{"title":"Get Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets/{name}","href":"/api-reference/get-vault-entry"},{"title":"Delete Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml delete /v1/agents/secrets/{name}","href":"/api-reference/delete-vault-entry"},{"title":"Rotate Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml patch /v1/agents/secrets/{name}","href":"/api-reference/rotate-vault-entry"},{"title":"List Vault References","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets/{name}/references","href":"/api-reference/list-vault-references"},{"title":"Update Vault Description","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml patch /v1/agents/secrets/{name}/description","href":"/api-reference/update-vault-description"}]}]},{"group":"Client models","pages":[{"title":"List client models","sidebarTitle":"List","openapi":"api-reference/agents/client-models.oas.yaml GET /v1/agents/client-models","href":"/api-reference/agents-resources/client-models/list"},{"title":"Create a client model","sidebarTitle":"Create","openapi":"api-reference/agents/client-models.oas.yaml POST /v1/agents/client-models","href":"/api-reference/agents-resources/client-models/create"},{"title":"Get a client model","sidebarTitle":"Get","openapi":"api-reference/agents/client-models.oas.yaml GET /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/get"},{"title":"Update a client model","sidebarTitle":"Update","openapi":"api-reference/agents/client-models.oas.yaml PUT /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/update"},{"title":"Delete a client model","sidebarTitle":"Delete","openapi":"api-reference/agents/client-models.oas.yaml DELETE /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/delete"}]}]},{"group":"Unified API","icon":"blend","pages":[{"group":"Unified STT","pages":[{"title":"Unified STT","sidebarTitle":"Unified STT","openapi":"api-reference/openapi/bridges-unmute.oas.yaml POST /v1/bridges/unmute/stt/{model_variant}","href":"/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-http"},{"title":"Unified STT","sidebarTitle":"Unified STT","asyncapi":"api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/stt/{model_variant}","href":"/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-websocket"}]},{"group":"Unified TTS","pages":[{"title":"Unified TTS","sidebarTitle":"Unified TTS","openapi":"api-reference/openapi/bridges-unmute.oas.yaml POST /v1/bridges/unmute/tts/{model_variant}","href":"/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-http"},{"title":"Unified TTS","sidebarTitle":"Unified TTS","asyncapi":"api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/tts/{model_variant}","href":"/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-websocket"}]}]},{"group":"Third party Integrations","icon":"cable","hidden":true,"pages":[{"group":"Cognigy","icon":"/images/providers/cognigy.svg","hidden":true,"pages":[{"title":"Cognigy STT","sidebarTitle":"STT","openapi":"api-reference/openapi/bridges-cognigy.oas.yaml POST /v1/bridges/cognigy/stt/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-stt-bridge/cognigy-stt-bridge-http"},{"title":"Cognigy STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/bridges-cognigy.asyncapi.yaml /v1/bridges/cognigy/stt/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-stt-bridge/cognigy-stt-bridge-websocket"},{"title":"Cognigy TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/bridges-cognigy.oas.yaml POST /v1/bridges/cognigy/tts/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-tts-bridge/cognigy-tts-bridge-http"},{"title":"Cognigy TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/bridges-cognigy.asyncapi.yaml /v1/bridges/cognigy/tts/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-tts-bridge/cognigy-tts-bridge-websocket"}]},{"group":"Jambonz","icon":"/images/providers/jambonz.svg","hidden":true,"pages":[{"title":"Jambonz STT","sidebarTitle":"STT","openapi":"api-reference/openapi/bridges-jambonz.oas.yaml POST /v1/bridges/jambonz/stt/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-stt-bridge/jambonz-stt-bridge-http"},{"title":"Jambonz STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/bridges-jambonz.asyncapi.yaml /v1/bridges/jambonz/stt/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-stt-bridge/jambonz-stt-bridge-websocket"},{"title":"Jambonz TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/bridges-jambonz.oas.yaml POST /v1/bridges/jambonz/tts/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-tts-bridge/jambonz-tts-bridge-http"},{"title":"Jambonz TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/bridges-jambonz.asyncapi.yaml /v1/bridges/jambonz/tts/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-tts-bridge/jambonz-tts-bridge-websocket"}]}]},{"group":"Metadata API","icon":"database","pages":[{"group":"Catalog","pages":[{"title":"List models","openapi":"api-reference/catalog/catalog.oas.yaml GET /v1/catalog/models","href":"/api-reference/catalog/list-models"},{"title":"Get model","openapi":"api-reference/catalog/catalog.oas.yaml GET /v1/catalog/models/{model_code}","href":"/api-reference/catalog/get-model"}]},{"group":"Account","pages":[{"title":"Get current account","sidebarTitle":"Get current account","openapi":"api-reference/account/me.oas.json GET /v1/me","href":"/api-reference/account/me"}]}]},{"title":"Rate limits","href":"/api-reference/rate-limits"},{"title":"Error codes","href":"/api-reference/error-codes"}]},{"tab":"Models","icon":"cpu","pages":[{"title":"Models","href":"/models/catalog/all-models"}]},{"tab":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/unmute"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Create Tool - SLNG: the execution layer for voice - SLNG Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}