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.
Authorizations
Conduit API token. Use Authorization: Bearer <token>. Read/write endpoints require a token with write access.
Body
Request body for creating a custom code tool. Requires a token with write access.
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.
1 - 64^[a-z0-9]+(?:-[a-z0-9]+)*$Runtime the tool's code is executed in. Determines the entrypoint signature and which dependencies are available (see GET /v1/custom-tools/runtimes).
python, javascript 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.
11024Parameters the tool accepts, keyed by parameter name. Each becomes a key in the params object/dict passed to main.
Short status line shown to the user while the tool runs, e.g. Looking up order status.
When true, the tool is available to every agent in the workspace without per-agent enablement.
Response
Custom tool created
Single custom code tool response.