Skip to main content
POST
python (new sdk)

Authorizations

Authorization
string
header
required

You can generate a Personal Access Token from your settings.

Body

application/json
name
string
required

The name of the product.

Required string length: 3 - 64
prices
(ProductPriceFixedCreate · object | ProductPriceCustomCreate · object | ProductPriceSeatBasedCreate · object | ProductPriceMeteredUnitCreate · object)[]
required

List of available prices for this product. It may combine at most one fixed price with one seat-based price (billed as fixed + seat_charge), or contain a single custom or free price, plus any number of metered prices. A free price cannot be combined with other prices, and a custom price cannot be combined with a fixed or seat-based price. Metered prices are not supported on one-time purchase products.

Minimum array length: 1

Schema to create a fixed price.

recurring_interval
enum<string>
required

The recurring interval of the product.

Available options:
day,
week,
month,
year
metadata
Metadata · object

Key-value object allowing you to store additional information.

The key must be a string with a maximum length of 40 characters. The value must be either:

  • A string with a maximum length of 500 characters
  • An integer
  • A floating-point number
  • A boolean

You can store up to 50 key-value pairs.

description
string | null

The description of the product.

visibility
enum<string>
default:public

The visibility of the product.

Available options:
draft,
private,
public
medias
string<uuid4>[] | null

List of file IDs. Each one must be on the same organization as the product, of type product_media and correctly uploaded.

attached_custom_fields
AttachedCustomFieldCreate · object[]

List of custom fields to attach.

organization_id
string<uuid4> | null

The organization ID.

Example:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

trial_interval
enum<string> | null

The interval unit for the trial period.

Available options:
day,
week,
month,
year
trial_interval_count
integer | null

The number of interval units for the trial period.

Required range: 1 <= x <= 1000
recurring_interval_count
integer
default:1

Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on.

Required range: 1 <= x <= 999
meter_interval
enum<string> | null

Optional meter cycle, independent of the billing interval. When set, overage settlement, meter resets and meter-credit grants run on this cadence rather than the billing interval — e.g. yearly billing with monthly credits. It must evenly divide the billing interval. If None, metered concerns follow the billing interval. Once set, it can't be changed.

Available options:
day,
week,
month,
year
meter_interval_count
integer | null

Number of meter interval units. Defaults to 1 when meter_interval is set. Ignored when meter_interval is None.

Required range: 1 <= x <= 999

Response

Product created.

A product.

id
string<uuid4>
required

The ID of the object.

created_at
string<date-time>
required

Creation timestamp of the object.

modified_at
string<date-time> | null
required

Last modification timestamp of the object.

trial_interval
enum<string> | null
required

The interval unit for the trial period.

Available options:
day,
week,
month,
year
trial_interval_count
integer | null
required

The number of interval units for the trial period.

name
string
required

The name of the product.

description
string | null
required

The description of the product.

visibility
enum<string>
required

The visibility of the product.

Available options:
draft,
private,
public
recurring_interval
enum<string> | null
required

The recurring interval of the product. If None, the product is a one-time purchase.

Available options:
day,
week,
month,
year
recurring_interval_count
integer | null
required

Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on. None for one-time products.

meter_interval
enum<string> | null
required

The meter cycle of the product, independent of the billing interval. If None, metered concerns follow the billing interval.

Available options:
day,
week,
month,
year
meter_interval_count
integer | null
required

Number of meter interval units. None when no meter cycle is set.

is_recurring
boolean
required

Whether the product is a subscription.

is_archived
boolean
required

Whether the product is archived and no longer available.

organization_id
string<uuid4>
required

The ID of the organization owning the product.

metadata
object
required
prices
(LegacyRecurringProductPriceFixed · object | LegacyRecurringProductPriceCustom · object | ProductPriceFixed · object | ProductPriceCustom · object | ProductPriceSeatBased · object | ProductPriceMeteredUnit · object)[]
required

List of prices for this product.

A recurring price for a product, i.e. a subscription.

Deprecated: The recurring interval should be set on the product itself.

benefits
(BenefitCustom · object | BenefitDiscord · object | BenefitGitHubRepository · object | BenefitDownloadables · object | BenefitLicenseKeys · object | BenefitMeterCredit · object | BenefitFeatureFlag · object | BenefitSlackSharedChannel · object)[]
required

List of benefits granted by the product.

A benefit of type custom.

Use it to grant any kind of benefit that doesn't fit in the other types.

medias
ProductMediaFileRead · object[]
required

List of medias associated to the product.

attached_custom_fields
AttachedCustomField · object[]
required

List of custom fields attached to the product.