## Delete a checklist item

`DELETE /v1/tasks/:taskId/checklist/:itemId`

Deletes a checklist item. A deleted item cannot be restored via the API — create a new one if needed.

## Parameters

| Parameter | Type | Required | Description |
|----------|-----|:-----:|---------|
| `taskId` (path) | integer | yes | Task ID. List: [`GET /v1/tasks`](/docs/entities/tasks/list) |
| `itemId` (path) | integer | yes | Checklist item ID. List: [`GET /v1/tasks/:taskId/checklist`](/docs/entities/tasks/checklist/list) |

## Examples

### curl — personal key

```bash
curl -X DELETE "https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
curl -X DELETE "https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — personal key

```javascript
const res = await fetch("https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213", {
  method: "DELETE",
  headers: { "X-Api-Key": "YOUR_API_KEY" },
});
if (res.status === 204) {
  console.log("Deleted");
}
```

### JavaScript — OAuth application

```javascript
const res = await fetch("https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213", {
  method: "DELETE",
  headers: {
    "X-Api-Key": "YOUR_APP_KEY",
    "Authorization": "Bearer USER_SESSION_TOKEN",
  },
});
if (res.status === 204) {
  console.log("Deleted");
}
```

## Response

On success, the response is HTTP status `204 No Content` with an empty body. Success is indicated by the status code, not the body.

## Response example

```
HTTP/1.1 204 No Content
```

## Error response example

`400` — invalid `itemId`:

```json
{
  "success": false,
  "error": { "code": "INVALID_PARAMS", "message": "taskId and itemId must be positive integers" }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | `taskId` or `itemId` is not a positive integer |
| 403 | `SCOPE_DENIED` | The API key lacks the `task` scope |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | The key is in read-only mode. Open the path from `error.details.switchUrl`: a personal key points to `/keys`, an application key with a card to `/applications`, a standalone OAuth key to `/apps`, and a management key to `/management-keys`. Switch it to read and write there |
| 401 | `TOKEN_MISSING` | The API key has no configured tokens |

Full list of common API errors — [Errors](/docs/errors).

## Known specifics

- **Deleting a nonexistent item also returns `204`.** The response does not distinguish a deleted item from an `itemId` that never existed, and deleting the same item again returns `204` too. The same `204` is returned when the task `taskId` itself does not exist. To make sure the item existed, read it before deleting via ["Get an item"](./get.md) — that endpoint returns `404` both for a missing item and for a missing task.

## See also

- [List items](./list.md)
- [Get an item](./get.md)
- [Add an item](./create.md)
- [Tasks](/docs/entities/tasks)
