> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apostra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List reviews

> List buyer-submitted creatives in your review queue, filterable by status

`GET /api/v2/storefront/creative-reviews`

Lists immutable creative versions buyers have submitted to your storefront,
newest first. Defaults to `status=pending` — the operator queue — so you do not
have to thread the filter manually. Pass `?status=` to see decided history.

## Request

<CodeGroup>
  ```bash Pending queue theme={null}
  curl "https://api.apostra.com/api/v2/storefront/creative-reviews" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```

  ```bash Decided history theme={null}
  curl "https://api.apostra.com/api/v2/storefront/creative-reviews?status=rejected" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Field    | Type | Required | Notes                                                                                             |
| -------- | ---- | -------- | ------------------------------------------------------------------------------------------------- |
| `status` | enum | No       | Query param — `pending`, `approved`, `rejected`, or `revoked`. Omit to return only `pending` rows |

## Response

```json theme={null}
[
  {
    "id": "42",
    "reviewRef": "review:42",
    "storefrontId": "1234",
    "creativeId": "cr_abc123",
    "contentDigest": "0db36cf6c4bfb43123aee1c3eaf5ee965e1c34c9df606b02a56c72a226ad097a",
    "mediaBuyId": "mb_2026_q2_ctv",
    "buyerCustomerId": 8801,
    "submittedPayload": {
      "creative_id": "cr_abc123",
      "format": "video",
      "media_url": "https://cdn.acme-brand.example/spots/launch-30s.mp4",
      "account": { "account_id": "acme-buying" },
      "buyer_ref": "launch-q2-sync",
      "context": { "context_id": "ctx_launch_q2" }
    },
    "status": "pending",
    "reviewedBy": null,
    "reviewedAt": null,
    "reviewerNotes": null,
    "createdAt": "2026-06-02T11:00:00Z",
    "updatedAt": "2026-06-02T11:00:00Z"
  }
]
```

Returns an array of `CreativeReviewResponse` objects. `submittedPayload`
contains the creative fields plus any request-level `account`, `buyer_ref`, and
`context`; buyer webhook configuration is removed. `reviewedBy`, `reviewedAt`,
and `reviewerNotes` are `null` while a row is `pending`.

## Errors

* `400 VALIDATION_ERROR` — invalid `status` value.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Get a review" href="/v2/storefront/creative-reviews/tasks/get-review" icon="magnifying-glass">
    Inspect one creative review row
  </Card>

  <Card title="Decide a review" href="/v2/storefront/creative-reviews/tasks/decide-review" icon="gavel">
    Approve or reject a pending creative
  </Card>

  <Card title="Creative review tasks" href="/v2/storefront/creative-reviews/tasks" icon="list-check">
    All creative-review operations
  </Card>

  <Card title="Creative reviews overview" href="/v2/storefront/creative-reviews/overview" icon="image">
    Queue lifecycle and concepts
  </Card>
</CardGroup>
