# List the review queue

> What is waiting for the customer's approval, each card carrying the verbs it offers and the label for its main button. LinkedIn and gift cards list approve but are approved in the dashboard only.

Canonical: https://revnu.com/docs/review-list
Last updated: 2026-10-19

```bash
curl -H "Authorization: Bearer $REVNU_API_TOKEN" "https://revnu.com/api/v1/review?status=pending&limit=50"
```

## Query

| Param | Meaning |
|---|---|
| `status` | `pending` or `needs_revision`. Default: both. |
| `limit` | 1 to 100. Default 50. |

## Response

`{ "items": [card, …] }`, newest first within priority band. A card:

```json
{
  "id": "k97…",
  "kind": "approval",
  "sourceType": "gmail_draft",
  "status": "pending",
  "title": "Reply to Priya at Acme",
  "prompt": "…",
  "summary": "…",
  "detail": null,
  "priority": "high",
  "options": null,
  "textInput": null,
  "budgetChange": null,
  "payload": { "…": "the draft, the research; long text capped at 8 KB" },
  "actions": ["send", "snooze", "dismiss"],
  "primaryLabel": "Send Reply",
  "autoResolveAt": 1758326400000,
  "dueAt": null, "snoozedUntil": null,
  "leadId": "…", "leadContactId": null, "postId": null,
  "createdAt": 1758240000000, "updatedAt": 1758240000000, "resolvedAt": null, "resolution": null
}
```

`actions` lists the verbs the card offers right now. Drive your UI from `actions` and `primaryLabel`; see [Build a Review Screen](https://revnu.com/docs/build-a-review-screen.md). Which verbs send or publish is on [Answer a card](https://revnu.com/docs/review-answer.md#what-approve-does) and [Send an email card](https://revnu.com/docs/review-send.md).

**LinkedIn invites and messages** (`linkedin_invite`, `linkedin_message`) and **gifts** (`gift_send`) are approved only on the Review page in the dashboard, so their `actions` never include `approve`. `primaryLabel` still names the dashboard button, so a UI can link there. The refusals are listed under [Answer a card](https://revnu.com/docs/review-answer.md#what-approve-does).

A card that waits seven days without an answer expires and leaves the queue, unless it was set to ship on its own at `autoResolveAt`.

## Frequently asked questions

### Does reading the queue change anything?

No. Listing and reading cards never resolves, snoozes or ships one.

### Which scope does this need?

`review:read`. A token without it gets `403` with `requiredScope` in the body. `GET /me` shows a token's scopes.

### Are responses cached?

No. Every response is `Cache-Control: no-store`, so what you read is current.
