---
search:
  tags:
    - administration
    - POST
seo:
  description: >-
    What this does: Creates a new catalog product with variants… Reference for
    the POST /administration/product-catalog endpoint in the Leadtime Public API
    API.
sidebar:
  badge: POST
  label: Create product
title: Create product
type: openapi-operation
---
**What this does:**
Creates a new catalog product with variants and options. Catalog products are standardized, reusable offerings that can be added to projects, tickets, quotes, and invoices.

**Product structure:**
A product consists of:
1. **Product details**: Name, category, logo, description, and base pricing
2. **Variants** (optional): Different configurations or performance levels (e.g., Standard, Pro, Enterprise) with individual prices
3. **Options** (optional): Extra services or add-ons that customers can optionally select (e.g., "Add workshop" or "Enable premium support")

**Pricing:**
You can set one or more pricing types:
- **Fixed price**: One-time payment (e.g., for hardware or one-time services)
- **Subscription price**: Recurring payment (e.g., monthly SaaS subscription)
- **Price per unit**: Flexible billing by quantity (e.g., per user, per hour)

**Description format:**
- Descriptions can be provided as HTML or Markdown
- The system automatically converts them to internal format (IDoc) for storage
- Supported formatting: tables, callouts, emojis, and basic text formatting

**Logo upload:**
To add a logo to your product:
1. First, call POST /api/public/workspace/upload to upload the image file
2. The upload endpoint returns a file ID
3. Use that file ID in the logoId field when creating the product

**Validation:**
- Product name is required
- Category ID must be a valid UUID
- At least one variant must be provided (even if just one)
- Options array is required (can be empty)
- If pricePerUnit is set, priceUnitName is required
- If pricePerUnit or priceSubscription is set, priceFrequency must be 1, 3, 6, or 12 (months)

**Response:**
Returns the created product with all details, including:
- Descriptions converted to HTML
- Logo URL (if logo was uploaded)
- All variants and options with their configurations

<Operation source="api-reference" id="productcatalogcontroller-createproduct" />
