Skip to main content
PATCH
TypeScript

Authorizations

Authorization
string
header
required

An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-09-15"

Path Parameters

id
string
required

The unique identifier of the product.

Body

application/json
banner_image
object | null

A wide image for the product, shown on the product page and on listing cards. Pass { id } for an existing attachment or { direct_upload_id } for a completed direct upload; null removes it.

description
string | null

A written description displayed on the product page.

Example:

"Full interior extraction, leather conditioning, and an ozone odor treatment."

Images or videos displayed in the product gallery, in display order. Replaces the existing gallery. Send an empty array to clear it; omit or pass null to leave it unchanged. A banner image does not populate the gallery.

Maximum array length: 8
headline
string | null

A short marketing headline for the product page.

Example:

"Steam, shampoo, and odor removal in one visit"

labels
string[] | null

Labels used to group products into collections. Replaces the existing labels. Send an empty array to clear them.

metadata
object | null

Custom key-value pairs to store on the product.

Example:
product_tax_code_id
string | null

The unique identifier of the tax classification code. See the available product categories.

Example:

"ptc_xxxxxxxxxxxxxx"

send_welcome_message
boolean | null

Whether to send an automated welcome message via support chat when a user joins this product.

Example:

true

title
string

The display name of the product.

Example:

"Interior Deep Clean"

visibility
string

Whether the product is visible to customers.

Example:

"visible"

Response

product tax code updated

account
object | null
required

Account that sells this product.

Example:
average_review_rating
number
required

Average star rating across published reviews for this product, from 1.0 to 5.0. Returns 0.0 when no published-review rating is available.

Example:

0

created_at
string
required

When the product was created, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

custom_cta
enum<string> | null
required

Call-to-action button label shown on the product purchase page.

Available options:
get_access,
join,
order_now,
shop_now,
call_now,
donate_now,
contact_us,
sign_up,
subscribe,
purchase,
get_offer,
apply_now,
complete_order,
null
Example:

"order_now"

custom_cta_url
string | null
required

URL the call-to-action button links to instead of checkout.

Example:

"https://shinetime.example/book"

custom_statement_descriptor
string | null
required

Custom text label on customer's bank statement.

Example:

"WHOP*SHINETIME"

default_plan
object | null
required

Buyable plan to show and check out with. The configured default when that plan is buyable, otherwise the first buyable plan in product-page order. null when none is buyable.

description
string | null
required

Written description displayed on the product page. null if none is set.

Example:

"Full interior extraction, leather conditioning, and an ozone odor treatment."

external_identifier
string | null
required

External identifier stored on the product for your own reference.

Example:

"SHINE-CERAMIC-01"

global_affiliate_percentage
number | null
required

Commission rate affiliates earn through the global affiliate program.

Example:

10

global_affiliate_status
enum<string> | null
required

Enrollment status in the global affiliate program.

Available options:
enabled,
disabled,
null
Example:

"enabled"

headline
string | null
required

Short marketing headline displayed on product page.

Example:

"Steam, shampoo, and odor removal in one visit"

id
string
required

Product ID, prefixed prod_.

Example:

"prod_xxxxxxxxxxxxxx"

labels
string[]
required

Lowercased labels used to group products into collections. Filter the list endpoint by labels to fetch one collection.

marketplace_status
enum<string>
required

Listing state on the whop.com marketplace. pending_review means submitted and awaiting review; live_marketplace means approved and discoverable.

Available options:
not_available,
pending_review,
live_marketplace
Example:

"not_available"

member_affiliate_percentage
number | null
required

Commission rate members earn through the member affiliate program.

Example:

5

member_affiliate_status
enum<string> | null
required

Enrollment status in the member affiliate program.

Available options:
enabled,
disabled,
null
Example:

"enabled"

member_count
number
required

Active memberships for this product; 0 if public member counts are disabled.

Example:

0

metadata
object | null
required

Custom key-value pairs stored on the product.

Example:
owner_user
object | null
required

User who owns the account selling this product.

Example:
product_tax_code
object | null
required

Tax classification code for this product, or null if no tax code is set.

Example:
published_reviews_count
number
required

Published customer reviews for this product.

Example:

0

route
string
required

URL slug for the product's public link.

Example:

"interior-deep-clean"

title
string
required

Product display name shown to customers.

Example:

"Interior Deep Clean"

updated_at
string
required

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

Example:

"2026-01-01T12:00:00.000Z"

verified
boolean
required

Whether the product has been verified by Whop.

Example:

false

visibility
string | null
required

Whether the product is publicly visible, hidden, or archived.

Example:

"visible"