Chaos Mesh Workflows API

Create and manage chaos engineering workflows with multiple steps

Operations 13

GET /workflows Chaos Mesh List workflows #
POST /workflows Chaos Mesh Create a new workflow #
GET /workflows/{uid} Chaos Mesh Get workflow details #
PUT /workflows/{uid} Chaos Mesh Update a workflow #
DELETE /workflows/{uid} Chaos Mesh Delete a workflow #
POST /workflows/parse-task/http Chaos Mesh Parse an HTTP workflow task #
POST /workflows/render-task/http Chaos Mesh Render an HTTP workflow task #
POST /workflows/validate-task/http Chaos Mesh Validate an HTTP workflow task #
GET /api/workflows Chaos Mesh List workflows #
POST /api/workflows Chaos Mesh Create a workflow #
GET /api/workflows/{uid} Chaos Mesh Get a workflow #
PUT /api/workflows/{uid} Chaos Mesh Update a workflow #
DELETE /api/workflows/{uid} Chaos Mesh Delete a workflow #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chaos-mesh-workflows-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

chaos-mesh-workflows-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Chaos Mesh Workflows API
  contact:
    name: Chaos Mesh Community
    url: https://chaos-mesh.org/community/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
  description: 'Operations tagged Workflows across 2 of this provider''s published API definitions: chaos-mesh-dashboard-api-openapi.yml, chaos-mesh-dashboard-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: http://localhost:2333/api
  description: Default Chaos Mesh Dashboard server
- url: http://{dashboardHost}:{dashboardPort}
  description: Chaos Mesh Dashboard API server
  variables:
    dashboardHost:
      default: chaos-dashboard.chaos-testing
      description: Hostname or service name for the Chaos Mesh Dashboard.
    dashboardPort:
      default: '2333'
      description: Port on which the Chaos Mesh Dashboard API listens.
tags:
- name: Workflows
  description: Create and manage chaos engineering workflows with multiple steps
paths:
  /workflows:
    get:
      operationId: listWorkflows
      summary: Chaos Mesh List workflows
      description: Returns a list of chaos engineering workflows from the Kubernetes cluster. Workflows allow orchestrating multiple chaos experiments as a sequence of steps with parallel execution, conditional branching, and timing controls. Results can be filtered by namespace, name, and status.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/namespaceParam'
      - name: name
        in: query
        description: Filter workflows by name.
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Filter workflows by status.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: List of workflows returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkflowMeta'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: createWorkflow
      summary: Chaos Mesh Create a new workflow
      description: Creates a new chaos engineering workflow in the Kubernetes cluster. The request body is a Chaos Mesh Workflow custom resource that defines the entry point and sequence of chaos steps to execute, including serial and parallel task groups, suspends, and HTTP tasks.
      tags:
      - Workflows
      requestBody:
        description: Workflow custom resource definition.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KubeObjectDesc'
      responses:
        '200':
          description: Workflow created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
    servers:
    - url: http://localhost:2333/api
      description: Default Chaos Mesh Dashboard server
  /workflows/{uid}:
    get:
      operationId: getWorkflow
      summary: Chaos Mesh Get workflow details
      description: Returns detailed information about a specific chaos workflow identified by its UID. The response includes the workflow topology, node states, and execution progress of each step.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/uidParam'
      responses:
        '200':
          description: Workflow details returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: updateWorkflow
      summary: Chaos Mesh Update a workflow
      description: Updates an existing chaos workflow with a new definition. The workflow spec is replaced with the provided Kubernetes object description.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/uidParam'
      requestBody:
        description: Updated workflow custom resource definition.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KubeObjectDesc'
      responses:
        '200':
          description: Workflow updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: deleteWorkflow
      summary: Chaos Mesh Delete a workflow
      description: Deletes a specific chaos workflow by its UID. The workflow and all its associated Kubernetes resources are removed.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/uidParam'
      responses:
        '200':
          description: Workflow deleted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    servers:
    - url: http://localhost:2333/api
      description: Default Chaos Mesh Dashboard server
  /workflows/parse-task/http:
    post:
      operationId: parseWorkflowHttpTask
      summary: Chaos Mesh Parse an HTTP workflow task
      description: Parses a rendered HTTP workflow task template back to the original request form. Used by the UI to convert between internal representations and editable form data for HTTP tasks in workflows.
      tags:
      - Workflows
      requestBody:
        description: Rendered HTTP task template to parse.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
      responses:
        '200':
          description: Task parsed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpRequestForm'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
    servers:
    - url: http://localhost:2333/api
      description: Default Chaos Mesh Dashboard server
  /workflows/render-task/http:
    post:
      operationId: renderWorkflowHttpTask
      summary: Chaos Mesh Render an HTTP workflow task
      description: Renders an HTTP workflow task from a request form into the final template format used in workflow definitions. This converts the UI form submission into the internal Template representation.
      tags:
      - Workflows
      requestBody:
        description: HTTP task request form to render.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HttpRequestForm'
      responses:
        '200':
          description: Task rendered successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
    servers:
    - url: http://localhost:2333/api
      description: Default Chaos Mesh Dashboard server
  /workflows/validate-task/http:
    post:
      operationId: validateWorkflowHttpTask
      summary: Chaos Mesh Validate an HTTP workflow task
      description: Validates that a given rendered Template is a valid HTTP task. Returns true if the template is valid, false or an error if it is not.
      tags:
      - Workflows
      requestBody:
        description: Rendered template to validate.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
      responses:
        '200':
          description: Validation result returned.
          content:
            application/json:
              schema:
                type: boolean
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
    servers:
    - url: http://localhost:2333/api
      description: Default Chaos Mesh Dashboard server
  /api/workflows:
    get:
      operationId: listWorkflows
      summary: Chaos Mesh List workflows
      description: Returns a list of Chaos Mesh workflows. Workflows allow orchestrating multiple chaos experiments in serial or parallel sequences. Results can be filtered by namespace, name, and status.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/NamespaceQuery'
      - $ref: '#/components/parameters/NameQuery'
      - $ref: '#/components/parameters/StatusQuery'
      responses:
        '200':
          description: List of workflows
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkflowSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - bearerAuth: []
    post:
      operationId: createWorkflow
      summary: Chaos Mesh Create a workflow
      description: Creates a new Chaos Mesh workflow for orchestrating multiple chaos experiments. The workflow spec defines a directed acyclic graph of tasks that can run in serial, parallel, or with suspend steps. Each task can reference a chaos template or be a sub-workflow.
      tags:
      - Workflows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreateRequest'
      responses:
        '200':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail_2'
        '400':
          $ref: '#/components/responses/BadRequest_2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - bearerAuth: []
    servers:
    - url: http://{dashboardHost}:{dashboardPort}
      description: Chaos Mesh Dashboard API server
      variables:
        dashboardHost:
          default: chaos-dashboard.chaos-testing
          description: Hostname or service name for the Chaos Mesh Dashboard.
        dashboardPort:
          default: '2333'
          description: Port on which the Chaos Mesh Dashboard API listens.
  /api/workflows/{uid}:
    get:
      operationId: getWorkflow
      summary: Chaos Mesh Get a workflow
      description: Returns detailed information about a specific workflow including its current execution state, the status of each task node, and associated event history.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowUID'
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail_2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound_2'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - bearerAuth: []
    put:
      operationId: updateWorkflow
      summary: Chaos Mesh Update a workflow
      description: Updates an existing workflow definition. The updated spec replaces the existing workflow configuration. Running workflow nodes are not interrupted; changes take effect on future executions.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreateRequest'
      responses:
        '200':
          description: Workflow updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail_2'
        '400':
          $ref: '#/components/responses/BadRequest_2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound_2'
      security:
      - bearerAuth: []
    delete:
      operationId: deleteWorkflow
      summary: Chaos Mesh Delete a workflow
      description: Deletes a Chaos Mesh workflow and stops any running chaos tasks within it. The deleted workflow is moved to the archives.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowUID'
      responses:
        '200':
          description: Workflow deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound_2'
      security:
      - bearerAuth: []
    servers:
    - url: http://{dashboardHost}:{dashboardPort}
      description: Chaos Mesh Dashboard API server
      variables:
        dashboardHost:
          default: chaos-dashboard.chaos-testing
          description: Hostname or service name for the Chaos Mesh Dashboard.
        dashboardPort:
          default: '2333'
          description: Port on which the Chaos Mesh Dashboard API listens.
components:
  schemas:
    HttpRequestForm:
      type: object
      description: Form representation of an HTTP workflow task for use in the UI.
      properties:
        url:
          type: string
          format: uri
          description: Target URL for the HTTP request.
        method:
          type: string
          enum:
          - GET
          - POST
          - PUT
          - DELETE
          - PATCH
          - HEAD
          description: HTTP method to use.
        headers:
          type: object
          description: HTTP headers to include in the request.
          additionalProperties:
            type: string
        body:
          type: string
          description: Request body content.
        follow_redirects:
          type: boolean
          description: Whether to follow HTTP redirects.
        timeout:
          type: string
          description: Request timeout duration.
    Topology:
      type: object
      description: Workflow execution topology showing nodes and their states.
      properties:
        nodes:
          type: array
          description: List of workflow nodes representing individual steps.
          items:
            $ref: '#/components/schemas/Node'
    ConditionalBranch:
      type: object
      description: A conditional branch in a workflow that executes based on an expression.
      properties:
        target:
          type: string
          description: Name of the template to execute if the condition is true.
        expression:
          type: string
          description: Boolean expression that determines whether to take this branch.
    WorkflowDetail:
      type: object
      description: Detailed information about a chaos workflow including node topology.
      properties:
        uid:
          type: string
          format: uuid
          description: Unique identifier of the workflow.
        name:
          type: string
          description: Name of the workflow.
        namespace:
          type: string
          description: Kubernetes namespace of the workflow.
        entry:
          type: string
          description: Entry point template name for the workflow.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the workflow was created.
        end_time:
          type: string
          format: date-time
          description: Timestamp when the workflow finished.
        status:
          type: string
          description: Current status of the workflow.
        topology:
          $ref: '#/components/schemas/Topology'
        kube_object:
          $ref: '#/components/schemas/KubeObjectDesc'
    Node:
      type: object
      description: A node in the workflow topology representing a single execution step.
      properties:
        name:
          type: string
          description: Name of the workflow node.
        uid:
          type: string
          description: UID of the workflow node.
        type:
          type: string
          description: Type of workflow node (e.g., ChaosNode, SerialNode, ParallelNode, SuspendNode, TaskNode).
        state:
          type: string
          description: Execution state of the node (e.g., Running, Succeeded, Failed, Pending).
        template:
          type: string
          description: Template name this node is executing.
        serial:
          type: boolean
          description: Whether this node is executing in serial order.
    WorkflowMeta:
      type: object
      description: Summary metadata for a Chaos Mesh workflow.
      properties:
        uid:
          type: string
          format: uuid
          description: Unique identifier of the workflow.
        name:
          type: string
          description: Name of the workflow Kubernetes resource.
        namespace:
          type: string
          description: Kubernetes namespace of the workflow.
        entry:
          type: string
          description: Name of the entry template in the workflow.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the workflow was created.
        end_time:
          type: string
          format: date-time
          description: Timestamp when the workflow finished, if applicable.
        status:
          type: string
          description: Current status of the workflow.
    StatusResponse:
      type: object
      description: Generic status response for operations that do not return a resource.
      properties:
        status:
          type: string
          description: Status of the operation (e.g., success).
    KubeObjectMeta:
      type: object
      description: Kubernetes object metadata fields.
      properties:
        name:
          type: string
          description: Name of the Kubernetes resource.
        namespace:
          type: string
          description: Kubernetes namespace of the resource.
        labels:
          type: object
          description: Labels applied to the resource.
          additionalProperties:
            type: string
        annotations:
          type: object
          description: Annotations applied to the resource.
          additionalProperties:
            type: string
    Template:
      type: object
      description: A workflow template defining a single step or group in a chaos workflow.
      properties:
        name:
          type: string
          description: Unique name of the template within the workflow.
        templateType:
          type: string
          description: Type of the template (e.g., Task, Serial, Parallel, Suspend, Schedule).
        deadline:
          type: string
          description: Maximum duration for this template step.
        task:
          type: object
          description: Task-specific configuration for HTTP or chaos tasks.
          additionalProperties: true
        children:
          type: array
          description: Child template names for serial or parallel groups.
          items:
            type: string
        conditionalBranches:
          type: array
          description: Conditional branches for workflow decision points.
          items:
            $ref: '#/components/schemas/ConditionalBranch'
    KubeObjectDesc:
      type: object
      description: A Kubernetes object description used to represent chaos custom resources. Contains the full spec of a Kubernetes resource including apiVersion, kind, metadata, and spec.
      properties:
        apiVersion:
          type: string
          description: Kubernetes API version (e.g., chaos-mesh.org/v1alpha1).
        kind:
          type: string
          description: Kubernetes resource kind (e.g., PodChaos, NetworkChaos).
        metadata:
          $ref: '#/components/schemas/KubeObjectMeta'
        spec:
          type: object
          description: Resource-specific spec object containing the chaos configuration.
          additionalProperties: true
    APIError:
      type: object
      description: Error response returned when an API request fails.
      required:
      - code
      - message
      properties:
        code:
          type: integer
          description: HTTP status code of the error.
        message:
          type: string
          description: Human-readable description of the error.
        full_text:
          type: string
          description: Full error text including stack trace or detailed cause.
    WorkflowDetail_2:
      type: object
      description: Full details of a Chaos Mesh workflow including spec and node status.
      properties:
        uid:
          type: string
          format: uuid
          description: Unique identifier for the workflow.
        namespace:
          type: string
          description: Kubernetes namespace of the workflow.
        name:
          type: string
          description: Name of the workflow resource.
        spec:
          type: object
          description: Full workflow specification as a Kubernetes custom resource spec.
          additionalProperties: true
        status:
          type: string
          description: Overall execution status.
        topology:
          type: object
          description: Execution graph topology showing the current state of each task node in the workflow.
          additionalProperties: true
    WorkflowCreateRequest:
      type: object
      description: Request body for creating or updating a Chaos Mesh workflow.
      required:
      - apiVersion
      - kind
      - metadata
      - spec
      properties:
        apiVersion:
          type: string
          const: chaos-mesh.org/v1alpha1
          description: Chaos Mesh API version.
        kind:
          type: string
          const: Workflow
          description: Resource kind identifier.
        metadata:
          type: object
          description: Kubernetes object metadata.
          required:
          - name
          - namespace
          properties:
            name:
              type: string
              description: Name of the workflow resource.
            namespace:
              type: string
              description: Kubernetes namespace for the workflow.
        spec:
          type: object
          description: Workflow specification defining the entry point, templates, and task graph.
          required:
          - entry
          - templates
          properties:
            entry:
              type: string
              description: Name of the entry point template in the workflow.
            templates:
              type: array
              description: List of workflow task templates defining chaos experiments, suspend steps, serial sequences, or parallel groups.
              items:
                type: object
                additionalProperties: true
    WorkflowSummary:
      type: object
      description: Summary of a Chaos Mesh workflow as returned in list operations.
      properties:
        uid:
          type: string
          format: uuid
          description: Unique identifier for the workflow.
        namespace:
          type: string
          description: Kubernetes namespace of the workflow.
        name:
          type: string
          description: Name of the workflow resource.
          example: resilience-test-workflow
        entry:
          type: string
          description: Entry point task name for the workflow graph.
        status:
          type: string
          description: Overall execution status of the workflow.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the workflow was created.
        end_time:
          type: string
          format: date-time
          description: Timestamp when the workflow completed, if finished.
    ErrorResponse:
      type: object
      description: Error response returned when an API operation fails.
      properties:
        code:
          type: integer
          description: HTTP status code.
          example: 404
        message:
          type: string
          description: Human-readable error message.
          example: experiment not found
  parameters:
    namespaceParam:
      name: namespace
      in: query
      description: Kubernetes namespace to scope the request to.
      required: false
      schema:
        type: string
    uidParam:
      name: uid
      in: path
      description: UUID of the chaos resource.
      required: true
      schema:
        type: string
        format: uuid
    NamespaceQuery:
      name: namespace
      in: query
      required: false
      description: Kubernetes namespace to filter results by. If omitted, returns results from all namespaces.
      schema:
        type: string
        example: default
    NameQuery:
      name: name
      in: query
      required: false
      description: Name substring to filter results by.
      schema:
        type: string
    WorkflowUID:
      name: uid
      in: path
      required: true
      description: Unique identifier (UUID) of the workflow.
      schema:
        type: string
        format: uuid
    StatusQuery:
      name: status
      in: query
      required: false
      description: Status to filter experiments or schedules by.
      schema:
        type: string
        enum:
        - injecting
        - running
        - finished
        - paused
        - stopped
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    BadRequest:
      description: Bad request — invalid parameters or request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    NotFound_2:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized — authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest_2:
      description: Bad request — invalid parameters or malformed body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token for authenticating API requests. Typically a Kubernetes service account token with RBAC permissions to read/write Chaos Mesh custom resources in the target namespaces.
externalDocs:
  description: Chaos Mesh Documentation
  url: https://chaos-mesh.org/docs/
x-refined-from:
- chaos-mesh-dashboard-api-openapi.yml
- chaos-mesh-dashboard-openapi.yml