---
title: Delete Brand
api: DELETE /brands/{brand_id}
description: "Delete a brand registration. Does NOT cascade to pipeline data."
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.boringmarketing.com/llms.txt). Append `.md` to any page URL for its markdown version.

Deletes the brand registration. This removes the brand record but does **not** cascade to pipeline data (families, evidence, opportunities, queue, briefs, executions). For a full wipe including all pipeline data, call `POST /brands/{brand_id}/reset` **first**, then `DELETE /brands/{brand_id}`.

## Path parameters

<ParamField path="brand_id" type="string" required>
  The brand UUID.
</ParamField>

## Response

```json
{
  "deleted": true,
  "brand_id": "ea502f67-338b-47e4-a245-5c4eea8bd8d2",
  "domain": "yourdomain.com"
}
```

<Note>
**409 Conflict** (with an `X-Running-Run-Id` header) is returned if a pipeline run is currently active. Cancel or wait for the run before deleting. Active runs older than 15 minutes are auto-expired and do not count as active.
</Note>

<Danger>
If you want to delete the brand AND wipe its pipeline data, call `POST /brands/{brand_id}/reset` first, then this endpoint. DELETE by itself leaves orphaned `families_v2`, `evidence`, `opportunities_v2`, `queue`, `insights`, `briefs_v2`, and `executions` rows in the database.
</Danger>

## Errors

| Status | Meaning |
|---|---|
| `404` | Brand not found, or not owned by the caller. |
| `409` | A pipeline run is currently active. Header: `X-Running-Run-Id`. |
| `422` | `brand_id` is not a valid UUID. |

## Example — full wipe

```bash
# Step 1: clear all pipeline data
curl -X POST \
  -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID/reset

# Step 2: delete the brand itself
curl -X DELETE \
  -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID
```
