---
title: "Validate a synthetic tool draft without saving it"
method: POST
path: "/synthetic-tool/validate"
tags: ["Synthetic tools"]
---

# Validate a synthetic tool draft without saving it

`POST /synthetic-tool/validate`

## Request

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

Same body shape as POST /synthetic-tool, checked as a new tool. Always 200 with every problem found, errors first -- `{ issues: (severity, step, field, message)[] }`, at most 50 -- including connection and restriction problems that POST answers with 404/403. Any error-severity issue means POST would reject it. Not checked: the name/description language check, a name already in use, and PATCH's exemption for unchanged steps. Bodies over 4 MiB are 413.

## Headers

- `X-Organization-Id` string

## Request body

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

## Response `200`

OK

- object

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `413`: Request body over 4 MiB
- `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)
