---
title: "Cancel Enrichment Workflows Bulk"
method: POST
path: "/api/v1/enrichment/cancel/bulk"
tags: ["enrichment"]
---

# Cancel Enrichment Workflows Bulk

`POST /api/v1/enrichment/cancel/bulk`

Bulk-cancel in-flight DBOS enrichment workflows.

Best-effort + idempotent, matching the single-cancel contract. Returns
204 unconditionally — workflows the caller doesn't own, workflows
without a reservation row, and workflows already in a terminal state
are silently skipped. The FE's column-level cancel sends every
workflow_id it tracked and relies on polling to converge each one to
REVOKED.

## Request body

- BulkCancelEnrichmentRequest — Bulk-cancel request body. The service chunks the reservation lookup internally so callers don't have to. ``max_length`` is a DOS guard, not a chunking signal.
  - `workflow_ids` string[], required

## Response `204`

Successful Response

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.net/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia-analytics/maia-api/versions/ba2b8d962161/schema)
