---
title: "Validate Strategy Endpoint"
method: POST
path: "/v1/strategies/validate"
tags: ["strategies"]
---

# Validate Strategy Endpoint

`POST /v1/strategies/validate`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/strategies/validate`
- Auth: none declared

Run full DSL validation (parse + 9 validation passes) without persisting.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Request body

- ValidateStrategyRequest
  - `source` string, required

## Response `200`

Successful Response

- ValidateStrategyResponse: Full DSL validation verdict. `valid`/`errors` are the original (pre-B11-fix) shape and stay backward-compatible: `errors` is the error-severity messages as plain strings (keel-app's zod `validationResultSchema` requires string[]). `issues` is additive: the standard structured issue shape ({severity, code, message, location, suggestion}) that the editor, chat-api, and backtest-submit gate all use.
  - `valid` boolean, required
  - `errors` string[]
  - `issues` object[]

## Other responses

- `422`: Validation Error

---

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