---
title: "Create a synthetic tool"
method: POST
path: "/synthetic-tool"
tags: ["Synthetic tools"]
---

# Create a synthetic tool

`POST /synthetic-tool`

## Request

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

Each step calls a connector tool; steps may reference earlier results. `input_schema` is the JSON Schema the model sees. Add it to a template or toolbox with an entry naming its `synthetic_tool_id`. The response annotates each step the way `GET /synthetic-tool/{id}` does (`connection_state`, `connection_name`).

## Headers

- `X-Organization-Id` string

## Request body

- object
  - `name` string, required
  - `description` string
  - `input_schema` object
  - `steps` object[], required

## Response `201`

Created

- 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)
