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

# Listar produtos

> Lista o catálogo de produtos do workspace com filtros por busca, status ativo e ordenação.

Um **produto** (`WorkspaceProduct`) representa um item do catálogo do workspace, associável a negócios.

## Autenticação

<ParamField header="Authorization" type="string" required>
  `Bearer vg_live_<sua_chave>` — API Key com escopo `products:read`
</ParamField>

## Parâmetros de query

| Parâmetro          | Tipo   | Descrição                                                |
| ------------------ | ------ | -------------------------------------------------------- |
| `q`                | string | Busca por nome ou SKU (case-insensitive).                |
| `active`           | string | `true` ou `false` — filtra por produtos ativos/inativos. |
| `sort`             | string | `name` (padrão), `createdAt`, `updatedAt` ou `price`.    |
| `order`            | string | `asc` (padrão) ou `desc`.                                |
| `limit` / `offset` | number | Paginação (1–100, padrão 25).                            |

<RequestExample>
  ```bash cURL theme={null}
  curl "https://crm.vistum.com.br/api/v1/products?active=true&sort=price&order=desc" \
    -H "Authorization: Bearer vg_live_SUA_CHAVE_AQUI"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 — OK theme={null}
  {
    "data": [
      { "id": "prod_x1", "name": "Plano PRO", "description": "Assinatura anual", "sku": "PRO-2026", "price": "199.90", "active": true, "createdAt": "2026-06-01T10:00:00.000Z" }
    ],
    "pagination": { "total": 1, "limit": 25, "offset": 0, "hasMore": false }
  }
  ```
</ResponseExample>

<Note>
  `price` é sempre **string decimal** (ex: `"199.90"`) ou `null`.
</Note>
