Products

List Products

Returns a paginated list of products. Omit account_id to search the public marketplace.

get/products

Query parameters

account_idstring

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

querystring

Ranked search against product title and headline. 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 plan of these billing models, such as one_time or renewal.

price_minimumnumber

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

price_maximumnumber

Only return products whose advertised buyable plan has a displayed price of at most this amount. Recurring plans 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": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "plan_type": "renewal",
        "renewal_price": {
          "amount": "-2.50",
          "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

Changed in 8 of the 74 revisions of this API.7324

    • ○

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

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • ff3a7657356312See the full diff
    • ▲

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

      request-parameter-default-value-added

    • ●

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

      request-parameter-max-set

    • ●

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

      request-parameter-max-set

    • ○

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

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new optional query request parameter created_after

      new-optional-request-parameter

    • ○

      added the new optional query request parameter created_before

      new-optional-request-parameter

    • ○

      added the new optional query request parameter marketplace_category_route

      new-optional-request-parameter

    • ○

      added the new optional query request parameter plan_types

      new-optional-request-parameter

    • ○

      added the new optional query request parameter price_maximum

      new-optional-request-parameter

    • ○

      added the new optional query request parameter price_minimum

      new-optional-request-parameter

    • ○

      added the new optional query request parameter query

      new-optional-request-parameter

    • ○

      the query request parameter account_id became optional

      request-parameter-became-optional

    • ○

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

      response-required-property-added

    • ○

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

      response-required-property-added

    • ○

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

      response-required-property-added

    • ○

      added the new optional query request parameter labels

      new-optional-request-parameter

    • ○

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

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    This revision also has 9 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      the security scope access_pass:basic:read was added to the endpoint's security scheme bearerAuth

      api-security-scope-added

    • ○

      the security scope product:basic:read was removed from the endpoint's security scheme bearerAuth

      api-security-scope-removed

    This revision also has 16 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 60bbb4a6ffbc615See the full diff
    • ▲

      added the new required query request parameter account_id

      new-required-request-parameter

    • ▲

      the response property // became nullable for the status

      response-property-became-nullable

    • ▲

      the // response's property format changed from date-time to no format for status

      response-property-type-changed

    • ▲

      the // response's property type changed from integer to number for status

      response-property-type-changed

    • ▲

      the // response's property type changed from integer to number for status

      response-property-type-changed

    • ▲

      the // response's property format changed from date-time to no format for status

      response-property-type-changed

    • ●

      deleted the query request parameter company_id

      request-parameter-removed

    • ○

      removed the archived enum value from the // response property for the response status

      response-property-enum-value-removed

    • ○

      removed the hidden enum value from the // response property for the response status

      response-property-enum-value-removed

    • ○

      removed the quick_link enum value from the // response property for the response status

      response-property-enum-value-removed

    • ○

      removed the visible enum value from the // response property for the response status

      response-property-enum-value-removed

    • ○

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

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

Of the 74 revisions, 1 has no diff computed.