The Create Product API enables you to add new products to your Fynd Commerce catalog with comprehensive details including basic information, size variants, pricing, tax configurations, trader details, and category-specific attributes. Products are created asynchronously through a batch processing system, allowing you to submit up to 100 products in a single API request. Each submission returns a trace_id that you can use to monitor the processing status and validate successful creation.
Products in Fynd Commerce follow a parent-child structure where the product serves as the parent entity containing common attributes (name, brand, category, description), while sizes/variants act as child entities with their own unique identifiers, pricing, and inventory settings. This structure enables efficient management of multi-variant products while maintaining data consistency.
Before creating products, you must retrieve valid values from the following reference APIs:
- Fetch Departments - Department UIDs
- Fetch Categories - L3 category names
- Fetch Brands - Brand names
- Fetch Templates - Template slugs
- Fetch Attributes by Product - Mandatory attributes
- Fetch Tax Rule IDs - Tax rule IDs
- Fetch HS Codes - HS/SAC codes
Using invalid or mismatched values will result in validation errors and product creation failure.
Request Type:
POST
Scheme:HTTPS
Endpoint:https://{{host}}/v3/catalog/product
Try out Fynd Konnect's Create Product Endpoint
Common Request Headers
| Header | Mandatory | Description |
|---|---|---|
x-access-token | Yes | Access token used for authenticating API requests to Fynd Konnect |
Content-Type | Yes | application/json |
- Create up to 100 products per API request for bulk catalog uploads
- Support for single or multiple size variants per product
- Asynchronous processing with trace_id for status tracking
- Comprehensive validation against category-specific attribute requirements
- Flexible trader information for manufacturer, importer, packer, and seller details
- Optional global attributes for tags, return policies, and custom configurations
Array of products to create
Product type
Product name
URL-friendly product identifier (unique per brand)
Department UIDs from Fetch Departments
L3 category name from Fetch Categories
Brand name from Fetch Brands
Unique item code for the product
Country where the product is manufactured
Tax rule ID obtained from Fetch Tax Rule IDs
Number of boxes used for packaging
HS/SAC code from Fetch HS Code
Product images and videos
Brief summary shown in listings
Detailed product description
Key product highlights
Array of product sizes/variants
Primary identifier for this size variant
Size value of the variant
Original (base) price
Effective/selling price
Item length in centimeters
Item width in centimeters
Item height in centimeters
Item weight in grams
Whether inventory tracking is enabled for this variant
List of additional identifiers for this size
Trader information (manufacturer, importer, etc.)
Type of trader involved with the product
Trader or company name
Address lines for the trader
Category-specific attributes returned by Fetch Attributes By Product
Product tags or keywords
Whether the product depends on another product
Template slug from Fetch Templates
Once a product is created, the following fields cannot be changed:
slug- Product URL identifierbrandandbrand_uid- Brand associationitem_code- Internal item codetemplate- Product templateidentifiers.gtin_value(whenprimary: true) - Primary SKU identifier
To modify these fields, you must delete and recreate the product.
Unique identifier to track the asynchronous processing of this request
Total number of products submitted in this request
Number of products accepted for processing
Number of products rejected at submission time
Overall submission status (e.g., SUCCESS, FAILED, WARNING)
Field-wise error details for failed records (empty object when none)
Current processing stage (e.g., RUNNING, COMPLETED)
Server-assigned batch identifier for this submission (if applicable)
Fynd company ID associated with the request
- Fynd Konnect [Sandbox]https://fyndkonnect.konnect.uat.fyndx1.de/v3/catalog/product
curl -i -X POST \
https://fyndkonnect.konnect.uat.fyndx1.de/v3/catalog/product \
-H 'Content-Type: application/json' \
-H 'x-access-token: YOUR_API_KEY_HERE' \
-d '{
"products": [
{
"item_type": "standard",
"name": "string",
"slug": "string",
"departments": [
"string"
],
"category": "string",
"brand": "string",
"item_code": "string",
"net_quantity": {
"unit": "kg",
"value": 0
},
"country_of_origin": "string",
"tax_identifier": {
"tax_rule_id": "string"
},
"no_of_boxes": 0,
"hs_code": "string",
"media": [
{
"url": "http://example.com",
"type": "image"
}
],
"short_description": "string",
"description": "string",
"highlights": [
"string"
],
"sizes": [
{
"primary_identifier": "string",
"size": "string",
"price": 0,
"price_effective": 0,
"item_length": 0,
"item_width": 0,
"item_height": 0,
"item_weight": 0,
"track_inventory": true,
"identifiers": [
{
"gtin_value": "string",
"gtin_type": "SKU",
"primary": true
}
]
}
],
"trader": [
{
"type": "Manufacturer",
"name": "string",
"address": [
"string"
]
}
],
"attributes": {},
"product_publish": {
"product_online_date": "2019-08-24T14:15:22Z",
"is_set": true
},
"tags": [
"string"
],
"return_config": {
"returnable": "Yes",
"time": 0,
"unit": "days"
},
"custom_order": {
"is_custom_order": "Yes",
"manufacturing_time": 0,
"manufacturing_time_unit": "days"
},
"is_dependent": true
}
],
"template": "string"
}'{
"trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce",
"total": 1,
"success": 1,
"failed": 0,
"status": "SUCCESS",
"errors": {},
"stage": "RUNNING",
"batch_id": "68eb84569055e2f2705c9818",
"company_id": 17551
}Create a basic product with one size variant:
{
"products": [
{
"name": "Air Coolers",
"slug": "aircoolers",
"departments": ["5956"],
"category": "Air Coolers",
"brand": "Generic",
"item_code": "AIRCOOL",
"country_of_origin": "India",
"tax_identifier": {
"tax_rule_id": "68cf3ba45315901ee8d46050"
},
"hs_code": "125679",
"sizes": [
{
"primary_identifier": "8904578390999",
"size": "1Ton",
"price": 50000,
"price_effective": 45000,
"item_length": 60,
"item_width": 60,
"item_height": 20,
"item_weight": 1000,
"track_inventory": true,
"identifiers": [
{
"gtin_value": "8904578390999",
"gtin_type": "SKU",
"primary": true
}
]
}
],
"trader": [
{
"type": "Manufacturer",
"name": "Air Cooler Pvt Ltd",
"address": [
"Northstar Logistics, Level 6, Unit 604, Tower B, Skyline Tech Park, Bengaluru, Karnataka 560048, India"
]
}
],
"attributes": {}
}
],
"template": "air-care"
}Response:
{
"trace_id": "a05cb92f-7fab-42e4-9429-6454eae640fa",
"total": 1,
"success": 1,
"failed": 0,
"status": "SUCCESS",
"errors": {},
"stage": "RUNNING",
"batch_id": "68eb84569955e2f2705c9818",
"company_id": 6900,
"last_updated_on": "2025-10-12T10:35:03.059605007Z"
}Attributes vary by L3 category. Use Fetch Attributes by Product to retrieve:
- Mandatory attributes: Must be provided with valid values
- Optional attributes: Can be included if available
- Validation rules: Data types, allowed values, ranges
If mandatory attributes are missing or contain invalid values, the product creation will fail with a validation error. Always fetch and validate attributes before submission.
- Validate reference data first: Always fetch and validate departments, categories, brands, templates, tax rules, and HS codes before creating products
- Check mandatory attributes: Use Fetch Attributes by Product to identify required fields for your target category
- Use unique slugs: Combine product name with a unique identifier (e.g., timestamp or random string) to ensure uniqueness
- Batch intelligently: Group up to 100 products per request for efficient bulk uploads, but start with smaller batches for testing
- Track with trace_id: Save the
trace_idand poll the status endpoint untilstage: COMPLETEDorstage: FAILED - Handle partial failures: Check the
errorsobject for validation details on failed products and resubmit after fixing issues - Validate pricing: Ensure
price_effective(ESP) ≤price(MRP) to avoid validation errors - Use primary identifiers: Always set
primary: truefor the main SKU identifier in the identifiers array - Include trader information: Provide at least one trader (Manufacturer, Importer, Packer, or Seller) with complete address details
- Test with single products: Validate your payload with one product before scaling to bulk uploads
- To check product creation status, see Check Product Status
- To update existing products, see Update Product
- To retrieve created products, see Fetch Products
- To delete products or variants, see Delete Product
- For complete catalog management workflow, see Catalog Management Guide