openapi: 3.1.0
info:
title: Chaos Mesh Dashboard API
description: >-
The Chaos Mesh Dashboard API provides REST endpoints for managing chaos
experiments, schedules, workflows, and events on Kubernetes clusters. Chaos
Mesh is a cloud-native chaos engineering platform that supports fault injection
into pods, nodes, networks, IO subsystems, and cloud provider resources. The
Dashboard API is served by the chaos-dashboard component and is the backend
for the Chaos Mesh web UI, accessible at /api on the dashboard server.
version: '2.5'
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
externalDocs:
description: Chaos Mesh Documentation
url: https://chaos-mesh.org/docs/
servers:
- url: http://localhost:2333/api
description: Default Chaos Mesh Dashboard server
tags:
- name: Archives
description: Access archived (completed or deleted) experiments, schedules, and workflows
- name: Common
description: Utility endpoints for cluster metadata, namespaces, and configuration
- name: Events
description: Query chaos experiment events and audit logs
- name: Experiments
description: Create, manage, pause, and delete chaos experiments
- name: Schedules
description: Create and manage scheduled chaos experiments
- name: Templates
description: Manage reusable status check templates for workflows
- name: Workflows
description: Create and manage chaos engineering workflows with multiple steps
paths:
/experiments:
get:
operationId: listExperiments
summary: Chaos Mesh List chaos experiments
description: >-
Returns a list of chaos experiments from the Kubernetes cluster. Results
can be filtered by namespace, name, kind of chaos, and status. Each
experiment entry includes its UID, name, namespace, kind, creation time,
and current status.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: name
in: query
description: Filter experiments by name (partial match supported).
required: false
schema:
type: string
- name: kind
in: query
description: >-
Filter experiments by chaos kind (e.g., PodChaos, NetworkChaos,
IOChaos, StressChaos, TimeChaos, HTTPChaos).
required: false
schema:
type: string
- name: status
in: query
description: Filter experiments by status (e.g., running, paused, finished).
required: false
schema:
type: string
responses:
'200':
description: List of chaos experiments returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Experiment'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
post:
operationId: createExperiment
summary: Chaos Mesh Create a new chaos experiment
description: >-
Creates a new chaos experiment in the Kubernetes cluster by submitting a
chaos custom resource definition. The request body should contain a
valid Chaos Mesh custom resource object such as PodChaos, NetworkChaos,
IOChaos, StressChaos, TimeChaos, HTTPChaos, or other supported chaos
kinds. The experiment begins injecting faults immediately upon creation.
tags:
- Experiments
requestBody:
description: Chaos experiment custom resource definition.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KubeObjectDesc'
responses:
'200':
description: Experiment created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/KubeObjectDesc'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: batchDeleteExperiments
summary: Chaos Mesh Batch delete chaos experiments
description: >-
Deletes multiple chaos experiments in a single request. Experiment UIDs
to be deleted are specified as a comma-separated list in the uids query
parameter. Force deletion bypasses graceful cleanup of injected faults.
tags:
- Experiments
parameters:
- name: uids
in: query
description: Comma-separated list of experiment UIDs to delete.
required: true
schema:
type: string
- name: force
in: query
description: Force delete experiments without waiting for fault cleanup.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Experiments deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/experiments/{uid}:
get:
operationId: getExperiment
summary: Chaos Mesh Get a chaos experiment
description: >-
Returns detailed information about a specific chaos experiment identified
by its UID. The response includes the full experiment spec, current status,
and associated Kubernetes resource details.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Experiment details returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentDetail'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: deleteExperiment
summary: Chaos Mesh Delete a chaos experiment
description: >-
Deletes a specific chaos experiment by its UID. The experiment and its
associated Kubernetes custom resource are removed. In-progress fault
injections are terminated during cleanup.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/uidParam'
- name: force
in: query
description: Force delete without waiting for fault cleanup.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Experiment 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'
/experiments/pause/{uid}:
put:
operationId: pauseExperiment
summary: Chaos Mesh Pause a chaos experiment
description: >-
Pauses a running chaos experiment by its UID. When paused, fault
injection is suspended but the experiment resource is retained. The
experiment can be resumed with the start endpoint.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Experiment paused successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/experiments/start/{uid}:
put:
operationId: startExperiment
summary: Chaos Mesh Start a chaos experiment
description: >-
Resumes a paused chaos experiment by its UID. Once started, fault
injection resumes according to the experiment spec. This endpoint is
used to unpause experiments that were previously paused.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Experiment started successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/experiments/state:
get:
operationId: getExperimentsState
summary: Chaos Mesh Get the status of all experiments
description: >-
Returns a summary of experiment counts grouped by status across the
cluster. Useful for dashboard overview displays showing how many
experiments are running, paused, stopped, or finished.
tags:
- Experiments
parameters:
- $ref: '#/components/parameters/namespaceParam'
responses:
'200':
description: Experiment status summary returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentState'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/schedules:
get:
operationId: listSchedules
summary: Chaos Mesh List chaos schedules
description: >-
Returns a list of chaos schedules from the Kubernetes cluster. Schedules
define recurring chaos experiments using cron expressions. Results can be
filtered by namespace, name, and kind.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: name
in: query
description: Filter schedules by name.
required: false
schema:
type: string
- name: kind
in: query
description: Filter schedules by chaos kind.
required: false
schema:
type: string
- name: status
in: query
description: Filter schedules by status.
required: false
schema:
type: string
responses:
'200':
description: List of schedules returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Schedule'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
post:
operationId: createSchedule
summary: Chaos Mesh Create a new schedule
description: >-
Creates a new chaos schedule that runs a chaos experiment on a recurring
cron schedule. The request body is a Chaos Mesh Schedule custom resource
which wraps a chaos experiment spec with scheduling parameters including
the cron expression, history limit, and concurrency policy.
tags:
- Schedules
requestBody:
description: Schedule custom resource definition.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KubeObjectDesc'
responses:
'200':
description: Schedule created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/KubeObjectDesc'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: batchDeleteSchedules
summary: Chaos Mesh Batch delete schedules
description: >-
Deletes multiple chaos schedules in a single request using a
comma-separated list of UIDs.
tags:
- Schedules
parameters:
- name: uids
in: query
description: Comma-separated list of schedule UIDs to delete.
required: true
schema:
type: string
- name: force
in: query
description: Force delete schedules without graceful cleanup.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Schedules deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/schedules/{uid}:
get:
operationId: getSchedule
summary: Chaos Mesh Get a schedule
description: >-
Returns detailed information about a specific chaos schedule identified
by its UID, including its cron expression, experiment template, and
execution history.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Schedule details returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleDetail'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: deleteSchedule
summary: Chaos Mesh Delete a schedule
description: >-
Deletes a specific chaos schedule by its UID. The schedule and all its
associated Kubernetes resources are removed.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/uidParam'
- name: force
in: query
description: Force delete without graceful cleanup.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Schedule 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'
/schedules/pause/{uid}:
put:
operationId: pauseSchedule
summary: Chaos Mesh Pause a schedule
description: >-
Pauses a chaos schedule by its UID, preventing future scheduled runs
from executing. Currently running experiments triggered by the schedule
are not affected.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Schedule paused successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/schedules/start/{uid}:
put:
operationId: startSchedule
summary: Chaos Mesh Start a schedule
description: >-
Resumes a paused chaos schedule by its UID, allowing future cron-triggered
runs to execute again.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Schedule started successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/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'
/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'
/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'
/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'
/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'
/archives:
get:
operationId: listArchivedExperiments
summary: Chaos Mesh Get archived chaos experiments
description: >-
Returns a list of archived chaos experiments. Experiments are archived
after they complete their configured duration or are manually deleted.
Results can be filtered by namespace, name, kind, and time range.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: name
in: query
description: Filter by experiment name.
required: false
schema:
type: string
- name: kind
in: query
description: Filter by chaos kind.
required: false
schema:
type: string
- name: start
in: query
description: Filter events from this timestamp (RFC3339).
required: false
schema:
type: string
format: date-time
- name: end
in: query
description: Filter events up to this timestamp (RFC3339).
required: false
schema:
type: string
format: date-time
responses:
'200':
description: List of archived experiments returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Archive'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: batchDeleteArchivedExperiments
summary: Chaos Mesh Delete archived experiments
description: >-
Deletes archived experiment records from the Chaos Mesh database. This
removes historical records only, not live experiments.
tags:
- Archives
parameters:
- name: uids
in: query
description: Comma-separated list of archive UIDs to delete.
required: true
schema:
type: string
responses:
'200':
description: Archives deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/archives/{uid}:
get:
operationId: getArchivedExperiment
summary: Chaos Mesh Get an archived chaos experiment
description: >-
Returns detailed information about a specific archived chaos experiment
by its UID, including the original experiment spec and metadata.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Archived experiment details returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ArchiveDetail'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: deleteArchivedExperiment
summary: Chaos Mesh Delete a specific archived experiment
description: >-
Deletes a single archived experiment record by its UID.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Archive 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'
/archives/schedules:
get:
operationId: listArchivedSchedules
summary: Chaos Mesh Get archived schedule experiments
description: >-
Returns a list of archived chaos schedules that have been deleted or
completed. Useful for reviewing historical scheduled chaos activity.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: name
in: query
description: Filter by schedule name.
required: false
schema:
type: string
- name: kind
in: query
description: Filter by chaos kind.
required: false
schema:
type: string
responses:
'200':
description: List of archived schedules returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Archive'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: batchDeleteArchivedSchedules
summary: Chaos Mesh Delete archived schedules
description: >-
Deletes multiple archived schedule records from the database.
tags:
- Archives
parameters:
- name: uids
in: query
description: Comma-separated list of archive UIDs to delete.
required: true
schema:
type: string
responses:
'200':
description: Archives deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/archives/schedules/{uid}:
get:
operationId: getArchivedSchedule
summary: Chaos Mesh Get an archived schedule
description: >-
Returns detailed information about a specific archived schedule by its UID.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Archived schedule details returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ArchiveDetail'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
operationId: deleteArchivedSchedule
summary: Chaos Mesh Delete an archived schedule
description: >-
Deletes a single archived schedule record by its UID.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/uidParam'
responses:
'200':
description: Archive 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'
/archives/workflows:
get:
operationId: listArchivedWorkflows
summary: Chaos Mesh Get archived workflows
description: >-
Returns a list of archived chaos workflows that have been deleted or
completed.
tags:
- Archives
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: name
in: query
description: Filter by workflow name.
required: false
schema:
type: string
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chaos-mesh/refs/heads/main/openapi/chaos-mesh-dashboard-api-openapi.yml