# List the review queue

> What is waiting for the customer's approval, each card carrying the exact verbs the API accepts for it.

Canonical: https://revnu.com/docs/review-list

```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": "…",
  "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": "…", "postId": null,
  "createdAt": 1758240000000, "updatedAt": 1758240000000, "resolvedAt": null
}
```

Drive your UI from `actions` and `primaryLabel`. See [Build a Review Screen](/docs/build-a-review-screen).

## Frequently asked questions

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