---
title: Action Queue
api: GET /brands/{brand_id}/queue
description: "Get the unified action queue — opportunities and brand fixes ranked by leverage score."
---

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

Returns the action queue: a prioritized list of items to act on, combining content opportunities and brand fixes. Pre-sorted by priority.

## Path parameters

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

## Query parameters

<ParamField query="status" type="string">
  Filter by status: `pending`, `in_progress`, `done`.
</ParamField>

## Response

```json
{
  "brand_id": "brand-uuid",
  "total": 8,
  "queue": [
    {
      "id": "qi-uuid-1",
      "kind": "opportunity",
      "source_id": "opp-uuid",
      "status": "pending",
      "rank": 1,
      "priority": 0.95,
      "item": {
        "play": "AI Marketing Tools Comparison Guide",
        "summary": "High-intent cluster, 12K volume, KD 34",
        "recommended_format": "comparison",
        "family": "Marketing Automation"
      },
      "created_at": "2026-04-08T12:00:00Z",
      "updated_at": "2026-04-08T12:00:00Z"
    },
    {
      "id": "qi-uuid-2",
      "kind": "insight",
      "source_id": "insight-uuid",
      "status": "pending",
      "rank": 2,
      "priority": 0.88,
      "item": {
        "text": "No Google reviews widget on homepage",
        "category": "trust_gap",
        "severity": "high"
      },
      "created_at": "2026-04-08T12:00:00Z",
      "updated_at": "2026-04-08T12:00:00Z"
    }
  ]
}
```

The `item` sub-shape is polymorphic on `kind`:

| `kind` | `item` shape |
|---|---|
| `opportunity` | `{ play, summary, recommended_format, family }` — `play` and `summary` mirror the originating opportunity. `recommended_format` is one of `hub_and_spokes`, `single_article`, `programmatic`, `comparison`, `landing_page`. |
| `insight` | `{ text, category, severity }` — `text` always resolves to a non-empty string (falls back to the queue row's own action/detail if the upstream insight row was deleted). |

| Top-level field | Description |
|---|---|
| `kind` | `opportunity` or `insight`. |
| `source_id` | UUID of the underlying `OpportunityV2DB` or insight row. Useful for cross-referencing back to `/opportunities` or `/insights`. **Do not** pass `source_id` to `POST /brands/{id}/brief` — that endpoint expects the queue row's own `id` (the queue item ID), not the source. |
| `id` | The queue item ID. **This is the value you pass as `queue_item_id` to [`POST /brands/{id}/brief`](https://docs.boringmarketing.com/api-reference/content/brief)** to draft a brief from this queue row. |
| `status` | Always `pending` on auto-generated rows. The status field exists for client-side workflow tracking; the API does not auto-transition it. |
| `rank` | 1-based ordering position assigned by leverage scoring. |
| `priority` | Leverage score from `POST /brands/{id}/score`. Higher = act first. |

## Single queue item

Fetch detail for one item:

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

## Example

```bash
curl -H "X-API-Key: $BM_API_KEY" \
  "https://api.boringmarketing.com/brands/$BRAND_ID/queue?status=pending"
```
