---
title: "Bulk-update the monitoring status of multiple workflows"
method: PUT
path: "/monitoring-workflows/bulk/status"
tags: ["MonitoringWorkflow"]
---

# Bulk-update the monitoring status of multiple workflows

`PUT /monitoring-workflows/bulk/status`

Transitions multiple monitoring workflows to the given `workflowStatus` in a single call. Use this endpoint for batch status changes; use `PUT /monitoring-workflows/{workflowId}/status` for a single workflow. Allowed `workflowStatus` values: `IN_PROGRESS`, `OUTREACH_IN_PROGRESS`, `DATA_MISSING`, `NO_ACTION_REQUIRED`, `REVIEWED_BY_CERTIFYOS`. The optional `description` field is a free-text note attached to the transition. Requires `MONITORING_WORKFLOW_UPDATE`. The `tenant-id` header is mandatory. Always returns HTTP 200, even when some workflows fail to transition — check the `successfulWorkflowIds` and `failures` arrays.

## Headers

- `tenant-id` string, required

## Request body

- BulkUpdateMonitoringWorkflowStatusRequest — Request to update status of multiple monitoring workflows
  - `workflowIds` string[], required — List of monitoring workflow IDs to update
  - `workflowStatus` string, required — The new workflow status
  - `description` string, required — Description for the timeline event

## Response `200`

Bulk status update completed. `totalCount`/`successCount`/`failureCount` summarize the batch; `successfulWorkflowIds` lists updated workflow IDs; `failures` is an array of `{workflowId, errorMessage}` for the ones that failed.

- BulkUpdateMonitoringWorkflowStatusResponse — Response for bulk monitoring workflow status update
  - `totalCount` integer — Total number of workflows processed
  - `successCount` integer — Number of successfully updated workflows
  - `failureCount` integer — Number of failed updates
  - `successfulWorkflowIds` string[] — List of successfully updated workflow IDs
  - `failures` WorkflowUpdateFailure[] — List of failed workflow IDs with error messages
    - `workflowId` string — Workflow ID that failed to update
    - `errorMessage` string — Error message describing the failure

## Other responses

- `400` — Invalid request parameters, e.g. an unrecognized workflowStatus value
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
