---
title: Get Queue Item
api: GET /brands/{brand_id}/queue/{queue_id}
description: "Fetch a single action queue item by ID. Returns the bare item shape (not wrapped in a list envelope)."
---

> **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 a single queue item by ID. Use this when you already have a `queue_id` (e.g. from a prior call to [`GET /brands/{id}/queue`](https://docs.boringmarketing.com/api-reference/results/queue)) and want to re-read just that one row without pulling the entire queue.

<Note>
Unlike the list endpoint, this response is the bare queue item — **not** wrapped in a `{brand_id, total, queue: [...]}` envelope. Agents parsing both endpoints should branch on the shape.
</Note>

## Path parameters

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

<ParamField path="queue_id" type="string" required>
  The queue item ID — the `id` field on a queue row (**not** `source_id`). By convention this is a UUID, but the route does not validate the format; unknown IDs return `404`.
</ParamField>

## Response

```json
{
  "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"
}
```

The `item` sub-shape is polymorphic on `kind` — same rules as the list endpoint:

| `kind` | `item` shape |
|---|---|
| `opportunity` | `{ play, summary, recommended_format, family }` |
| `insight` | `{ text, category, severity }` |

See [Action Queue](https://docs.boringmarketing.com/api-reference/results/queue) for full field-level documentation of the shared shape.

<Warning>
The `id` field on this response is what you pass as `queue_item_id` to [`POST /brands/{id}/brief`](https://docs.boringmarketing.com/api-reference/content/brief). Do **not** pass `source_id` — that's the underlying opportunity or insight row, and the brief endpoint will 404.
</Warning>

## Errors

| Status | Meaning |
|---|---|
| `401` | Missing or invalid `X-API-Key` header. |
| `402` | Daily call budget exhausted (`credits_exhausted`). Raised by the tier middleware before the handler runs. |
| `403` | The caller does not own this brand. |
| `404` | Brand not found, OR queue item not found for this brand. The 404 is returned even if the queue item exists but belongs to a different brand — cross-brand lookups are never leaked. |
| `422` | `brand_id` is not a valid UUID. |

## Example

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

```python Python
resp = httpx.get(
    f"https://api.boringmarketing.com/brands/{brand_id}/queue/{queue_id}",
    headers={"X-API-Key": api_key},
)
item = resp.json()
print(item["kind"], item["item"])
```
</CodeGroup>
