---
title: "Changes to Create Product"
method: POST
path: "/products"
---

# Changes to Create Product

`POST /products`

> Every recorded change to this endpoint, newest first.
> 74 revisions in range; 1 not diffed.

## Timeline

Changed in 10 of 74 revisions.

- **2026-09-24** `7fcefabddb0a` — 3 warning, 2 info
- **2026-09-12** `1660b8d62204` — 1 info
- **2026-09-10** `2a25564a92d5` — 1 info
- **2026-08-24** `e91d507bda45` — 1 info
- **2026-08-19** `23dfbe1a0d1f` — 2 info
- **2026-08-12** `ae20b30817de` — 1 info
- **2026-08-07** `f1020c3ecda4` — 1 info
- **2026-08-04** `bdd0e2c70d58` — 2 info
- **2026-07-31** `099fdc3be422` — 3 breaking, 20 warning, 18 info
- **2026-07-26** `60bbb4a6ffbc` — 16 breaking, 1 warning, 26 info

## Changes

- **2026-09-24** `7fcefabddb0a` — 3 warning, 2 info
  - the `description` request property's maxLength was set to `1500`
  - the `headline` request property's maxLength was set to `80`
  - the `title` request property's maxLength was set to `80`
  - added the required property `variant_attributes` to the response with the `200` status
  - added the required property `variants` to the response with the `200` status
- **2026-09-12** `1660b8d62204` — 1 info
  - added the new optional request property `gallery_images`
- **2026-09-10** `2a25564a92d5` — 1 info
  - added the required property `average_review_rating` to the response with the `200` status
- **2026-08-24** `e91d507bda45` — 1 info
  - added the required property `default_plan` to the response with the `200` status
- **2026-08-19** `23dfbe1a0d1f` — 2 info
  - added the new optional request property `labels`
  - added the required property `labels` to the response with the `200` status
- **2026-08-12** `ae20b30817de` — 1 info
  - added the non-success response with the status `409`
- **2026-08-07** `f1020c3ecda4` — 1 info
  - added the optional property `error/code` to the response with the `401` status
- **2026-08-04** `bdd0e2c70d58` — 2 info
  - the security scope `access_pass:create` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `product:create` was removed from the endpoint's security scheme `bearerAuth`
- **2026-07-31** `099fdc3be422` — 3 breaking, 20 warning, 18 info
  - request property `custom_cta` was restricted to a list of enum values
  - request property `global_affiliate_status` was restricted to a list of enum values
  - request property `member_affiliate_status` was restricted to a list of enum values
  - added the new `apply_now` enum value to the `custom_cta` response property for the response status `200`
  - added the new `call_now` enum value to the `custom_cta` response property for the response status `200`
  - added the new `complete_order` enum value to the `custom_cta` response property for the response status `200`
  - added the new `contact_us` enum value to the `custom_cta` response property for the response status `200`
  - added the new `disabled` enum value to the `global_affiliate_status` response property for the response status `200`
  - added the new `disabled` enum value to the `member_affiliate_status` response property for the response status `200`
  - added the new `donate_now` enum value to the `custom_cta` response property for the response status `200`
  - added the new `enabled` enum value to the `global_affiliate_status` response property for the response status `200`
  - added the new `enabled` enum value to the `member_affiliate_status` response property for the response status `200`
  - added the new `get_access` enum value to the `custom_cta` response property for the response status `200`
  - added the new `get_offer` enum value to the `custom_cta` response property for the response status `200`
  - added the new `join` enum value to the `custom_cta` response property for the response status `200`
  - added the new `order_now` enum value to the `custom_cta` response property for the response status `200`
  - added the new `purchase` enum value to the `custom_cta` response property for the response status `200`
  - added the new `shop_now` enum value to the `custom_cta` response property for the response status `200`
  - added the new `sign_up` enum value to the `custom_cta` response property for the response status `200`
  - added the new `subscribe` enum value to the `custom_cta` response property for the response status `200`
  - added the new `undefined` enum value to the `custom_cta` response property for the response status `200`
  - added the new `undefined` enum value to the `global_affiliate_status` response property for the response status `200`
  - added the new `undefined` enum value to the `member_affiliate_status` response property for the response status `200`
  - added the new `apply_now` enum value to the request property `custom_cta`
  - added the new `call_now` enum value to the request property `custom_cta`
  - added the new `complete_order` enum value to the request property `custom_cta`
  - added the new `contact_us` enum value to the request property `custom_cta`
  - added the new `disabled` enum value to the request property `global_affiliate_status`
  - added the new `disabled` enum value to the request property `member_affiliate_status`
  - added the new `donate_now` enum value to the request property `custom_cta`
  - added the new `enabled` enum value to the request property `global_affiliate_status`
  - added the new `enabled` enum value to the request property `member_affiliate_status`
  - added the new `get_access` enum value to the request property `custom_cta`
  - added the new `get_offer` enum value to the request property `custom_cta`
  - added the new `join` enum value to the request property `custom_cta`
  - added the new `order_now` enum value to the request property `custom_cta`
  - added the new `purchase` enum value to the request property `custom_cta`
  - added the new `shop_now` enum value to the request property `custom_cta`
  - added the new `sign_up` enum value to the request property `custom_cta`
  - added the new `subscribe` enum value to the request property `custom_cta`
  - …1 more
- **2026-07-26** `60bbb4a6ffbc` — 16 breaking, 1 warning, 26 info
  - the response property `custom_cta` became nullable for the status `200`
  - the response property `global_affiliate_status` became nullable for the status `200`
  - the response property `member_affiliate_status` became nullable for the status `200`
  - the response property `owner_user` became nullable for the status `200`
  - the response property `visibility` became nullable for the status `200`
  - the `created_at` response's property format changed from `date-time` to no format for status `200`
  - the `member_count` response's property type changed from `integer` to `number` for status `200`
  - the `published_reviews_count` response's property type changed from `integer` to `number` for status `200`
  - the `updated_at` response's property format changed from `date-time` to no format for status `200`
  - removed the required property `company` from the response with the `200` status
  - removed the required property `owner_user/id` from the response with the `200` status
  - removed the required property `owner_user/name` from the response with the `200` status
  - removed the required property `owner_user/username` from the response with the `200` status
  - removed the required property `product_tax_code/id` from the response with the `200` status
  - removed the required property `product_tax_code/name` from the response with the `200` status
  - removed the required property `product_tax_code/product_type` from the response with the `200` status
  - removed the request property `company_id`
  - added the new optional `header` request parameter `Idempotency-Key`
  - added the new optional request property `account_id`
  - removed the `apply_now` enum value from the `custom_cta` response property for the response status `200`
  - removed the `archived` enum value from the `visibility` response property for the response status `200`
  - removed the `call_now` enum value from the `custom_cta` response property for the response status `200`
  - removed the `complete_order` enum value from the `custom_cta` response property for the response status `200`
  - removed the `contact_us` enum value from the `custom_cta` response property for the response status `200`
  - removed the `disabled` enum value from the `global_affiliate_status` response property for the response status `200`
  - removed the `disabled` enum value from the `member_affiliate_status` response property for the response status `200`
  - removed the `donate_now` enum value from the `custom_cta` response property for the response status `200`
  - removed the `enabled` enum value from the `global_affiliate_status` response property for the response status `200`
  - removed the `enabled` enum value from the `member_affiliate_status` response property for the response status `200`
  - removed the `get_access` enum value from the `custom_cta` response property for the response status `200`
  - removed the `get_offer` enum value from the `custom_cta` response property for the response status `200`
  - removed the `hidden` enum value from the `visibility` response property for the response status `200`
  - removed the `join` enum value from the `custom_cta` response property for the response status `200`
  - removed the `order_now` enum value from the `custom_cta` response property for the response status `200`
  - removed the `purchase` enum value from the `custom_cta` response property for the response status `200`
  - removed the `quick_link` enum value from the `visibility` response property for the response status `200`
  - removed the `shop_now` enum value from the `custom_cta` response property for the response status `200`
  - removed the `sign_up` enum value from the `custom_cta` response property for the response status `200`
  - removed the `subscribe` enum value from the `custom_cta` response property for the response status `200`
  - removed the `visible` enum value from the `visibility` response property for the response status `200`
  - …3 more

---

[Operation](https://skmtc.dev/whop/apis/whop-api/docs/products/post.md) · [API](https://skmtc.dev/whop/apis/whop-api.md) · [Page](https://skmtc.dev/whop/apis/whop-api/changes/products/post)
