curl --request POST \ --url https://api.conduit.ai/v1/custom-tools \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o", "name": "lookup-order-status", "description": "Look up the fulfillment status of an order by id.", "language": "python", "code": "def main(**params):\n order_id = params[\"order_id\"]\n return {\"message\": f\"Order {order_id} is shipped\"}", "parameters": { "order_id": { "type": "string", "required": true, "description": "The order id to look up." } }, "execution_message_description": "Looking up order status", "enable_globally": false}'
import requests
url = "https://api.conduit.ai/v1/custom-tools"
payload = {
"workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o",
"name": "lookup-order-status",
"description": "Look up the fulfillment status of an order by id.",
"language": "python",
"code": "def main(**params):
order_id = params[\"order_id\"]
return {\"message\": f\"Order {order_id} is shipped\"}",
"parameters": { "order_id": {
"type": "string",
"required": True,
"description": "The order id to look up."
} },
"execution_message_description": "Looking up order status",
"enable_globally": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: 'j57demo8f8x7c9v0n2q4r6t8y1u3i5o',
name: 'lookup-order-status',
description: 'Look up the fulfillment status of an order by id.',
language: 'python',
code: 'def main(**params):\n order_id = params["order_id"]\n return {"message": f"Order {order_id} is shipped"}',
parameters: {
order_id: {type: 'string', required: true, description: 'The order id to look up.'}
},
execution_message_description: 'Looking up order status',
enable_globally: false
})
};
fetch('https://api.conduit.ai/v1/custom-tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conduit.ai/v1/custom-tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspace_id' => 'j57demo8f8x7c9v0n2q4r6t8y1u3i5o',
'name' => 'lookup-order-status',
'description' => 'Look up the fulfillment status of an order by id.',
'language' => 'python',
'code' => 'def main(**params):
order_id = params["order_id"]
return {"message": f"Order {order_id} is shipped"}',
'parameters' => [
'order_id' => [
'type' => 'string',
'required' => true,
'description' => 'The order id to look up.'
]
],
'execution_message_description' => 'Looking up order status',
'enable_globally' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.conduit.ai/v1/custom-tools"
payload := strings.NewReader("{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://api.conduit.ai/v1/custom-tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/custom-tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}"
response = http.request(request)
puts response.read_body
{ "data": { "id": "kg77c0dy0mgdpzmqz6tesry8w184002s", "workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o", "name": "lookup-order-status", "description": "Look up the fulfillment status of an order by id.", "language": "python", "code": "def main(**params):\n order_id = params[\"order_id\"]\n # ... fetch status ...\n return {\n \"message\": f\"Order {order_id} is shipped\",\n \"rawData\": {\"status\": \"shipped\"},\n }", "parameters": { "order_id": { "type": "string", "required": true, "description": "The order id to look up." } }, "execution_message_description": "Looking up order status", "enable_globally": false, "validated": true, "version": 1, "created_at": "2026-04-01T17:22:10.000Z" }}
{
"error": "Invalid workspace id"
}
{
"error": "Invalid workspace id"
}
{
"error": "Invalid workspace id"
}
{
"error": "Invalid workspace id"
}
{
"error": "Invalid workspace id"
}
Custom tools
Create custom tool
Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.
POST
/
v1
/
custom-tools
Create custom tool
curl --request POST \ --url https://api.conduit.ai/v1/custom-tools \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o", "name": "lookup-order-status", "description": "Look up the fulfillment status of an order by id.", "language": "python", "code": "def main(**params):\n order_id = params[\"order_id\"]\n return {\"message\": f\"Order {order_id} is shipped\"}", "parameters": { "order_id": { "type": "string", "required": true, "description": "The order id to look up." } }, "execution_message_description": "Looking up order status", "enable_globally": false}'
import requests
url = "https://api.conduit.ai/v1/custom-tools"
payload = {
"workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o",
"name": "lookup-order-status",
"description": "Look up the fulfillment status of an order by id.",
"language": "python",
"code": "def main(**params):
order_id = params[\"order_id\"]
return {\"message\": f\"Order {order_id} is shipped\"}",
"parameters": { "order_id": {
"type": "string",
"required": True,
"description": "The order id to look up."
} },
"execution_message_description": "Looking up order status",
"enable_globally": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: 'j57demo8f8x7c9v0n2q4r6t8y1u3i5o',
name: 'lookup-order-status',
description: 'Look up the fulfillment status of an order by id.',
language: 'python',
code: 'def main(**params):\n order_id = params["order_id"]\n return {"message": f"Order {order_id} is shipped"}',
parameters: {
order_id: {type: 'string', required: true, description: 'The order id to look up.'}
},
execution_message_description: 'Looking up order status',
enable_globally: false
})
};
fetch('https://api.conduit.ai/v1/custom-tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conduit.ai/v1/custom-tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspace_id' => 'j57demo8f8x7c9v0n2q4r6t8y1u3i5o',
'name' => 'lookup-order-status',
'description' => 'Look up the fulfillment status of an order by id.',
'language' => 'python',
'code' => 'def main(**params):
order_id = params["order_id"]
return {"message": f"Order {order_id} is shipped"}',
'parameters' => [
'order_id' => [
'type' => 'string',
'required' => true,
'description' => 'The order id to look up.'
]
],
'execution_message_description' => 'Looking up order status',
'enable_globally' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.conduit.ai/v1/custom-tools"
payload := strings.NewReader("{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://api.conduit.ai/v1/custom-tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/custom-tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspace_id\": \"j57demo8f8x7c9v0n2q4r6t8y1u3i5o\",\n \"name\": \"lookup-order-status\",\n \"description\": \"Look up the fulfillment status of an order by id.\",\n \"language\": \"python\",\n \"code\": \"def main(**params):\\n order_id = params[\\\"order_id\\\"]\\n return {\\\"message\\\": f\\\"Order {order_id} is shipped\\\"}\",\n \"parameters\": {\n \"order_id\": {\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"The order id to look up.\"\n }\n },\n \"execution_message_description\": \"Looking up order status\",\n \"enable_globally\": false\n}"
response = http.request(request)
puts response.read_body
{ "data": { "id": "kg77c0dy0mgdpzmqz6tesry8w184002s", "workspace_id": "j57demo8f8x7c9v0n2q4r6t8y1u3i5o", "name": "lookup-order-status", "description": "Look up the fulfillment status of an order by id.", "language": "python", "code": "def main(**params):\n order_id = params[\"order_id\"]\n # ... fetch status ...\n return {\n \"message\": f\"Order {order_id} is shipped\",\n \"rawData\": {\"status\": \"shipped\"},\n }", "parameters": { "order_id": { "type": "string", "required": true, "description": "The order id to look up." } }, "execution_message_description": "Looking up order status", "enable_globally": false, "validated": true, "version": 1, "created_at": "2026-04-01T17:22:10.000Z" }}
Unique tool name within the workspace. Lowercase kebab-case (e.g. lookup-order-status), at most 64 characters. This is how the agent references the tool.
The tool's source code. Must define a single entrypoint named main.
Python: def main(**params): — parameters arrive as keyword args. Return a dict containing a string message key, optionally a rawData key with structured data.
JavaScript: async function main(params) { ... } — parameters arrive as a single object. Return an object containing a string message key, optionally a rawData key.
Writes statically validate that the code defines main and includes a return statement; runtime execution validates the returned object.
Standard library modules are always importable. A curated set of third-party packages installs automatically on first import. Query GET /v1/custom-tools/runtimes for the exact signature, return contract, and available dependencies per language.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Conduit","colors":{"primary":"#C65F39","light":"#E07B4F","dark":"#A04E2E"},"logo":{"light":"https://mintcdn.com/conduit-58d85182/W75MZFEdXnjdpqg7/logo/light.svg?fit=max\u0026auto=format\u0026n=W75MZFEdXnjdpqg7\u0026q=85\u0026s=721a28dde7749c71ceae1dfe44e9f304","dark":"https://mintcdn.com/conduit-58d85182/W75MZFEdXnjdpqg7/logo/dark.svg?fit=max\u0026auto=format\u0026n=W75MZFEdXnjdpqg7\u0026q=85\u0026s=0ac29ae5f6c70541d5abff5a92d01f52"},"favicon":"https://www.conduit.ai/icon.png","navbar":{"links":[{"href":"mailto:support@conduit.ai","label":"Support"}],"primary":{"type":"button","label":"Book a Demo","href":"https://forms.default.com/717549"}},"footer":{"socials":{"website":"https://conduit.ai"}},"banner":{"content":"Migrating from Conduit V2? Read the [V3 migration guide](/get-started/v3-migration).","dismissible":true,"type":"info"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"conduit-58d85182","hasAudioNarration":false,"actualSubdomain":"conduit-58d85182","customDomains":["docs.conduit.ai"],"gitSource":{"type":"github","owner":"host-ai-app","repo":"project","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af659a7344e61d1e8a9136f","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"API Reference","count":167},{"language":"default","tag":"Guides","count":147},{"language":"default","tag":"Portals","count":79},{"language":"default","tag":"Setup","count":67},{"language":"default","tag":"Build your agent","count":26},{"language":"default","tag":"Inbox","count":23},{"language":"default","tag":"Channels","count":23},{"language":"default","tag":"Workflows","count":16},{"language":"default","tag":"Agents","count":15},{"language":"default","tag":"Knowledge base","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@conduit.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/custom-tools/create","slug":"/api-reference/custom-tools/create","pageMetadata":{"title":"Create custom tool","description":"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.","openapi":"POST /v1/custom-tools","href":"/api-reference/custom-tools/create"},"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: \"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\"\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 custom tool","description":"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.","openapi":"POST /v1/custom-tools","href":"/api-reference/custom-tools/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createCustomTool","security":["02bbdb4e-1c39-408b-8dba-aea250f8b135"],"tags":["custom_tools"],"summary":"Create custom tool","description":"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.","requestBody":"631652c7-8e0d-4027-82a8-97312578c516","responses":{"201":"a5e3a0af-ad64-4958-835f-6cb13f92ea1d","400":"238bce63-6960-415b-bb12-fb9d8661dd94","401":"7c9a8ccd-32e5-4b5b-8ea6-6b2bf7c0b9f8","403":"2beece11-d2f7-4957-92d1-8af484b73b40","409":"f5fecc2e-1f6d-43e7-9239-e7783a9f171f","429":"3dc9daf3-0db8-457c-803e-e6f7e182de57"},"method":"post","type":"path","servers":["2d480242-2eb1-4254-8229-406b50cdb683"],"path":"/v1/custom-tools","baseUrlOptions":["https://api.conduit.ai"],"title":"Create custom tool","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string","isRequired":true,"uniqueKey":"workspace_id","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Unique tool name within the workspace. Lowercase kebab-case (e.g. `lookup-order-status`), at most 64 characters. This is how the agent references the tool.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"language":{"type":"string","enum":["python","javascript"],"description":"Runtime the tool's code is executed in. Determines the entrypoint signature and which dependencies are available (see GET /v1/custom-tools/runtimes).","isRequired":true,"uniqueKey":"language","typeLabel":"enum\u003cstring>"},"code":{"type":"string","minLength":1,"description":"The tool's source code. Must define a single entrypoint named `main`.\n\nPython: `def main(**params):` — parameters arrive as keyword args. Return a dict containing a string `message` key, optionally a `rawData` key with structured data.\n\nJavaScript: `async function main(params) { ... }` — parameters arrive as a single object. Return an object containing a string `message` key, optionally a `rawData` key.\n\nWrites statically validate that the code defines `main` and includes a return statement; runtime execution validates the returned object.\n\nStandard library modules are always importable. A curated set of third-party packages installs automatically on first import. Query GET /v1/custom-tools/runtimes for the exact signature, return contract, and available dependencies per language.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"description":{"type":"string","maxLength":1024,"uniqueKey":"description","typeLabel":"string"},"parameters":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"JSON-schema-style parameter type, e.g. `string`, `number`, `boolean`, `object`, `array`.","isRequired":true,"uniqueKey":"parameters.additionalProperties.type","typeLabel":"string"},"required":{"type":"boolean","description":"Whether the agent must supply this parameter.","isRequired":true,"uniqueKey":"parameters.additionalProperties.required","typeLabel":"boolean"},"description":{"type":"string","description":"What this parameter is. Shown to the model to help it fill the value correctly.","isRequired":true,"uniqueKey":"parameters.additionalProperties.description","typeLabel":"string"},"execution_message_description":{"type":"string","description":"Optional per-parameter note surfaced while the tool is running.","uniqueKey":"parameters.additionalProperties.execution_message_description","typeLabel":"string"},"enum_values":{"type":"array","items":{"type":"string","uniqueKey":"parameters.additionalProperties.enum_values.items.[INDEX]","typeLabel":"string"},"description":"Optional closed set of allowed string values.","uniqueKey":"parameters.additionalProperties.enum_values","typeLabel":"string[]"}},"required":["type","required","description"],"uniqueKey":"parameters.additionalProperties","typeLabel":"object"},"description":"Parameters the tool accepts, keyed by parameter name. Each becomes a key in the `params` object/dict passed to `main`.","uniqueKey":"parameters","typeLabel":"object"},"execution_message_description":{"type":"string","description":"Short status line shown to the user while the tool runs, e.g. `Looking up order status`.","uniqueKey":"execution_message_description","typeLabel":"string"},"enable_globally":{"type":"boolean","description":"When true, the tool is available to every agent in the workspace without per-agent enablement.","uniqueKey":"enable_globally","typeLabel":"boolean"}},"required":["workspace_id","name","language","code"],"description":"Request body for creating a custom code tool. Requires a token with write access.","example":{"workspace_id":"j57demo8f8x7c9v0n2q4r6t8y1u3i5o","name":"lookup-order-status","description":"Look up the fulfillment status of an order by id.","language":"python","code":"def main(**params):\n order_id = params[\"order_id\"]\n return {\"message\": f\"Order {order_id} is shipped\"}","parameters":{"order_id":{"type":"string","required":true,"description":"The order id to look up."}},"execution_message_description":"Looking up order status","enable_globally":false},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"workspace_id":"j57demo8f8x7c9v0n2q4r6t8y1u3i5o","name":"lookup-order-status","description":"Look up the fulfillment status of an order by id.","language":"python","code":"def main(**params):\n order_id = params[\"order_id\"]\n return {\"message\": f\"Order {order_id} is shipped\"}","parameters":{"order_id":{"type":"string","required":true,"description":"The order id to look up."}},"execution_message_description":"Looking up order status","enable_globally":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"a5e3a0af-ad64-4958-835f-6cb13f92ea1d":{"description":"Custom tool created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"workspace_id":{"type":"string","isRequired":true,"uniqueKey":"data.workspace_id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"description":{"type":"string","isRequired":true,"uniqueKey":"data.description","typeLabel":"string"},"language":{"type":"string","enum":["python","javascript"],"description":"Runtime the tool's code is executed in. Determines the entrypoint signature and which dependencies are available (see GET /v1/custom-tools/runtimes).","isRequired":true,"uniqueKey":"data.language","typeLabel":"enum\u003cstring>"},"code":{"type":"string","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"},"parameters":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"JSON-schema-style parameter type, e.g. `string`, `number`, `boolean`, `object`, `array`.","isRequired":true,"uniqueKey":"data.parameters.additionalProperties.type","typeLabel":"string"},"required":{"type":"boolean","description":"Whether the agent must supply this parameter.","isRequired":true,"uniqueKey":"data.parameters.additionalProperties.required","typeLabel":"boolean"},"description":{"type":"string","description":"What this parameter is. Shown to the model to help it fill the value correctly.","isRequired":true,"uniqueKey":"data.parameters.additionalProperties.description","typeLabel":"string"},"execution_message_description":{"type":"string","description":"Optional per-parameter note surfaced while the tool is running.","uniqueKey":"data.parameters.additionalProperties.execution_message_description","typeLabel":"string"},"enum_values":{"type":"array","items":{"type":"string","uniqueKey":"data.parameters.additionalProperties.enum_values.items.[INDEX]","typeLabel":"string"},"description":"Optional closed set of allowed string values.","uniqueKey":"data.parameters.additionalProperties.enum_values","typeLabel":"string[]"}},"required":["type","required","description"],"uniqueKey":"data.parameters.additionalProperties","typeLabel":"object"},"description":"Parameters the tool accepts, keyed by parameter name. Each becomes a key in the `params` object/dict passed to `main`.","isRequired":true,"uniqueKey":"data.parameters","typeLabel":"object"},"execution_message_description":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.execution_message_description.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.execution_message_description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.execution_message_description","typeLabel":"string | null"},"enable_globally":{"type":"boolean","isRequired":true,"uniqueKey":"data.enable_globally","typeLabel":"boolean"},"validated":{"type":"boolean","isRequired":true,"uniqueKey":"data.validated","typeLabel":"boolean"},"version":{"type":"number","isRequired":true,"uniqueKey":"data.version","typeLabel":"number"},"created_at":{"type":"string","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string"}},"required":["id","workspace_id","name","description","language","code","parameters","execution_message_description","enable_globally","validated","version","created_at"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"description":"Single custom code tool response.","example":{"data":{"id":"kg77c0dy0mgdpzmqz6tesry8w184002s","workspace_id":"j57demo8f8x7c9v0n2q4r6t8y1u3i5o","name":"lookup-order-status","description":"Look up the fulfillment status of an order by id.","language":"python","code":"def main(**params):\n order_id = params[\"order_id\"]\n # ... fetch status ...\n return {\n \"message\": f\"Order {order_id} is shipped\",\n \"rawData\": {\"status\": \"shipped\"},\n }","parameters":{"order_id":{"type":"string","required":true,"description":"The order id to look up."}},"execution_message_description":"Looking up order status","enable_globally":false,"validated":true,"version":1,"created_at":"2026-04-01T17:22:10.000Z"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"kg77c0dy0mgdpzmqz6tesry8w184002s","workspace_id":"j57demo8f8x7c9v0n2q4r6t8y1u3i5o","name":"lookup-order-status","description":"Look up the fulfillment status of an order by id.","language":"python","code":"def main(**params):\n order_id = params[\"order_id\"]\n # ... fetch status ...\n return {\n \"message\": f\"Order {order_id} is shipped\",\n \"rawData\": {\"status\": \"shipped\"},\n }","parameters":{"order_id":{"type":"string","required":true,"description":"The order id to look up."}},"execution_message_description":"Looking up order status","enable_globally":false,"validated":true,"version":1,"created_at":"2026-04-01T17:22:10.000Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"238bce63-6960-415b-bb12-fb9d8661dd94":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Standard error response.","example":{"error":"Invalid workspace id"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid workspace id"}}},"exampleType":"generated"}},"exampleType":"generated"},"7c9a8ccd-32e5-4b5b-8ea6-6b2bf7c0b9f8":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Standard error response.","example":{"error":"Invalid workspace id"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid workspace id"}}},"exampleType":"generated"}},"exampleType":"generated"},"2beece11-d2f7-4957-92d1-8af484b73b40":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Standard error response.","example":{"error":"Invalid workspace id"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid workspace id"}}},"exampleType":"generated"}},"exampleType":"generated"},"f5fecc2e-1f6d-43e7-9239-e7783a9f171f":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Standard error response.","example":{"error":"Invalid workspace id"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid workspace id"}}},"exampleType":"generated"}},"exampleType":"generated"},"3dc9daf3-0db8-457c-803e-e6f7e182de57":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Standard error response.","example":{"error":"Invalid workspace id"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid workspace id"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"02bbdb4e-1c39-408b-8dba-aea250f8b135":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"Conduit API token. Use `Authorization: Bearer \u003ctoken>`. Read/write endpoints require a token with write access.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"2d480242-2eb1-4254-8229-406b50cdb683":{"url":"https://api.conduit.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"Conduit API token. Use `Authorization: Bearer \u003ctoken>`. Read/write endpoints require a token with write access.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Conduit API token. Use `Authorization: Bearer \u003ctoken>`. Read/write endpoints require a token with write access.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"conduit-58d85182","siteName":"Conduit","title":"Create custom tool - Conduit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T23:57:48.606Z","originalFileLocation":"api-reference/custom-tools/create.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=\"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Conduit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://www.conduit.ai/icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://www.conduit.ai/icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://www.conduit.ai/icon.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://www.conduit.ai/icon.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create custom tool - Conduit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Conduit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.conduit.ai/api-reference/custom-tools/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://conduit-58d85182.mintlify.site/_mintlify/api/og/v2?division=Custom+tools\u0026amp;title=Create+custom+tool\u0026amp;description=Creates+a+custom+code+tool+from+Python+or+JavaScript+source.+Requires+a+token+with+write+access.+See+List+Custom+Tool+Runtimes+for+the+code+contract.\u0026amp;theme=c0ed74c028e0db89499529f4\u0026amp;signature=d70ad6cf4c6b8fcc6c54c9d6d85405b567b4de889326f7036abad0d3e4cb79ff\">\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 custom tool - Conduit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://conduit-58d85182.mintlify.site/_mintlify/api/og/v2?division=Custom+tools\u0026amp;title=Create+custom+tool\u0026amp;description=Creates+a+custom+code+tool+from+Python+or+JavaScript+source.+Requires+a+token+with+write+access.+See+List+Custom+Tool+Runtimes+for+the+code+contract.\u0026amp;theme=c0ed74c028e0db89499529f4\u0026amp;signature=d70ad6cf4c6b8fcc6c54c9d6d85405b567b4de889326f7036abad0d3e4cb79ff\">\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/conduit-58d85182/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Conduit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C65F39\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.conduit.ai/api-reference/custom-tools/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/custom-tools/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.conduit.ai/#organization\",\"name\":\"Conduit\",\"url\":\"https://docs.conduit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/conduit-58d85182/W75MZFEdXnjdpqg7/logo/light.svg?fit=max\u0026auto=format\u0026n=W75MZFEdXnjdpqg7\u0026q=85\u0026s=721a28dde7749c71ceae1dfe44e9f304\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.conduit.ai#website\",\"name\":\"Conduit\",\"url\":\"https://docs.conduit.ai\",\"publisher\":{\"@id\":\"https://docs.conduit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.conduit.ai/api-reference/custom-tools/create#webpage\",\"url\":\"https://docs.conduit.ai/api-reference/custom-tools/create\",\"name\":\"Create custom tool\",\"description\":\"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\",\"dateModified\":\"2026-10-15T23:57:48.606Z\",\"isPartOf\":{\"@id\":\"https://docs.conduit.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.conduit.ai/api-reference/custom-tools/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.conduit.ai/api-reference/custom-tools/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Custom tools\",\"item\":\"https://docs.conduit.ai/api-reference/custom-tools/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create custom tool\",\"item\":\"https://docs.conduit.ai/api-reference/custom-tools/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.conduit.ai/api-reference/custom-tools/create#apireference\",\"headline\":\"Create custom tool\",\"name\":\"Create custom tool\",\"description\":\"Creates a custom code tool from Python or JavaScript source. Requires a token with write access. See List Custom Tool Runtimes for the code contract.\",\"url\":\"https://docs.conduit.ai/api-reference/custom-tools/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.conduit.ai/api-reference/custom-tools/create#webpage\"},\"dateModified\":\"2026-10-15T23:57:48.606Z\",\"publisher\":{\"@id\":\"https://docs.conduit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.conduit.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Conduit\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Conduit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/custom-tools/create.md","siteName":"Conduit","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Getting started","pages":[{"title":"Conduit API","href":"/api-reference/introduction"},{"title":"Rate limits","href":"/rate-limits"}]},{"group":"Workspaces","pages":[{"title":"List workspaces","openapi":"GET /v1/workspaces","href":"/api-reference/workspaces/list"},{"title":"Get workspace settings","openapi":"GET /v1/workspaces/{id}/settings","href":"/api-reference/workspaces/settings"},{"title":"List workspace roles","openapi":"GET /v1/workspaces/{id}/roles","href":"/api-reference/workspaces/roles"},{"title":"List workspace users","openapi":"GET /v1/workspaces/{id}/users","href":"/api-reference/workspaces/list-users"},{"title":"Search workspace users","openapi":"GET /v1/workspaces/{id}/users/search","href":"/api-reference/workspaces/search-users"},{"title":"List workspace senders","openapi":"GET /v1/workspaces/{id}/senders","href":"/api-reference/workspaces/senders"},{"title":"List workspace WhatsApp templates","openapi":"GET /v1/workspaces/{id}/whatsapp-templates","href":"/api-reference/workspaces/whatsapp-templates"}]},{"group":"Contacts","pages":[{"title":"List contacts","openapi":"GET /v1/contacts","href":"/api-reference/contacts/list"},{"title":"Get contact","openapi":"GET /v1/contacts/{id}","href":"/api-reference/contacts/get"},{"title":"Search contacts","openapi":"GET /v1/contacts/search","href":"/api-reference/contacts/search"},{"title":"List contact calls","openapi":"GET /v1/contacts/{id}/calls","href":"/api-reference/contacts/calls"},{"title":"List contact tickets","openapi":"GET /v1/contacts/{id}/tickets","href":"/api-reference/contacts/tickets"},{"title":"List contact helpdesk tickets","openapi":"GET /v1/contacts/{id}/helpdesk-tickets","href":"/api-reference/contacts/helpdesk-tickets"},{"title":"List contact appointments","openapi":"GET /v1/contacts/{id}/appointments","href":"/api-reference/contacts/appointments"},{"title":"List contact reservations","openapi":"GET /v1/contacts/{id}/reservations","href":"/api-reference/contacts/reservations"},{"title":"Send contact message","openapi":"POST /v1/contacts/{id}/messages","href":"/api-reference/contacts/send-message"}]},{"group":"Conversations","pages":[{"title":"List conversations","openapi":"GET /v1/conversations","href":"/api-reference/conversations/list"},{"title":"Get conversation","openapi":"GET /v1/conversations/lookup","href":"/api-reference/conversations/get"},{"title":"Search conversations","openapi":"GET /v1/conversations/search","href":"/api-reference/conversations/search"},{"title":"List conversation messages","openapi":"GET /v1/conversations/{id}/messages","href":"/api-reference/conversations/messages"},{"title":"Send conversation message","openapi":"POST /v1/conversations/{id}/messages","href":"/api-reference/conversations/send-message"}]},{"group":"Tickets","pages":[{"title":"List tickets","openapi":"GET /v1/tickets","href":"/api-reference/tickets/list"},{"title":"Get ticket","openapi":"GET /v1/tickets/{id}","href":"/api-reference/tickets/get"},{"title":"Search tickets","openapi":"GET /v1/tickets/search","href":"/api-reference/tickets/search"},{"title":"List ticket messages","openapi":"GET /v1/tickets/{id}/messages","href":"/api-reference/tickets/messages"},{"title":"Send ticket message","openapi":"POST /v1/tickets/{id}/messages","href":"/api-reference/tickets/send-message"},{"title":"Resolve ticket","openapi":"POST /v1/tickets/{id}/resolve","href":"/api-reference/tickets/resolve"},{"title":"Close ticket","openapi":"POST /v1/tickets/{id}/close","href":"/api-reference/tickets/close"},{"title":"Reopen ticket","openapi":"POST /v1/tickets/{id}/reopen","href":"/api-reference/tickets/reopen"},{"title":"List ticket notes","openapi":"GET /v1/tickets/{id}/notes","href":"/api-reference/tickets/list-notes"},{"title":"Create ticket note","openapi":"POST /v1/tickets/{id}/notes","href":"/api-reference/tickets/create-note"},{"title":"Get ticket note","openapi":"GET /v1/tickets/{id}/notes/{note_id}","href":"/api-reference/tickets/get-note"},{"title":"Update ticket note","openapi":"PATCH /v1/tickets/{id}/notes/{note_id}","href":"/api-reference/tickets/update-note"},{"title":"Delete ticket note","openapi":"DELETE /v1/tickets/{id}/notes/{note_id}","href":"/api-reference/tickets/delete-note"}]},{"group":"Tasks","pages":[{"title":"Tasks overview","href":"/api-reference/tasks/overview"},{"title":"List tasks","openapi":"GET /v1/tasks","href":"/api-reference/tasks/list"},{"title":"Get task","openapi":"GET /v1/tasks/{id}","href":"/api-reference/tasks/get"},{"title":"Create task","openapi":"POST /v1/tasks","href":"/api-reference/tasks/create"},{"title":"Update task","openapi":"PATCH /v1/tasks/{id}","href":"/api-reference/tasks/update"},{"title":"Delete task","openapi":"DELETE /v1/tasks/{id}","href":"/api-reference/tasks/delete"},{"title":"List task statuses","openapi":"GET /v1/task-statuses","href":"/api-reference/tasks/list-statuses"},{"title":"List task categories","openapi":"GET /v1/task-categories","href":"/api-reference/tasks/list-categories"}]},{"group":"Helpdesk tickets","pages":[{"title":"List helpdesk tickets","openapi":"GET /v1/helpdesk-tickets","href":"/api-reference/helpdesk-tickets/list"},{"title":"Get helpdesk ticket","openapi":"GET /v1/helpdesk-tickets/{id}","href":"/api-reference/helpdesk-tickets/get"}]},{"group":"Calls","pages":[{"title":"List calls","openapi":"GET /v1/calls","href":"/api-reference/calls/list"},{"title":"Get call","openapi":"GET /v1/calls/{id}","href":"/api-reference/calls/get"}]},{"group":"Reservations","pages":[{"title":"List reservations","openapi":"GET /v1/reservations","href":"/api-reference/reservations/list"},{"title":"Get reservation","openapi":"GET /v1/reservations/{id}","href":"/api-reference/reservations/get"}]},{"group":"Appointments","pages":[{"title":"List appointments","openapi":"GET /v1/appointments","href":"/api-reference/appointments/list"},{"title":"Get appointment","openapi":"GET /v1/appointments/{id}","href":"/api-reference/appointments/get"}]},{"group":"Custom attributes","pages":[{"title":"List custom attribute definitions","openapi":"GET /v1/custom-attributes","href":"/api-reference/custom-attributes/list"},{"title":"Get contact custom attributes","openapi":"GET /v1/contacts/{id}/custom-attributes","href":"/api-reference/custom-attributes/get-contact"},{"title":"Update contact custom attributes","openapi":"PATCH /v1/contacts/{id}/custom-attributes","href":"/api-reference/custom-attributes/update-contact"}]},{"group":"Knowledge base","pages":[{"title":"Search knowledge base","openapi":"POST /v1/kb/search","href":"/api-reference/knowledge/search"},{"title":"Search knowledge nodes","openapi":"POST /v1/kb/nodes/search","href":"/api-reference/knowledge/search-nodes"},{"title":"List knowledge nodes","openapi":"GET /v1/kb/nodes","href":"/api-reference/knowledge/list-nodes"},{"title":"Create knowledge node","openapi":"POST /v1/kb/nodes","href":"/api-reference/knowledge/create-node"},{"title":"Get knowledge node","openapi":"GET /v1/kb/nodes/{node_id}","href":"/api-reference/knowledge/get-node"},{"title":"Update knowledge node","openapi":"PATCH /v1/kb/nodes/{node_id}","href":"/api-reference/knowledge/update-node"},{"title":"Delete knowledge node","openapi":"DELETE /v1/kb/nodes/{node_id}","href":"/api-reference/knowledge/delete-node"}]},{"group":"Agents","pages":[{"title":"List agents","openapi":"GET /v1/agents","href":"/api-reference/agents/list"},{"title":"Get agent","openapi":"GET /v1/agents/{id}","href":"/api-reference/agents/get"},{"title":"Create agent","openapi":"POST /v1/agents","href":"/api-reference/agents/create"},{"title":"Update agent","openapi":"PATCH /v1/agents/{id}","href":"/api-reference/agents/update"},{"title":"Delete agent","openapi":"DELETE /v1/agents/{id}","href":"/api-reference/agents/delete"},{"title":"Run agent","openapi":"POST /v1/agents/{id}/run","href":"/api-reference/agents/run"},{"title":"List agent runs","openapi":"GET /v1/agents/{id}/runs","href":"/api-reference/agents/list-runs"},{"title":"Get agent run","openapi":"GET /v1/agents/{id}/runs/{run_id}","href":"/api-reference/agents/get-run"},{"title":"List agent tools","openapi":"GET /v1/agents/{id}/tools","href":"/api-reference/agents/list-tools"},{"title":"Toggle agent tool","openapi":"PATCH /v1/agents/{id}/tools","href":"/api-reference/agents/set-tool"},{"title":"List supported models","openapi":"GET /v1/models","href":"/api-reference/agents/list-models"}]},{"group":"Inbox types","pages":[{"title":"List inbox types","openapi":"GET /v1/inbox-types","href":"/api-reference/inbox-types/list"}]},{"group":"Skills","pages":[{"title":"List skills","openapi":"GET /v1/skills","href":"/api-reference/skills/list"},{"title":"Get skill","openapi":"GET /v1/skills/{id}","href":"/api-reference/skills/get"},{"title":"Create skill","openapi":"POST /v1/skills","href":"/api-reference/skills/create"},{"title":"Update skill","openapi":"PATCH /v1/skills/{id}","href":"/api-reference/skills/update"},{"title":"Delete skill","openapi":"DELETE /v1/skills/{id}","href":"/api-reference/skills/delete"}]},{"group":"Reviews","pages":[{"title":"Fetch OTA review metrics","openapi":"POST /v1/reviews/fetch","href":"/api-reference/reviews/fetch"}]},{"group":"Custom tools","pages":[{"title":"Custom tools overview","href":"/api-reference/custom-tools/overview"},{"title":"List custom tool runtimes","openapi":"GET /v1/custom-tools/runtimes","href":"/api-reference/custom-tools/runtimes"},{"title":"List custom tools","openapi":"GET /v1/custom-tools","href":"/api-reference/custom-tools/list"},{"title":"Get custom tool","description":"Returns a single custom code tool, including its source code and parameter schema.","openapi":"GET /v1/custom-tools/{id}","href":"/api-reference/custom-tools/get"},{"title":"Create custom tool","openapi":"POST /v1/custom-tools","href":"/api-reference/custom-tools/create"},{"title":"Update custom tool","description":"Updates mutable custom tool fields. Only supplied fields change; changing the code bumps the version. Requires a token with write access.","openapi":"PATCH /v1/custom-tools/{id}","href":"/api-reference/custom-tools/update"},{"title":"Delete custom tool","openapi":"DELETE /v1/custom-tools/{id}","href":"/api-reference/custom-tools/delete"},{"title":"Run custom tool","openapi":"POST /v1/custom-tools/{id}/run","href":"/api-reference/custom-tools/run"}]},{"group":"Escalations","pages":[{"title":"List escalations","openapi":"GET /v1/escalations","href":"/api-reference/escalations/list"},{"title":"Resolve escalation","openapi":"POST /v1/escalations/{id}/resolve","href":"/api-reference/escalations/resolve"},{"title":"Assign escalation","openapi":"POST /v1/escalations/{id}/assign","href":"/api-reference/escalations/assign"}]},{"group":"Workflows","pages":[{"title":"List workflows","openapi":"GET /v1/workspaces/{id}/workflows","href":"/api-reference/workflows/list"},{"title":"Get workflow","openapi":"GET /v1/workflows/{id}","href":"/api-reference/workflows/get"},{"title":"Get workflow schema","openapi":"GET /v1/workflows/schema","href":"/api-reference/workflows/schema"},{"title":"Create workflow","openapi":"POST /v1/workflows","href":"/api-reference/workflows/create"},{"title":"Update workflow","openapi":"PUT /v1/workflows/{id}","href":"/api-reference/workflows/update"},{"title":"List workflow folders","openapi":"GET /v1/workspaces/{workspace_id}/workflow-folders","href":"/api-reference/workflows/list-folders"},{"title":"Create workflow folder","openapi":"POST /v1/workspaces/{workspace_id}/workflow-folders","href":"/api-reference/workflows/create-folder"},{"title":"Move workflow to folder","openapi":"PATCH /v1/workflows/{id}/folder","href":"/api-reference/workflows/move-to-folder"},{"title":"List workflow executions","openapi":"GET /v1/workflows/{id}/executions","href":"/api-reference/workflows/list-executions"},{"title":"List workflow execution events","openapi":"GET /v1/workflow-executions/{id}/events","href":"/api-reference/workflows/list-execution-events"}]},{"group":"Portals","pages":[{"title":"Portals","sidebarTitle":"Overview","href":"/api-reference/portals/overview"},{"group":"Verification rules","pages":[{"title":"Verification Rules","sidebarTitle":"Overview","href":"/api-reference/portals/verification-rules/overview"},{"title":"List Verification Rules","openapi":"GET /v1/workspaces/{workspace_id}/verification-rules","href":"/api-reference/portals/verification-rules/list"},{"title":"Get Verification Rule","openapi":"GET /v1/workspaces/{workspace_id}/verification-rules/{id}","href":"/api-reference/portals/verification-rules/get"},{"title":"Create Verification Rule","openapi":"POST /v1/workspaces/{workspace_id}/verification-rules","href":"/api-reference/portals/verification-rules/create"},{"title":"Update Verification Rule","openapi":"PATCH /v1/workspaces/{workspace_id}/verification-rules/{id}","href":"/api-reference/portals/verification-rules/update"},{"title":"Delete Verification Rule","openapi":"DELETE /v1/workspaces/{workspace_id}/verification-rules/{id}","href":"/api-reference/portals/verification-rules/delete"},{"title":"Reorder Verification Rules","openapi":"POST /v1/workspaces/{workspace_id}/verification-rules/reorder","href":"/api-reference/portals/verification-rules/reorder"}]},{"group":"Offers","pages":[{"title":"Portal Offers","sidebarTitle":"Overview","href":"/api-reference/portals/offers/overview"},{"title":"List Portal Offers","openapi":"GET /v1/workspaces/{workspace_id}/portal-offers","href":"/api-reference/portals/offers/list"},{"title":"Get Portal Offer","openapi":"GET /v1/workspaces/{workspace_id}/portal-offers/{id}","href":"/api-reference/portals/offers/get"},{"title":"Create Portal Offer","openapi":"POST /v1/workspaces/{workspace_id}/portal-offers","href":"/api-reference/portals/offers/create"},{"title":"Update Portal Offer","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-offers/{id}","href":"/api-reference/portals/offers/update"},{"title":"Archive Portal Offer","openapi":"POST /v1/workspaces/{workspace_id}/portal-offers/{id}/archive","href":"/api-reference/portals/offers/archive"},{"title":"Restore Portal Offer","openapi":"POST /v1/workspaces/{workspace_id}/portal-offers/{id}/restore","href":"/api-reference/portals/offers/restore"}]},{"group":"Templates","pages":[{"title":"Portal Templates","sidebarTitle":"Overview","href":"/api-reference/portals/templates/overview"},{"title":"List Portal Templates","openapi":"GET /v1/workspaces/{workspace_id}/portal-templates","href":"/api-reference/portals/templates/list"},{"title":"Get Portal Template","openapi":"GET /v1/workspaces/{workspace_id}/portal-templates/{id}","href":"/api-reference/portals/templates/get"},{"title":"Create Portal Template","openapi":"POST /v1/workspaces/{workspace_id}/portal-templates","href":"/api-reference/portals/templates/create"},{"title":"Update Portal Template","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-templates/{id}","href":"/api-reference/portals/templates/update"},{"title":"Duplicate Portal Template","openapi":"POST /v1/workspaces/{workspace_id}/portal-templates/{id}/duplicate","href":"/api-reference/portals/templates/duplicate"},{"title":"Archive Portal Template","openapi":"POST /v1/workspaces/{workspace_id}/portal-templates/{id}/archive","href":"/api-reference/portals/templates/archive"},{"title":"Restore Portal Template","openapi":"POST /v1/workspaces/{workspace_id}/portal-templates/{id}/restore","href":"/api-reference/portals/templates/restore"},{"title":"Delete Portal Template","openapi":"POST /v1/workspaces/{workspace_id}/portal-templates/{id}/delete","href":"/api-reference/portals/templates/delete"}]},{"group":"Guides","pages":[{"title":"Portal Guides","sidebarTitle":"Overview","href":"/api-reference/portals/guides/overview"},{"title":"List Portal Guides","openapi":"GET /v1/workspaces/{workspace_id}/portal-guides","href":"/api-reference/portals/guides/list"},{"title":"Get Portal Guide","openapi":"GET /v1/workspaces/{workspace_id}/portal-guides/{id}","href":"/api-reference/portals/guides/get"},{"title":"Create Portal Guide","openapi":"POST /v1/workspaces/{workspace_id}/portal-guides","href":"/api-reference/portals/guides/create"},{"title":"Update Portal Guide","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-guides/{id}","href":"/api-reference/portals/guides/update"},{"title":"Duplicate Portal Guide","openapi":"POST /v1/workspaces/{workspace_id}/portal-guides/{id}/duplicate","href":"/api-reference/portals/guides/duplicate"},{"title":"Archive Portal Guide","openapi":"POST /v1/workspaces/{workspace_id}/portal-guides/{id}/archive","href":"/api-reference/portals/guides/archive"},{"title":"Restore Portal Guide","openapi":"POST /v1/workspaces/{workspace_id}/portal-guides/{id}/restore","href":"/api-reference/portals/guides/restore"},{"title":"Reorder Portal Guides","openapi":"POST /v1/workspaces/{workspace_id}/portal-guides/reorder","href":"/api-reference/portals/guides/reorder"}]},{"group":"Brand kit","pages":[{"title":"Portal Brand Kit","sidebarTitle":"Overview","href":"/api-reference/portals/brand-kit/overview"},{"title":"Get Portal Brand Kit","openapi":"GET /v1/workspaces/{workspace_id}/portal-brand-kit","href":"/api-reference/portals/brand-kit/get"},{"title":"Update Portal Brand Kit","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-brand-kit","href":"/api-reference/portals/brand-kit/update"}]},{"group":"Settings","pages":[{"title":"Portal settings","sidebarTitle":"Overview","href":"/api-reference/portals/settings/overview"},{"title":"Get portal settings","openapi":"GET /v1/workspaces/{workspace_id}/portal-settings","href":"/api-reference/portals/settings/get"},{"title":"Update portal settings","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-settings","href":"/api-reference/portals/settings/update"}]},{"group":"Custom domains","pages":[{"title":"Custom portal domains","sidebarTitle":"Overview","href":"/api-reference/portals/domains/overview"},{"title":"List custom domains","openapi":"GET /v1/workspaces/{workspace_id}/portal-domains","href":"/api-reference/portals/domains/list"},{"title":"Connect a custom domain","openapi":"POST /v1/workspaces/{workspace_id}/portal-domains","href":"/api-reference/portals/domains/create"},{"title":"Update a custom domain","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-domains/{domain_id}","href":"/api-reference/portals/domains/update"},{"title":"Check a custom domain again","openapi":"POST /v1/workspaces/{workspace_id}/portal-domains/{domain_id}/refresh","href":"/api-reference/portals/domains/refresh"},{"title":"Disconnect a custom domain","openapi":"DELETE /v1/workspaces/{workspace_id}/portal-domains/{domain_id}","href":"/api-reference/portals/domains/delete"}]},{"group":"Listing fields","pages":[{"title":"Portal Listing Fields","sidebarTitle":"Overview","href":"/api-reference/portals/listing-fields/overview"},{"title":"Get Portal Listing Fields","openapi":"GET /v1/workspaces/{workspace_id}/portal-listings/{listing_id}/fields","href":"/api-reference/portals/listing-fields/get"},{"title":"List Portal Listing Fields","openapi":"GET /v1/workspaces/{workspace_id}/portal-listing-fields","href":"/api-reference/portals/listing-fields/list"},{"title":"Update Portal Listing Field","openapi":"PATCH /v1/workspaces/{workspace_id}/portal-listings/{listing_id}/fields/{field}","href":"/api-reference/portals/listing-fields/update"},{"title":"Create Portal Listing Upload URL","openapi":"POST /v1/workspaces/{workspace_id}/portal-listings/{listing_id}/uploads/upload-url","href":"/api-reference/portals/listing-fields/create-upload-url"},{"title":"Register Portal Listing Upload","openapi":"POST /v1/workspaces/{workspace_id}/portal-listings/{listing_id}/uploads","href":"/api-reference/portals/listing-fields/register-upload"}]},{"group":"Uploads","pages":[{"title":"Portal Uploads","sidebarTitle":"Overview","href":"/api-reference/portals/uploads/overview"},{"title":"Create Portal Upload URL","openapi":"POST /v1/workspaces/{workspace_id}/portal-uploads/upload-url","href":"/api-reference/portals/uploads/create-upload-url"},{"title":"Register Portal Upload","openapi":"POST /v1/workspaces/{workspace_id}/portal-uploads","href":"/api-reference/portals/uploads/register-upload"}]},{"group":"Sessions","pages":[{"title":"Portal sessions","sidebarTitle":"Overview","href":"/api-reference/portals/sessions/overview"},{"title":"List portal sessions","openapi":"GET /v1/workspaces/{workspace_id}/portal-sessions","href":"/api-reference/portals/sessions/list"},{"title":"Get portal session","openapi":"GET /v1/workspaces/{workspace_id}/portal-sessions/{session_id}","href":"/api-reference/portals/sessions/get"}]},{"group":"Check-ins","pages":[{"title":"Check-in waivers and resets","sidebarTitle":"Overview","href":"/api-reference/portals/check-ins/overview"},{"title":"Waive check-in steps","openapi":"POST /v1/workspaces/{workspace_id}/portal-check-ins/{reservation_id}/waivers","href":"/api-reference/portals/check-ins/waive"},{"title":"Remove a check-in waiver","openapi":"DELETE /v1/workspaces/{workspace_id}/portal-check-ins/{reservation_id}/waivers/{step_type}","href":"/api-reference/portals/check-ins/unwaive"},{"title":"Reset check-in steps","openapi":"POST /v1/workspaces/{workspace_id}/portal-check-ins/{reservation_id}/reset","href":"/api-reference/portals/check-ins/reset"}]},{"group":"Transactions","pages":[{"title":"Portal transactions","sidebarTitle":"Overview","href":"/api-reference/portals/transactions/overview"},{"title":"List portal orders","openapi":"GET /v1/workspaces/{workspace_id}/portal-orders","href":"/api-reference/portals/transactions/list-orders"},{"title":"List damage waiver payments","openapi":"GET /v1/workspaces/{workspace_id}/portal-waiver-payments","href":"/api-reference/portals/transactions/list-waiver-payments"}]}]},{"group":"Insights","pages":[{"title":"Get automation rate","openapi":"GET /v1/insights/automation_rate","href":"/api-reference/insights/automation-rate"},{"title":"Get resolution rate","openapi":"GET /v1/insights/resolution_rate","href":"/api-reference/insights/resolution-rate"}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]}]},"basePath":"","title":"Create custom tool - Conduit","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-CRkbAgbc.js","dist-CI2D8R2Y.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C8f2yC9R.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","AssistantPageLink-k78Wrw_e.js"]}