# Validate Workflow

> Validate a workflow definition without executing it

`POST /api/v1/workflow/{workflow_id}/validate`

Checks the current workflow definition for structural errors — missing required fields, invalid node configurations, broken edge references — without placing a call or creating a run.

If invalid, the response includes a list of errors each with a `kind` (`node`, `edge`, or `workflow`), the offending `id`, the `field`, and a human-readable `message`. See [Errors](/api-reference/errors) for the full error schema.

## OpenAPI

````yaml api-reference/openapi.json post /api/v1/workflow/{workflow_id}/validate
openapi: 3.1.0
info:
  title: Menace Voice API
  description: API for Menace Voice agents
  version: 1.0.0
servers:
  - url: https://voice.menaceui.com
    description: Production
  - url: http://localhost:8000
    description: Local development
paths:
  /api/v1/workflow/{workflow_id}/validate:
    post:
      tags:
        - main
      summary: Validate Workflow
      description: |-
        Validate all nodes in a workflow to ensure they have required fields.

        Args:
            workflow_id: The ID of the workflow to validate
            user: The authenticated user

        Returns:
            Object indicating if workflow is valid and any invalid nodes/edges
      operationId: validate_workflow_api_v1_workflow__workflow_id__validate_post
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            type: integer
            title: Workflow Id
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Authorization
        - name: X-API-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: X-Api-Key
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidateWorkflowResponse"
        "404":
          description: Not found
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ItemKind:
      type: string
      enum:
        - node
        - edge
        - workflow
      title: ItemKind
    ValidateWorkflowResponse:
      properties:
        is_valid:
          type: boolean
          title: Is Valid
        errors:
          items:
            $ref: "#/components/schemas/WorkflowError"
          type: array
          title: Errors
      type: object
      required:
        - is_valid
        - errors
      title: ValidateWorkflowResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WorkflowError:
      properties:
        kind:
          $ref: "#/components/schemas/ItemKind"
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        field:
          anyOf:
            - type: string
            - type: "null"
          title: Field
        message:
          type: string
          title: Message
      type: object
      required:
        - kind
        - id
        - field
        - message
      title: WorkflowError
````
