---
title: Score
api: POST /brands/{brand_id}/score
description: "Re-run leverage scoring to rebuild the action queue from existing opportunities and brand insights."
---

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

Cross-references brand findings with content opportunities and rebuilds the unified action queue. Run this after updating brand context or competitors without re-running full discovery.

**Duration:** 1-3 minutes.

## Path parameters

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

## Response (202 Accepted)

```json
{
  "run_id": "run-uuid",
  "status": "queued"
}
```

After completion, the refreshed queue is available via `GET /brands/{id}/queue`.

## Example

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

<Note>
Scoring requires existing opportunities. If no discovery has been run yet, use `/discover` or `/analyze` instead.
</Note>

## Errors

| Status | Meaning |
|---|---|
| `404` | Brand not found, or not owned by the caller. |
| `409` | Returned when **(a)** another `scoring` run is already active for this brand, or **(b)** a `full` (`/analyze`) run is currently writing to all tables. Other partial runs do **not** block this endpoint. Response carries an `X-Running-Run-Id` header with the existing run's UUID. Active runs older than 15 minutes are auto-expired before the conflict check. |
| `422` | `brand_id` is not a valid UUID. |
