---
title: "List Products"
method: GET
path: "/products"
tags: ["Products"]
---

# List Products

`GET /products`

Returns a paginated list of products belonging to a company.

## Query parameters

- `account_id` string, required
- `visibilities` string[]
- `access_pass_types` string[]
- `direction` 'asc' | 'desc'
- `order` string
- `first` integer
- `after` string
- `last` integer
- `before` string

## Response `200`

products listed

- object
  - `data` ProductListItem[], required
    - `created_at` string, required — When the product was created, as an ISO 8601 timestamp.
    - `external_identifier` string, nullable, required — External identifier stored on the product for your own reference.
    - `gallery_images` ProductGalleryImage[], required
      - `content_type` string, nullable, required — Uploaded file MIME type, such as image/jpeg.
      - `id` string, required — Gallery image ID.
      - `url` string, nullable, required — Pre-optimized URL for rendering this image on the client.
    - `headline` string, nullable, required — Short marketing headline displayed on product page.
    - `id` string, required — Product ID, prefixed `prod_`.
    - `member_count` number, required — Active memberships for this product; 0 if public member counts are disabled.
    - `metadata` object, nullable, required — Custom key-value pairs stored on the product.
    - `published_reviews_count` number, required — Published customer reviews for this product.
    - `route` string, required — URL slug for the product's public link.
    - `title` string, required — Product display name shown to customers.
    - `updated_at` string, required — When the product was last updated, as an ISO 8601 timestamp.
    - `verified` boolean, required — Whether the product has been verified by Whop.
    - `visibility` string, nullable, required — Whether the product is publicly visible, hidden, or archived.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized

## Changes

- **2026-07-26** `60bbb4a6ffbc` — 6 breaking, 1 warning, 5 info
  - added the new required `query` request parameter `account_id`
  - the response property `data/items/visibility` became nullable for the status `200`
  - the `data/items/created_at` response's property format changed from `date-time` to no format for status `200`
  - the `data/items/member_count` response's property type changed from `integer` to `number` for status `200`
  - …8 more

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

---

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