---
title: "Bulk-remove assignments from multiple workflows"
method: PATCH
path: "/monitoring-workflows/unassign"
tags: ["MonitoringWorkflow"]
---

# Bulk-remove assignments from multiple workflows

`PATCH /monitoring-workflows/unassign`

Removes the current assignee from multiple monitoring workflows in one call. Use this endpoint for bulk unassignment; use `PATCH /monitoring-workflows/{id}/unassign` for a single workflow. The request body must supply either `workflowIds` or `filter` — at least one is required. Workflows in `REVIEWED_BY_CERTIFYOS` status are automatically excluded and appear in the response `failed` array. Requires all of: `MONITORING_WORKFLOW_ASSIGN`, `MONITORING_WORKFLOW_BULK_ASSIGN`, and `MONITORING_WORKFLOW_ASSIGN_SELF`. The `tenant-id` header is mandatory. Always returns HTTP 200, even when some unassignments fail — check the `successful` and `failed` arrays for per-workflow outcomes.

## Headers

- `tenant-id` string, required

## Request body

- BulkUnassignMonitoringWorkflowRequest — Request to unassign multiple monitoring workflows
  - `workflowIds` string[] — List of monitoring workflow IDs to unassign (workflow IDs will be fetched using the filter if not provided).
  - `filter` string — Filter criteria as JSON string (URL encoded). Used to fetch workflow IDs. See GET /monitoring-workflows endpoint documentation for filter format.

## Response `200`

Bulk unassignment completed. `successful`/`failed` are arrays of `{workflowId, error}` — `error` is null on success. `totalProcessed`, `successCount`, and `failureCount` summarize the batch.

- BulkUnassignMonitoringWorkflowResponse — Response containing results of bulk unassignment of monitoring workflows
  - `successful` UnassignmentResult[] — List of successful unassignments
    - `workflowId` string — ID of the monitoring workflow
    - `error` string — Error message if unassignment failed
  - `failed` UnassignmentResult[] — List of failed unassignments with error details
    - `workflowId` string — ID of the monitoring workflow
    - `error` string — Error message if unassignment failed
  - `totalProcessed` integer — Total number of workflows processed
  - `successCount` integer — Number of successful unassignments
  - `failureCount` integer — Number of failed unassignments

## Other responses

- `400` — Invalid request data, e.g. neither workflowIds nor filter was supplied
- `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)
