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

# List Products

> Lista produtos.

Lista produtos vinculados à organização que está atuando, ordenados por
`created_at` decrescente. Use `starting_after`/`ending_before` para paginar.
Cada item vem no mesmo shape de
[`GET /v1/products/:id`](/api-reference/products/get#resposta).

## Autenticação

A API key da própria organização atua diretamente. A API key de plataforma exige o
header `Organization: <organization_id>` apontando para uma organização
conectada ativa.

## Parâmetros de query

<ParamField query="limit" type="integer" default="10">
  Quantidade de itens por página. Entre `1` e `100`.
</ParamField>

<ParamField query="starting_after" type="string">
  ID do produto que delimita o início da próxima página (exclusivo).
</ParamField>

<ParamField query="ending_before" type="string">
  ID do produto que delimita o fim da página anterior (exclusivo).
</ParamField>

<ParamField query="is_active" type="boolean | string">
  Quando omitido, retorna apenas `is_active=true`. Envie `false` para arquivados
  ou `all` para incluir ambos.
</ParamField>

<ParamField query="query" type="string">
  Busca parcial por `name` (case-insensitive).
</ParamField>

<RequestExample>
  ```bash cURL theme={}
  curl -X GET "https://api.chargefy.io/v1/products?limit=20&starting_after=prod_123" \
    -H "Authorization: Bearer {{API_KEY}}"
  ```

  ```bash Buscar arquivados theme={}
  curl -X GET "https://api.chargefy.io/v1/products?is_active=false" \
    -H "Authorization: Bearer {{API_KEY}}"
  ```
</RequestExample>

## Resposta

`200 OK` com o envelope canônico de listagem.

| Campo      | Tipo      | Observação                               |
| ---------- | --------- | ---------------------------------------- |
| `object`   | `string`  | Sempre `"list"`                          |
| `data`     | `array`   | Cada item é um objeto `product` completo |
| `has_more` | `boolean` | `true` quando há próxima página          |
| `url`      | `string`  | Path relativo (`/v1/products`)           |

<ResponseExample>
  ```json 200 theme={}
  {
    "object": "list",
    "data": [
      {
        "id": "prod_123",
        "object": "product",
        "created_at": "2026-05-16T14:09:27Z",
        "default_price": "price_123",
        "description": "Acesso completo",
        "image_url": null,
        "is_active": true,
        "is_tax_applicable": true,
        "livemode": true,
        "metadata": {
          "reference_id": "sku_pro"
        },
        "name": "Plano Pro",
        "prices": [],
        "updated_at": null
      }
    ],
    "has_more": true,
    "url": "/v1/products"
  }
  ```
</ResponseExample>
