# uip api-workflow validate

> Syntax and options for `uip api-workflow validate`, which checks an API Workflow JSON file's structure before packaging or running it.

`uip api-workflow validate` checks an API Workflow JSON file's structure — task shapes, expressions, and metadata — against schema, without executing it. Use it as a fast pre-flight check before `run` or `pack`.

## Synopsis

```
uip api-workflow validate <file> [options]
```

- `<file>` — path to the API Workflow JSON file to validate.

## Options

| Flag | Description |
|---|---|
| `--verbose` | Enable verbose logging, including a stack trace if validation itself throws. |

## Examples

```bash
uip api-workflow validate ./workflow.json
```

```bash
uip api-workflow validate ./workflow.json --verbose
```

## Data shape (--output json)

```json
{
  "Code": "ApiwfValidate",
  "Data": {
    "File": "/abs/path/to/workflow.json",
    "Status": "Valid"
  }
}
```

When validation passes with warnings, `Data` adds a `Warnings` field summarizing the count and each warning's path and message. When validation fails (errors present), the command exits non-zero and reports a `Failure` result whose `Instructions` field lists every issue found, each tagged `[error]` or `[warning]` with its JSON path.

## Related

- [uip api-workflow run](./uip-api-workflow-run.md) — execute the workflow after it validates clean.
- [uip api-workflow pack](./uip-api-workflow-pack.md) — package a validated workflow for publication.

## See also

- [API Workflow tool overview](./uip-api-workflow.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
