---
title: persona_delete
description: Delete a persona from a brand. The revision that the agent read stops the delete of a persona that changed.
---

Ask to remove an audience from a brand. The agent deletes that one persona, and the brand stays.

> "Delete the persona Loyalists from Acme."

The agent reads the persona with [`persona_get`](/mcp/tools/persona-get), and then calls `persona_delete`. You then see Acme with no Loyalists.

The job guide [Describe a brand](/mcp/tools/describe-a-brand) shows each step of the job.

## Reference

Delete a persona from a brand. Pass base_revision (from persona_get) — the delete is rejected if the persona changed since you read it. The slug becomes free to re-use within that brand.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `base_revision` | integer | yes | The revision you last read via persona_get. Guards against deleting a persona someone else has since edited. |
| `brand_name` | string | yes | The slug of the brand that owns the persona. |
| `persona_name` | string | yes | The persona slug identifying which to delete. |

### Output

A successful call returns this object in `structuredContent`.

| Field | Type | Always present | Description |
| --- | --- | --- | --- |
| `deleted` | `true` | yes | The persona is deleted. |
| `slug` | string | yes | The slug of the deleted persona. |

### Failure codes

A failed call has `isError` set, and `structuredContent.error` holds one of these codes. [Errors](/mcp/errors) describes the shape of a failed call.

- `not_found`
- `revision_mismatch`
- `forbidden`
- `invalid_request`
- `internal_error`

### Scope

The token must hold `brand:write`. [Auth & scopes](/mcp/auth) lists each scope.

### Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

- **Writes.** The tool can change data.
- **Destructive.** The tool can make a change that you cannot undo. A client can ask you to confirm before it calls the tool.
- **Not idempotent.** A second call with the same arguments can change more.
- **Closed world.** The tool reads and writes the data of AdCrunch only.

### Example

The arguments:

```json
{
  "base_revision": 2,
  "brand_name": "acme",
  "persona_name": "loyalists"
}
```

The result, in `structuredContent`:

```json
{
  "deleted": true,
  "slug": "loyalists"
}
```
