---
title: "Create a product"
method: POST
path: "/api/v1/products"
tags: ["Product"]
---

# Create a product

`POST /api/v1/products`

Creates a product

## Request body

- CreateProductDto
  - `name` string, required — The name of the product. Displayed on the checkout page
  - `description` string — The description of the product. Displayed on the checkout page
  - `isActive` boolean — Whether the product is currently active
  - `images` string[] — The url of product images. Displayed on the checkout page
  - `unitLabel` string — The label of the unit of the product. Displayed on the checkout page
  - `url` string — The url of the product
  - `metadata` object — The metadata of the product
  - `visibility` string
  - `defaultPriceData` DefaultPriceDataDto, required
    - `type` 'one_time' | 'recurring' | 'streaming'
    - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu', required
    - `unitAmount` integer, required — The unit amount in 8 decimals, represented as a whole integer
    - `interval` 'day' | 'week' | 'month' | 'year'
    - `intervalCount` number — It is used to determine the frequency at which the subscription is billed. Only required for subscriptions

## Response `200`

- ProductDto
  - `id` string, required
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `name` string, required — The name of the product. Displayed on the checkout page
  - `description` string — The description of the product. Displayed on the checkout page
  - `isActive` boolean — Whether the product is currently active
  - `images` string[] — The url of product images. Displayed on the checkout page
  - `publicImages` string[] — Product images with absolute public url
  - `unitLabel` string — The label of the unit of the product. Displayed on the checkout page
  - `url` string — The url of the product
  - `defaultPriceId` string, uuid — Product's default price id
  - `metadata` object — The metadata of the product
  - `visibility` string
  - `defaultPrice` PublicPriceDto
    - `id` string, required
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `billingScheme` 'per_unit'
    - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu', required
    - `productId` string, uuid, required — Product's id
    - `interval` 'day' | 'week' | 'month' | 'year'
    - `intervalCount` number — It is used to determine the frequency at which the subscription is billed. Only required for subscriptions
    - `isActive` boolean — Whether the price is currently active
    - `usageType` 'licensed'
    - `type` 'one_time' | 'recurring' | 'streaming', required
    - `unitAmount` integer — The unit amount in 8 decimals, represented as a whole integer. If not provided, the unit amount will be calculated from unit_amount_decimal.
    - `unitAmountDecimal` string
    - `customUnitMax` integer — The maximum amount that can be billed per unit for this price. Only if unit amount is not provided
    - `customUnitMin` integer — The minimum amount that can be billed per unit for this price. Only if unit amount is not provided
    - `customPreset` integer — The default amount to fill in the amount field for this price on checkout. Only if unit amount is not provided
    - `customUnitAmountSuggestions` string[] — Amount suggestions for this price. Only if unit amount is not provided
    - `product` PublicProductDto, required
      - `id` string, required
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `name` string, required — The name of the product. Displayed on the checkout page
      - `description` string — The description of the product. Displayed on the checkout page
      - `isActive` boolean — Whether the product is currently active
      - `images` string[] — The url of product images. Displayed on the checkout page
      - `publicImages` string[] — Product images with absolute public url
      - `unitLabel` string — The label of the unit of the product. Displayed on the checkout page
      - `url` string — The url of the product
      - `defaultPriceId` string, uuid — Product's default price id
      - `metadata` object — The metadata of the product
      - `visibility` string
    - `metadata` object — A set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object in a structured format.
    - `visibility` string

## Other responses

- `500`

---

[API](https://skmtc.net/copperx/apis/copperx-api-2.md) · [All operations](https://skmtc.net/copperx/apis/copperx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/copperx/copperx-api-2/revisions/c0bfbc37fb98/schema)
