Skip to main content
GET
/
products
/
{id}
Retrieve Product
curl --request GET \
  --url https://{defaultHost}/products/{id} \
  --header 'Authorization: Bearer <token>'
{
  "id": "<string>",
  "created_at": "<string>",
  "updated_at": "<string>",
  "title": "<string>",
  "visibility": "<string>",
  "headline": "<string>",
  "verified": true,
  "member_count": 123,
  "route": "<string>",
  "published_reviews_count": 123,
  "external_identifier": "<string>",
  "metadata": {},
  "description": "<string>",
  "custom_cta": "<string>",
  "custom_cta_url": "<string>",
  "custom_statement_descriptor": "<string>",
  "global_affiliate_percentage": 123,
  "global_affiliate_status": "<string>",
  "member_affiliate_percentage": 123,
  "member_affiliate_status": "<string>",
  "gallery_images": "<array>",
  "product_tax_code": {},
  "owner_user": {},
  "company": {}
}

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token.

Headers

Api-Version-Date
string<date>

Pins the request to a dated API version. When omitted, the request uses the original (2025-01-01) request/response shapes, so existing unversioned callers are never broken. Generated SDKs always send the latest version they were built against. An unrecognized value is rejected with a 400. The schemas documented here always describe the latest version.

Example:

"2026-06-09"

Path Parameters

id
string
required

The unique identifier of the product.

Response

product retrieved without authentication

id
string
required

The ID of the product, which will look like prod_*************

created_at
string
required

When the product was created, as an ISO 8601 timestamp

updated_at
string
required

When the product was last updated, as an ISO 8601 timestamp

title
string | null
required

The display name of the product shown to customers

visibility
string | null
required

Whether the product is publicly visible, hidden, or archived

headline
string | null
required

A short marketing headline displayed on the product page

verified
boolean
required

Whether the product has been verified by Whop

member_count
number
required

The number of active memberships on this product. Returns 0 if the company has disabled public member counts

route
string | null
required

The URL slug for the product's public link

published_reviews_count
number
required

The number of published customer reviews for this product

external_identifier
string | null
required

An external identifier stored on the product for your own reference

metadata
object
required

Custom key-value pairs stored on the product

description
string | null
required

A written description of the product displayed on the product page

custom_cta
string | null
required

The call-to-action button label displayed on the product's purchase page

custom_cta_url
string | null
required

A URL that the call-to-action button links to instead of the default checkout flow

custom_statement_descriptor
string | null
required

A custom text label on the customer's bank statement for purchases of this product

global_affiliate_percentage
number | null
required

The commission rate affiliates earn through the global affiliate program

global_affiliate_status
string | null
required

The enrollment status of this product in the global affiliate program

member_affiliate_percentage
number | null
required

The commission rate members earn through the member affiliate program

member_affiliate_status
string | null
required

The enrollment status of this product in the member affiliate program

The gallery images for this product, each an object with id and url

product_tax_code
object
required

The tax classification code for this product, an object with id, name and product_type. Null if no tax code is set

owner_user
object
required

The user who owns the company selling this product, an object with id, name and username

company
object
required

The company that sells this product, an object with id, route and title