> ## Documentation Index
> Fetch the complete documentation index at: https://www.mill.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete an attachment

> Remove a task attachment and queue its private file for permanent deletion. Confirm with the user before deleting their work.

Write access: a member/administrator with a write-enabled credential, or an authorized signed-in user.

Remove a task attachment and queue its private file for permanent deletion. Confirm with the user before deleting their work.

Removes the attachment immediately and queues private object deletion with durable retries. There is no attachment trash or restore endpoint.

MCP clients can use [`delete_attachment`](https://www.mill.fyi/mcp-reference/delete_attachment) for this operation.

[Request conventions](https://www.mill.fyi/api-reference/overview.md) · [API keys](https://www.mill.fyi/api-keys.md) · [MCP connections](https://www.mill.fyi/mcp-connections.md)


## OpenAPI

````yaml api-reference/openapi.json DELETE /api/tasks/{taskId}/attachments/{attachmentId}
openapi: 3.1.0
info:
  title: Mill HTTP API
  version: 1.0.6
  description: >-
    All registered task-board, account, OAuth, MCP transport and health
    operations. MCP tool schemas come from runtime validators; account
    operations follow their server handlers. Example data is fictional.
    Generation imports routes without issuing requests or connecting to a
    database.
servers:
  - url: https://mill-api.example.com
security: []
paths:
  /api/tasks/{taskId}/attachments/{attachmentId}:
    delete:
      tags:
        - Attachments
      summary: Delete an attachment
      description: >-
        Remove a task attachment and queue its private file for permanent
        deletion. Confirm with the user before deleting their work.


        Removes the attachment immediately and queues private object deletion
        with durable retries. There is no attachment trash or restore endpoint.


        Write access: a member/administrator with a write-enabled credential, or
        an authorized signed-in user.
      operationId: delete_api_tasks_by_taskId_attachments_by_attachmentId
      parameters:
        - name: taskId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            The taskId from the corresponding list, record or authorization
            response.
        - name: attachmentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            The attachmentId from the corresponding list, record or
            authorization response.
        - name: Origin
          in: header
          required: false
          schema:
            type: string
            format: uri
          description: >-
            The exact configured Mill UI origin. Required for browser mutations
            carrying session cookies.
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            minLength: 8
            maxLength: 128
            pattern: ^[A-Za-z0-9._:-]+$
          description: >-
            Reuse the same key and exact request bytes for retries of one
            logical mutation; different content conflicts.
      responses:
        '200':
          description: >-
            Successful response. Examples are illustrative; field values vary by
            record.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                additionalProperties: true
                description: >-
                  Illustrative response shape. Fields can be absent in alternate
                  successful flows; see the operation description and example.
              example:
                ok: true
        default:
          description: >-
            Request failure. Inspect code, message and requestId; respect
            Retry-After on HTTP 429.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
        - sessionCookie: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal or team Mill REST API key
    sessionCookie:
      type: apiKey
      in: cookie
      name: mill_session
      description: >-
        Signed-in human browser session; mutation requests also need the exact
        UI Origin

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.