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

# List approvals

> List media buys in your approval queue, filterable by lifecycle status

`GET /api/v2/storefront/media-buy-approvals`

Lists approval-queue entries for 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.interchange.io/api/v2/storefront/media-buy-approvals" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```

  ```bash Approved history theme={null}
  curl "https://api.interchange.io/api/v2/storefront/media-buy-approvals?status=approved" \
    -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` entries |

## Response

```json theme={null}
[
  {
    "id": "42",
    "storefrontId": "1234",
    "mediaBuyId": "mb_2026_q2_ctv",
    "buyerCustomerId": 8801,
    "submittedPayload": {
      "media_buy_id": "mb_2026_q2_ctv",
      "total_budget": 50000,
      "currency": "USD"
    },
    "status": "pending",
    "reviewedBy": null,
    "reviewedAt": null,
    "reviewerNotes": null,
    "forwardedAt": null,
    "createdAt": "2026-06-02T10:00:00Z",
    "updatedAt": "2026-06-02T10:00:00Z"
  }
]
```

Each element is a full `PendingMediaBuyResponse`. `reviewedBy`, `reviewedAt`, `reviewerNotes`, and `forwardedAt` are `null` while an entry is `pending`. This endpoint returns all matching entries without pagination.

## Errors

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

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

## Related

<CardGroup cols={2}>
  <Card title="Get an approval" href="/v2/storefront/media-buy-approvals/tasks/get-approval" icon="magnifying-glass">
    Inspect one queue entry
  </Card>

  <Card title="Decide an approval" href="/v2/storefront/media-buy-approvals/tasks/decide-approval" icon="gavel">
    Approve or reject a pending media buy
  </Card>

  <Card title="Media-buy approval tasks" href="/v2/storefront/media-buy-approvals/tasks" icon="list-check">
    All media-buy approval operations
  </Card>

  <Card title="Media-buy approvals overview" href="/v2/storefront/media-buy-approvals/overview" icon="clipboard-check">
    Queue lifecycle and concepts
  </Card>
</CardGroup>
