---
title: "Validate a workflow definition"
method: POST
path: "/workflows/validate"
tags: ["Workflows"]
---

# Validate a workflow definition

`POST /workflows/validate`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/workflows/validate`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Blocking errors and warnings for a definition, without saving it. `blocking > 0` is what `publish` refuses on. Call this before `POST /workflows` to avoid persisting a draft that cannot run.

## Request body

- WorkflowValidateBody
  - `definition` object, required: The workflow document: `name`, a `trigger` and its `steps`. Validated strictly on the way in. GET /workflows/templates returns working examples, GET /workflows/conditions the rule vocabulary for this shop, and POST /workflows/validate reports what is wrong with one.
  - `settings` object, nullable: Exclusions (`groups`, `lists`, `blacklist`), `dailyMessageLimits` and `dailyInviteLimits` keyed by weekday, `skipCreatorsInOtherWorkflows`, and `timezone` — which decides when the daily budget resets.

## Response `200`

Successful Response

- EnvelopeWorkflowValidationPublic
  - `data` WorkflowValidationPublic, required
    - `ok` boolean, required: No blocking issues. Warnings may still be present.
    - `blocking` integer, required: Issues that make `publish` refuse.
    - `warnings` integer, required
    - `issues` WorkflowValidationIssuePublic[], required
      - `step_id` string, required: Step id, or 'trigger', or 'workflow' for a graph-level issue.
      - `severity` string, required: blocking or warning.
      - `message` string, required
      - `field` string, nullable

## Other responses

- `422`: Validation Error

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-10-20** `9353ed4982e8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/workflows/validate/post.md)

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
