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

# List Stock

> Current stock levels per product and storage.

Read what is currently on hand. Each row is a product in one storage, with `quantity` on hand and `reserved` held by open receipts.

## HTTP Request

```http theme={null}
GET https://integrations.clopos.com/open-api/v2/stock
```

<Warning>
  This endpoint requires authentication. Include your JWT in the `x-token` header. See [Authentication](/authentication) for how to obtain a token and [Errors](/errors) for error responses.
</Warning>

## Access

| Requirement      | Value        |
| ---------------- | ------------ |
| Integrator scope | `stock:read` |
| User ability     | `STOCK_VIEW` |

The integration user must hold the ability as well as the scope — the scope alone is not enough.

## Request Example

<CodeGroup>
  ```bash curl theme={null}
  curl --location "https://integrations.clopos.com/open-api/v2/stock" \
    -H "x-token: oauth_example_token"
  ```

  ```javascript javascript theme={null}
  const response = await fetch('https://integrations.clopos.com/open-api/v2/stock', {
    headers: { 'x-token': 'oauth_example_token' }
  });
  const data = await response.json();
  ```

  ```python python theme={null}
  import requests

  response = requests.get(
      "https://integrations.clopos.com/open-api/v2/stock",
      headers={"x-token": "oauth_example_token"},
  )
  data = response.json()
  ```
</CodeGroup>

## Notes

* Use `/v2/stock/total` for the aggregate, and `/v2/storages` to resolve `storage_id`.
