PUT /api/workflows/workflow/{id}

Spaces method and path for this operation:

put /s/{space_id}/api/workflows/workflow/{id}

Refer to Spaces for more information.

Partially update an existing workflow. You can update individual fields such as name, description, enabled state, tags, or the YAML definition without providing all fields.

[Required authorization] Route required privileges: workflowsManagement:update.

Headers

  • kbn-xsrf string Required

    A required header to protect against CSRF attacks

Path parameters

  • id string Required

    Workflow ID

application/json

Body

  • description string
  • enabled boolean
  • name string
  • tags array[string]
  • yaml string

Responses

  • 200 application/json

    Indicates a successful response

PUT /api/workflows/workflow/{id}
curl \
  -X PUT "${KIBANA_URL}/api/workflows/workflow/{id}" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "tags": ["production"]
  }'
PUT kbn://api/workflows/workflow/{id}
{
  "enabled": true,
  "tags": ["production"]
}
Request examples
Example request to enable a workflow and update its tags
{
  "tags": [
    "production"
  ],
  "enabled": true
}
Example request to update multiple workflow fields
{
  "name": "Updated example",
  "tags": [
    "example",
    "updated"
  ],
  "yaml": "name: Updated example\nenabled: true\ndescription: Updated workflow description\ntriggers:\n  - type: manual\ninputs:\n  - name: message\n    type: string\n    default: \"hello world\"\nsteps:\n  - name: hello_world_step\n    type: console\n    with:\n      message: \"{{ inputs.message }}\"\n",
  "enabled": true,
  "description": "Updated workflow description"
}
Response examples (200)
Example response returning the updated workflow
{
  "id": "workflow-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "valid": true,
  "enabled": false,
  "lastUpdatedAt": "2026-03-23T13:38:59.568Z",
  "lastUpdatedBy": "elastic",
  "validationErrors": []
}