---
title: "Create Product"
method: POST
path: "/catalog/products"
---

# Create Product

`POST /catalog/products`

## Request

- Base URL: `https://api.roapp.io/v2`
- URL: `https://api.roapp.io/v2/catalog/products`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/roapp/apis/ro-app-public-api-v2/docs/catalog/products/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new product.

## Request body

- object
  - `product_type_id` number, required: Product Type ID
  - `category_id` number, required: Product Category ID
  - `title` string, required: Product title
  - `description` string: Product description
  - `sku` string: Product SKU
  - `code` string: Product Code
  - `mpn` string: Manufacturer Part Number
  - `uom_id` number, required: Unit of Measure ID
  - `barcodes` object[]: List of barcodes
    - `type` 'ean8' | 'ean13' | 'qrcode' | 'code128' | 'upc', required: Barcode type
    - `code` string, required: Barcode value
  - `prices` object[]: Product prices
    - `id` number, required: Product Price ID
    - `price` string, required: Price value
  - `dimensions_and_weight` object: Dimensions and weight parameters
    - `is_enabled` boolean, required
    - `dimensions` object, required
      - `length` string, required
      - `width` string, required
      - `height` string, required
      - `unit` 'mm' | 'cm' | 'in', required: Dimensions unit of measure
    - `weight` object, required
      - `value` string, required: Weight value
      - `unit` 'g' | 'kg' | 'lb', required: Weight unit of measure
  - `expiration_tracking` object
    - `is_enabled` boolean, required
    - `expiration_soon_alert` object, required
      - `is_enabled` boolean, required
      - `value` string, required
      - `unit` 'days' | 'months', required
    - `critical_alert` object, required
      - `is_enabled` boolean, required
      - `value` string, required
      - `unit` 'days' | 'months', required
  - `default_supplier_id` number: Default supplier for this product.
  - `warranty` object: Product warranty.
    - `period` number, required
    - `unit` 'days' | 'months', required
  - `is_serial` boolean: Whether serial number tracking is enabled for this product.

## Response `200`

## Changes

- **2026-11-03** `df0f57c15ea0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roapp/apis/ro-app-public-api-v2/changes/catalog/products/post.md)

---

[API](https://skmtc.dev/roapp/apis/ro-app-public-api-v2.md) - [All operations](https://skmtc.dev/roapp/apis/ro-app-public-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/roapp/apis/ro-app-public-api-v2/revisions/df0f57c15ea0?raw)
