# DELETE /api/v2/todos/{todo}

Delete a todo

- MCP id: todos.destroy
- Scope: api:destroy:project_management
- Permission: project_management::manage_work_items
- Rate cost: 1 unit, write bucket.
- Cache-Control: private, no-store

Permanently deletes one of your todos.

This resource is hard-delete: there is no restore action, no `force` parameter and no `trashed` parameter. Deleting an already-deleted todo answers `404`, and the source document is unaffected. ⚠ The DELETE is cosmetic and temporary. Todos are a derived copy of document content: the todo comes back the next time the source drive item is written and its todo set rebuilt, for as long as the unchecked task item mentioning you is still in the document HTML. To make a todo go away for good, check the task item off in the document, or remove the mention.

## Parameters
- todo (integer, path): The UserTodo's numeric id.
- X-Request-Id (header, optional): A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.
- If-Match (header, optional): The ETag a write is conditional on. A stale validator is 412 precondition-failed.

## Response 204

## Errors
- 403 forbidden-by-policy | insufficient-permission | insufficient-token-scope: Forbidden.
- 412 precondition-failed: Precondition failed.
- 400 idempotency-key-required | invalid-cursor | invalid-query-parameter | malformed-request | unsupported-parameter: Bad request.
- 401 token-expired | unauthenticated: Unauthenticated.
- 404 endpoint-not-found | resource-not-found: Not found.
- 406 not-acceptable: Not acceptable.
- 429 rate-limit-exceeded: Too many requests.
- 500 internal-error: Server error.
- 503 tenant-unavailable: Service unavailable.

## Example
```bash
curl -X DELETE \
  'https://<your-url>/api/v2/todos/1' \
  -H 'Authorization: Bearer <token>' \
  -H 'Accept: application/json'
```
