---
title: "Update a synthetic tool"
method: PATCH
path: "/synthetic-tool/{id}"
tags: ["Synthetic tools"]
---

# Update a synthetic tool

`PATCH /synthetic-tool/{id}`

## Request

- Base URL: `https://api.elaichi.ai`
- URL: `https://api.elaichi.ai/synthetic-tool/{id}`
- Auth: HTTP bearer

Updates a synthetic tool. Merge-patch at the top level, but **`steps` and `input_schema` are replaced wholesale when present**. Every template/toolbox entry referencing this tool picks the change up immediately. The response annotates each step with `connection_state` / `connection_name`, same as `GET /synthetic-tool/{id}`.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string

## Request body

- object

## Response `200`

OK

- object

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

[API](https://skmtc.dev/elaichi/apis/elaichi-api.md) · [All operations](https://skmtc.dev/elaichi/apis/elaichi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/elaichi/apis/elaichi-api/revisions/b22cfb7b6d15?raw)
