---
title: "Listar produtos"
method: GET
path: "/products/list"
---

# Listar produtos

`GET /products/list`

Retorna todos os produtos que você criou com suporte a paginação.

Você pode usar essa rota para visualizar todos os seus produtos, incluindo status, preços, ciclo de assinatura (quando aplicável) e demais informações.

**Alternativa**: Você também pode visualizar e gerenciar seus produtos pelo [Dashboard da AbacatePay](https://app.abacatepay.com/produtos).

## Query parameters

- `after` string
- `before` string
- `limit` integer
- `startDate` string, date
- `endDate` string, date
- `id` string
- `externalId` string
- `status` 'ACTIVE' | 'INACTIVE'
- `keyword` string
- `name` string
- `currency` string

## Response `200`

Lista de produtos retornada com sucesso.

- object
  - `data` Product[] — Lista de produtos.
    - `externalId` string, required — Identificador único do produto no seu sistema
    - `name` string, required — Nome do produto
    - `description` string, required — Descrição do produto
    - `imageUrl` string, uri, nullable — URL da imagem do produto
    - `price` number, required — Preço do produto em centavos
    - `devMode` boolean, required — Indica se o produto foi criado em ambiente de testes
    - `currency` 'BRL', required — Moeda do produto (sempre BRL)
    - `createdAt` string, date-time, required — Data de criação do produto
    - `updatedAt` string, date-time, required — Data de atualização do produto
    - `status` 'ACTIVE' | 'INACTIVE', required — Status atual do produto (ProductStatus)
    - `id` string, required — Identificador único público do produto
    - `cycle` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'SEMIANNUALLY' | 'ANNUALLY', nullable — Indica se o produto é uma assinatura (ProductCycle). Quando `null`, o produto é avulso (pagamento único). Valores possíveis definem a recorrência da assinatura.
    - `hasFile` boolean — Indica se o produto possui um arquivo PDF vinculado para download. Quando `true`, o comprador recebe acesso ao arquivo após o pagamento.
  - `success` boolean — Se a requisição obteve sucesso ou não.
  - `error` string, nullable
  - `pagination` PaginationCursor — Informações de paginação baseada em cursor.
    - `hasMore` boolean, required — Indica se existe mais itens para carregar.
    - `next` string, nullable, required — Cursor para próxima página (usar em after).
    - `before` string, nullable, required — Cursor para página anterior (usar em before).

## Other responses

- `401` — Não autorizado. Falha na autenticação.

## Changes

- **2026-08-23** `ea8a72b04f2a` — 3 info
  - added the new optional `query` request parameter `currency`
  - added the new optional `query` request parameter `keyword`
  - added the new optional `query` request parameter `name`
- **2026-08-04** `6b89a7fa70f5` — 2 info
  - added the new optional `query` request parameter `endDate`
  - added the new optional `query` request parameter `startDate`

[Change history](https://skmtc.dev/abacatepay/apis/api-abacatepay/changes/products/list/get.md)

---

[API](https://skmtc.dev/abacatepay/apis/api-abacatepay.md) · [All operations](https://skmtc.dev/abacatepay/apis/api-abacatepay/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/abacatepay/api-abacatepay/revisions/ea8a72b04f2a/schema)
