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

# Get a synthetic tool

`GET /synthetic-tool/{id}`

## Request

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

Each step carries read-only `connection_state`, computed on read: `ok` (the connection exists and the caller can see it; `connection_name` is its display name), `missing` (the connection was deleted; the step keeps its `connection_id` and cannot run until it is pointed at another connection) or `unavailable` (the connection exists but the caller cannot see it, so it is not named). A step with no `connection_id` has neither field. Request bodies never accept these; they are stripped if echoed back. `broken_step_count` (steps whose state is `missing`) rides along, as on the list.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string

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