---
title: "Get custom tool by id"
method: GET
path: "/v1/custom-tools/{id}"
tags: ["custom_tools"]
---

# Get custom tool by id

`GET /v1/custom-tools/{id}`

Returns a single custom code tool, including its source code and parameter schema.

## Path parameters

- `id` string, required — Custom tool id.

## Query parameters

- `workspace_id` string — Optional workspace override. If omitted, Conduit resolves the tool's workspace automatically.

## Response `200`

Custom tool

- object — Single custom code tool response.
  - `data` object, required
    - `id` string, required
    - `workspace_id` string, required
    - `name` string, required
    - `description` string, required
    - `language` 'python' | 'javascript', required — Runtime the tool's code is executed in. Determines the entrypoint signature and which dependencies are available (see GET /v1/custom-tools/runtimes).
    - `code` string, required
    - `parameters` object, required — Parameters the tool accepts, keyed by parameter name. Each becomes a key in the `params` object/dict passed to `main`.
    - `execution_message_description` string, nullable, required
    - `enable_globally` boolean, required
    - `validated` boolean, required
    - `version` number, required
    - `created_at` string, required

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/conduit/apis/conduit-api.md) · [All operations](https://skmtc.net/conduit/apis/conduit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conduit/conduit-api/versions/3ad7e17f96ad/schema)
