# DELETE /api/v1/inboxes/:id/threads/:threadId/assignment?assignee=billing-agent

Auth: Bearer

HTML: https://cooperemail.com/docs/reference/delete-thread-assignment

## Summary

Release the assignment. Optional assignee releases the row only when it is assigned to that handle, or when the claim has expired. An active claim or a plain assignment held by someone else returns HTTP 409 thread_claimed. Returns {assignment:null, released:true|false}. Nothing assigned returns released false and does not emit an event. A successful release emits thread.unassigned. Unknown thread returns 404 thread_not_found. Same permission as PATCH thread labels (message_update).

## Query

```json
?assignee=billing-agent
```

## Response

The OpenAPI document does not declare a JSON response schema for this call. The summary is the contract.

## Errors

- HTTP 409 thread_claimed
- HTTP 404 thread_not_found

The live `message` is the sentence for that code. Branch on `code`.

```json
{
  "error": {
    "type": "conflict",
    "code": "thread_claimed",
    "docs_url": "https://cooperemail.com/docs#thread_claimed"
  }
}
```

## Idempotency

This route does not document Idempotency-Key or client_id.
