---
title: "Bulk delete credentialing workflows asynchronously"
method: POST
path: "/credentialing-workflows/bulk-delete"
tags: ["CredentialingWorkflow"]
---

# Bulk delete credentialing workflows asynchronously

`POST /credentialing-workflows/bulk-delete`

Asynchronously deletes multiple credentialing workflows via a chunked Cloud Tasks fan-out. Deduplicates IDs, splits into chunks, enqueues chunk tasks, and returns 202 immediately with a jobId and accepted ID count — not per-ID delete outcomes. Each chunk later enqueues per-workflow cascade-delete tasks using the same cascade path as single delete. Queue rate and retries are server-owned.

## Headers

- `tenant-id` string, required

## Request body

- BulkDeleteCredentialingWorkflowsRequest — Request to delete multiple credentialing workflows by ID
  - `workflowIds` string[], required — Credentialing workflow IDs to delete. Required and non-empty; deduplicated server-side.

## Response `202`

Bulk delete accepted. The body reports the jobId and how many IDs were accepted.

- BulkDeleteCredentialingWorkflowsResponse — Acknowledgement of an asynchronous bulk credentialing-workflow delete request
  - `jobId` string, required — Server-generated correlation ID for this asynchronous bulk-delete job
  - `requestedCount` integer, required — Number of (deduplicated) workflow IDs accepted from the request
  - `acceptedCount` integer, required — Number of IDs handed off for processing (i.e. carried by a successfully enqueued chunk task). IDs in a chunk that failed to enqueue are NOT deleted.
  - `status` 'ACCEPTED' | 'PARTIALLY_ACCEPTED' | 'FAILED', required — Outcome of the synchronous chunk fan-out: ACCEPTED (all chunks enqueued), PARTIALLY_ACCEPTED (some chunks failed to enqueue), or FAILED (none enqueued)
  - `message` string, required — Human-readable summary of the asynchronous request outcome

## Other responses

- `400` — Invalid request - empty workflowIds list, or more IDs than the per-request maximum
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - failed to enqueue any chunk task
- `503` — Bulk delete is disabled by the server kill switch

---

[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)
