---
title: "Create Products"
method: POST
path: "/products/create"
tags: ["Products"]
---

# Create Products

`POST /products/create`

Create products. Each item is independent: valid products are created and per-item failures are returned in `rejected`, so the batch never fails as a whole. Optional `category_ids` assigns the product to categories.

## Request body

- object
  - `project_id` string — Required if using a company api key
  - `products` object[], required
    - `global_brand_id` string, uuid, required
    - `name` string, required
    - `description` string
    - `image_url` string, uri
    - `price_override` object
    - `category_ids` string[]

## Response `200`

Per-item create results

- object — Per-item create results
  - `created` object[], required
    - `product_id` string, required
    - `name` string, required
  - `rejected` object[], required
    - `name` string, required
    - `reason` 'brand_not_found' | 'name_conflict' | 'category_not_found', required
    - `message` string, required

## Other responses

- `400` — Response for status 400

---

[API](https://skmtc.net/peec/apis/peec-ai-customer-api.md) · [All operations](https://skmtc.net/peec/apis/peec-ai-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/peec/peec-ai-customer-api/versions/92840a1bffa7/schema)
