---
title: "List Products"
method: GET
path: "/api/v1/commerce/products"
tags: ["commerce", "commerce"]
---

# List Products

`GET /api/v1/commerce/products`

## Request

- Base URL: `https://app.goodleads.club` (the document declares no server; this is the origin it was published from)
- URL: `https://app.goodleads.club/api/v1/commerce/products`
- Auth: none declared

List active products in the catalog — what the frontend Products page renders.

No filtering / pagination today; the catalog is small (10 rows seeded).

## Response `200`

Successful Response

- ProductCardResponse[]
  - `product_id` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `state` string, nullable, required
  - `period` string, nullable, required
  - `lead_count` integer, nullable, required
  - `price_cents` integer, required
  - `stripe_price_id` string, nullable, required

---

[API](https://skmtc.dev/goodleads/apis/formation-gtm-api.md) · [All operations](https://skmtc.dev/goodleads/apis/formation-gtm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/goodleads/apis/formation-gtm-api/revisions/2068d13a82cf?raw)
