---
title: Reset Brand
api: POST /brands/{brand_id}/reset
description: "Clear all pipeline data for a brand while keeping the brand registration."
---

> **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.

Clears all pipeline data (families, evidence, opportunities, queue, insights, briefs, executions, pipeline runs) but keeps the brand registration and any fields populated via enrichment. Useful when you want to re-run discovery from scratch.

## Path parameters

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

## Response

Returns a breakdown of how many rows were cleared per table:

```json
{
  "brand_id": "ea502f67-338b-47e4-a245-5c4eea8bd8d2",
  "cleared": {
    "evidence": 1243,
    "opportunities_v2": 87,
    "queue": 42,
    "insights": 12,
    "families_v2": 47,
    "pipeline_runs": 6,
    "briefs_v2": 3,
    "executions": 2
  }
}
```

<Note>
**`cleared` may be an empty object** (`"cleared": {}`) when the database is unavailable and the handler falls back to in-memory cache cleanup only. This is not an error — it means there were no DB rows to delete (the in-memory caches are still wiped).
</Note>

## Errors

| Status | Meaning |
|---|---|
| `404` | Brand not found, or not owned by the caller. |
| `409` | A pipeline run is currently active for the brand (any kind, not just pipeline-modifying ones). Header: `X-Running-Run-Id`. Active runs older than 15 minutes are auto-expired and do not count as active. |
| `422` | `brand_id` is not a valid UUID. |

## Example

```bash
curl -X POST \
  -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID/reset
```

<Tip>
After resetting, trigger a new pipeline run with `POST /brands/{id}/analyze` to rebuild all data from scratch.
</Tip>
