---
search:
  tags:
    - Content blocks
    - DELETE
seo:
  description: >-
    Deletes multiple content blocks in one request. Scoped to your
    integration's… Reference for the DELETE /content-blocks/bulk endpoint in the
    Fuxam API v4.
sidebar:
  label: Bulk delete content blocks
  badge: DELETE
title: Bulk delete content blocks
type: openapi-operation
---
Deletes multiple content blocks in one request. Scoped to your integration's institution via Basic Auth credentials.

**Batch semantics:** Each id in `ids` is processed independently. Successful deletes are committed even when siblings fail. Always **HTTP 200** with `data.results` and `data.summary`.

**Request options:**
- `ids` — block IDs to delete (required).
- `force` — when `false` (default), items with published grades fail with `forbidden`; when `true`, deletes regardless.

**Common per-item failure codes:** `resource_not_found`, `forbidden` (published grades without `force`).

`DELETE /content-blocks/bulk`

**Request body** (`application/json`, required)

- `ids` (string[], required) — Content block IDs to delete. Correlates with \`index\` in the batch response.
- `force` (boolean) — When false (default), blocks with published grades fail with \`forbidden\` for that item. When true, deletes regardless of grades.

Request body example:

```json
{
  "ids": [
    "block_intro",
    "block_graded",
    "block_missing"
  ],
  "force": false
}
```

**Responses**

- `200` — Batch processed. Each \`ids\` entry maps to \`results\[index\]\`; succeeded items return \`data: { id }\`.
- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Unprocessable Entity — validation or business rule error
- `429` — Too Many Requests — 1000 requests per minute per institution. Includes \`X-RateLimit-Limit\`, \`X-RateLimit-Remaining\`, \`X-RateLimit-Reset\` (ISO-8601), and \`Retry-After\` (seconds).
- `500` — Internal Server Error

Response example, 200:

```json
{
  "data": {
    "results": [
      {
        "index": 0,
        "id": "block_intro",
        "status": "succeeded",
        "data": {
          "id": "block_intro"
        }
      },
      {
        "index": 1,
        "id": "block_graded",
        "status": "failed",
        "error": {
          "code": "forbidden",
          "detail": "Content block has published grades and cannot be deleted: block_graded"
        }
      },
      {
        "index": 2,
        "id": "block_missing",
        "status": "failed",
        "error": {
          "code": "resource_not_found",
          "detail": "Content block not found or not accessible: block_missing"
        }
      }
    ],
    "summary": {
      "total": 3,
      "succeeded": 1,
      "failed": 2
    }
  },
  "meta": {
    "requestId": "req_batch_example",
    "timestamp": "2026-07-07T12:00:00.000Z",
    "version": "v4"
  }
}
```
