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

# List approved prices

> List the finalized prices approved in Price Approval, for syncing into your ERP, webshop, or POS.

Returns the prices your team **approved** in the [Price Approval](/agents/price-approval) queue - the finalized decisions, not raw agent proposals. Use it to pull approved prices into your ERP, webshop, or POS on a schedule instead of exporting by hand.

One row is returned per approved price. When a grid is in SKU-Store view, each approval carries its own `store_id`.

## Authentication

Bearer token. See [Authentication](/api-reference/authentication).

## Query parameters

All parameters are optional; with none set, the endpoint returns every approved price for your organization, newest first.

| Name               | Type                   | Description                                                                |
| :----------------- | :--------------------- | :------------------------------------------------------------------------- |
| `limit`            | integer                | Page size, default `100`, max `500`.                                       |
| `cursor`           | string                 | Opaque pagination cursor returned as `next_cursor` by a previous response. |
| `grid_id`          | string (UUID)          | Only prices approved on this grid.                                         |
| `store_id`         | string (UUID)          | Only prices for this store (SKU-Store approvals).                          |
| `item_id`          | string                 | Filter to a single SKU-level identifier.                                   |
| `sku`              | string                 | Filter to a single SKU code.                                               |
| `approved_after`   | string (ISO-8601, UTC) | Only prices approved at or after this timestamp.                           |
| `approved_before`  | string (ISO-8601, UTC) | Only prices approved at or before this timestamp.                          |
| `effective_after`  | string (YYYY-MM-DD)    | Only prices whose effective date is on or after this date.                 |
| `effective_before` | string (YYYY-MM-DD)    | Only prices whose effective date is on or before this date.                |

## Response

```json theme={null}
{
  "items": [
    {
      "id": 91422,
      "grid_id": "6b1e9c40-2f0a-4d8e-9d21-2f6a1c4b7e10",
      "grid_item_id": 5567,
      "item_id": "SKU-12345",
      "sku": "SKU-12345",
      "store_id": null,
      "current_price": "1.49",
      "proposed_price": "1.59",
      "approved_price": "1.55",
      "effective_date": "2026-07-01",
      "currency_code": "EUR",
      "proposal_source": "po",
      "source": "user_defined",
      "trace": [],
      "approved_at": "2026-06-28T14:12:03Z",
      "approved_by_user_id": "0b3c1f4a-9c1d-4f2a-8a3b-2c3d4e5f6a7b"
    }
  ],
  "next_cursor": null
}
```

### Response fields

| Field                 | Type                   | Description                                                                                            |
| :-------------------- | :--------------------- | :----------------------------------------------------------------------------------------------------- |
| `id`                  | integer                | Retailgrid's internal id for the approved-price row.                                                   |
| `grid_id`             | string (UUID)          | The grid the price was approved on.                                                                    |
| `grid_item_id`        | integer                | Internal id of the item within that grid.                                                              |
| `item_id`             | string \| null         | Your SKU-level identifier, when known.                                                                 |
| `sku`                 | string \| null         | SKU code, when known.                                                                                  |
| `store_id`            | string (UUID) \| null  | The store, for SKU-Store approvals; `null` for product-level.                                          |
| `current_price`       | string \| null         | The live price at the time of approval.                                                                |
| `proposed_price`      | string                 | The price the agent proposed.                                                                          |
| `approved_price`      | string                 | The final approved price - differs from `proposed_price` when it was overridden.                       |
| `effective_date`      | string (date) \| null  | When the approved price takes effect.                                                                  |
| `currency_code`       | string                 | ISO 4217 currency of the prices.                                                                       |
| `proposal_source`     | string                 | Which run produced the proposal: `dp` (Dynamic Pricing), `po` (Price Optimization), or `po_dp` (both). |
| `source`              | string                 | Where the approved price came from: `dp`, `po`, `po_dp`, or `user_defined` (a manual override).        |
| `trace`               | array                  | Per-source breakdown behind the price (`dp` / `po`).                                                   |
| `approved_at`         | string (datetime, UTC) | When the price was approved.                                                                           |
| `approved_by_user_id` | string (UUID)          | The user who approved it.                                                                              |

Money values are returned as **strings** - see [Conventions](/api-reference/conventions).

## Example request

```bash theme={null}
curl -s "https://clientapi.retailgrid.io/v1/approved_prices?approved_after=2026-07-01T00:00:00Z&limit=500" \
  -H "Authorization: Bearer rg_live_xxx"
```

Page through results by passing the `next_cursor` from each response back as `cursor` until it comes back `null`.

## Related

* [Review and approve price changes](/agents/price-approval)
* [Get grid rows](/api-reference/grids/get-rows)
* [Conventions](/api-reference/conventions)
* [Errors](/api-reference/errors)
