# Delete messages

URL: https://docs.hanzo.ai/docs/openapi/team/delete-team-messages-by-id

> Removes a message, with its replies, reactions, files and the inbox notifications that point at it.

`DELETE /v1/team/messages/{id}`

> [Team →](https://docs.hanzo.ai/docs/openapi/team) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                              |
| ------------- | -------------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/team/messages/{id}` |
| **Method**    | `DELETE`                                     |
| **Operation** | `delete_team_messages_by_id`                 |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`       |

Removes a message, with its replies, reactions, files and the
inbox notifications that point at it. Its author may delete it, and so may an
owner or admin of the space.

Each removal is a platform remove through the Team client's write path, so the
message disappears from every open client live. Answers 204.

## Request

2 fields.

| Field   | In    | Type   | Required | Description                       |
| ------- | ----- | ------ | -------- | --------------------------------- |
| `id`    | path  | string | yes      | ID is the message, from the path. |
| `space` | query | string | —        | Space names the space holding it. |

## Response

| Status    | Body            | Meaning    |
| --------- | --------------- | ---------- |
| `204`     | —               | no content |
| `default` | problem-details | refused    |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

`hanzo` has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

**SDK**

**.ts**

```ts
import { Configuration, TeamApi } from 'hanzoai';

const api = new TeamApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.deleteTeamMessagesById({ id: 'id' });
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import TeamApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = TeamApi(client).delete_team_messages_by_id(id='id')
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.TeamAPI.DeleteTeamMessagesById(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, team_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = team_api::delete_team_messages_by_id(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.TeamApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new TeamApi(client).deleteTeamMessagesById();
```

**HTTP**

```bash
curl -X DELETE https://api.hanzo.ai/v1/team/messages/<id> \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **team** through the `team` tool, which names its 33 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_team_account_providers"
         }
       }
     }'
```

---

[Team API](https://docs.hanzo.ai/docs/openapi/team) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
