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

# Create a new product

`POST /v1/products`

## Query parameters

- `_with_approval` boolean

## Request body

- CreateProductRequest
  - `code` string, required
  - `name` string, required
  - `price` number
  - `categories` string[]
  - `attributes` object

## Response `201`

Product created

- ProductResponse
  - `data` Product
    - `_id` string
    - `deleted` boolean
    - `created_at` string, date-time
    - `created_by` string
    - `updated_at` string, date-time
    - `updated_by` string
    - `deleted_at` string, date-time, nullable
    - `deleted_by` string, nullable
    - `code` string
    - `name` string
    - `price` number
    - `categories` string[]
    - `attributes` object

## Other responses

- `400` — Request body or query failed validation
- `401` — Missing or invalid JWT
- `403` — Authenticated user lacks the required permission
- `409` — Resource conflict (e.g. duplicate code)

---

[API](https://skmtc.dev/kruzer-corp/apis/pim-api.md) · [All operations](https://skmtc.dev/kruzer-corp/apis/pim-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kruzer-corp/pim-api/revisions/96afc754806b/schema)
