Products

Lists an account's products, or searches the public marketplace when you omit account_id.

get/products

Request

  • Base URL: https://api.whop.com/api/v1
  • URL: https://api.whop.com/api/v1/products
  • Auth: one of:
    • none
    • HTTP bearer

Query parameters

account_idstring

The unique identifier of the account to list products for. Omit to search the public marketplace.

querystring

Filters products by text. The public marketplace list searches product title, account name, headline and description, ranking products that match every word first and the closest partial matches after them; an account's own list is a plain substring match over title, headline and description. Omit to browse by recency.

marketplace_category_routestring

Only return marketplace products assigned to this category route, such as trading.

plan_typesstring[]

Filter to products with a buyable variant of these billing models, such as one_time or renewal.

price_minimumnumber

Only return products whose advertised buyable variant has a displayed price of at least this amount. Recurring variants use renewal price.

price_maximumnumber

Only return products whose advertised buyable variant has a displayed price of at most this amount. Recurring variants use renewal price.

visibilitiesstring[]

Filter to only products matching these visibility states. Ignored on the public marketplace list, which only returns visible products.

[
  "visible"
]
access_pass_typesstring[]

Filter to only products matching these types.

[
  "regular"
]
labelsstring[]

Filter to only products carrying all of these labels. Labels are matched lowercased.

direction'asc' | 'desc'

The sort direction for results. Defaults to descending.

orderstring

The field to sort results by. Account lists default to created_at. Marketplace lists default to discoverable_at and accept created_at or discoverable_at. Cannot be combined with query.

firstinteger

Number of results to return from the start of the range.

afterstring

Return results after this cursor. Use page_info.end_cursor from the previous response to fetch the next page.

lastinteger

Number of results to return from the end of the range.

beforestring

Return results before this cursor. Use page_info.start_cursor from the previous response to fetch the previous page.

created_afterstring

Only return products created after this ISO 8601 timestamp.

created_beforestring

Only return products created before this ISO 8601 timestamp.

Response

marketplace products listed without an account

Example response

{
  "data": [
    {
      "account": {
        "id": "biz_xxxxxxxxxxxxxx",
        "route": "biz_xxxxxxxxxxxxxx",
        "title": "Shine Time Auto Detailing"
      },
      "created_at": "2026-01-01T12:00:00.000Z",
      "default_plan": {
        "billing_period": 30,
        "id": "plan_xxxxxxxxxxxxxx",
        "initial_price": {
          "amount": "-1234.56",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "plan_type": "renewal",
        "renewal_price": {
          "amount": "-1234.56",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "unlimited_stock": true,
        "visibility": "visible"
      },
      "description": "empower rich infrastructures",
      "external_identifier": "SHINE-CERAMIC-01",
      "gallery_images": [
        {
          "content_type": "image/png",
          "id": "file_xxxxxxxxxxxxxx",
          "url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
      ],
      "headline": "thought leadership",
      "id": "prod_xxxxxxxxxxxxxx",
      "labels": [
        "courses"
      ],
      "metadata": {},
      "route": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "title": "Wash Club Tee",
      "updated_at": "2026-01-01T12:00:00.000Z",
      "variant_attributes": {
        "color": [
          "Blue",
          "Red"
        ],
        "size": [
          "L",
          "S"
        ]
      },
      "visibility": "visible"
    }
  ],
  "page_info": {
    "start_cursor": "WyJjdXJzb3IiLDFd"
  }
}

Changes

    • info

      added the required property // to the response with the status

    • breaking

      for the query request parameter first, default value 20 was added

    • warning

      for the query request parameter first, the max was set to 100.00

    • warning

      for the query request parameter last, the max was set to 100.00