KintsugiKintsugi

Create product

POST/v1/products

The Create Product API allows users to manually create a new product in the system. This includes specifying product details such as category, subcategory, and tax exemption status, etc. You can retrieve supported categories and subcategories from the GET /products/categories endpoint, or browse the full catalog with descriptions and examples in the Product Categories guide.

Idempotent on ``(organization_id, external_id, source)`` for connectionless
creates (CP-4726): a re-POST of an existing identity returns ``200``. A live
match is unchanged; a previously deleted match is revived (status returns to
``PENDING``). Use PUT to update fields.

Authorization

x-api-keystringRequired

Your secret API key. Include it with every request.

Body

external_idstringRequired

A unique external identifier for the product.

namestringRequired

The name of the product.

descriptionstring

A description of the product.

statusProductStatusEnum

The approval status of the product.

Available options:APPROVEDPARTIALLY_APPROVEDPENDINGARCHIVED
product_categoryPublicProductCategoryEnumRequired

The high-level category of the product.

Available options:PhysicalDigitalMiscServices
product_subcategorystringRequired

Tax subcategory display label within the category (e.g. 'General Clothing'). Together with product_category it resolves to a product tax code; an unrecognized pair returns 400. List supported values from GET /products/categories.

tax_exemptbooleanRequired

Specifies whether the product is tax-exempt.

sourceSourceEnum

Indicates the source of the product.

Available options:BIGCOMMERCEBESTBUYBUNNYCHARGEBEESHOPIFYSHOPLINEECWIDSTRIPEAMAZONTIKTOKCUSTOMUNKNOWNIMPORTZUORAAPIDECKQUICKBOOKSAPIAPPLE_APP_STOREGOOGLE_APP_STOREWALMARTPAYPALNETSUITEXEROMAXIORECURLYSALESFORCEETSYEBAYWIXSQUARESPACEWOOCOMMERCEMAGENTOMACYSBILLING_PLATFORMDEELRIPPLINGGUSTOFACEBOOKFRESHBOOKSOTHERORDWAYINSTAGRAMPINTERESTWAYFAIRWISHPOSTARGETNEWEGGGROUPONGOOGLE_EXPRESSNOCNOCMERCADO_LIBREMODALYSTNORDSTROMFAIREFRISBII_BILLINGSHOPWAREZOHOZOHO_BOOKSSAGE-INTACCTAIRWALLEXORBZENSKARMICROSOFT_DYNAMICS_365KICKSTARTERINTERNAL_ERPRILLETCAMPFIREKILL_BILLPROVISIONVERTEX_O_SERIESCHECKOUTCHAMPDUALENTRYODOOBILL_COMINTUIT_ENTERPRISE_SUITEACUMATICAPLENTYONEHYPERLINEOPENMETERSALEOR

Response

idstringRequired
external_idstringRequired
skustring[]Required
codestringRequired
namestringRequired
descriptionstringRequired
statusProductStatusEnumRequired
Available options:APPROVEDPARTIALLY_APPROVEDPENDINGARCHIVED
product_categorystringRequired

Main category of the product. For example, Physical, Digital, etc. You can retrieve supported categories from GET /products/categories endpoint

product_subcategorystringRequired

Tax subcategory display label of the product (e.g. 'General Clothing'). List supported values from GET /products/categories.

tax_exemptbooleanRequired
sourceSourceEnumRequired
Available options:BIGCOMMERCEBESTBUYBUNNYCHARGEBEESHOPIFYSHOPLINEECWIDSTRIPEAMAZONTIKTOKCUSTOMUNKNOWNIMPORTZUORAAPIDECKQUICKBOOKSAPIAPPLE_APP_STOREGOOGLE_APP_STOREWALMARTPAYPALNETSUITEXEROMAXIORECURLYSALESFORCEETSYEBAYWIXSQUARESPACEWOOCOMMERCEMAGENTOMACYSBILLING_PLATFORMDEELRIPPLINGGUSTOFACEBOOKFRESHBOOKSOTHERORDWAYINSTAGRAMPINTERESTWAYFAIRWISHPOSTARGETNEWEGGGROUPONGOOGLE_EXPRESSNOCNOCMERCADO_LIBREMODALYSTNORDSTROMFAIREFRISBII_BILLINGSHOPWAREZOHOZOHO_BOOKSSAGE-INTACCTAIRWALLEXORBZENSKARMICROSOFT_DYNAMICS_365KICKSTARTERINTERNAL_ERPRILLETCAMPFIREKILL_BILLPROVISIONVERTEX_O_SERIESCHECKOUTCHAMPDUALENTRYODOOBILL_COMINTUIT_ENTERPRISE_SUITEACUMATICAPLENTYONEHYPERLINEOPENMETERSALEOR
connection_idstringRequired
classification_failedbooleanRequired
store_namestring
source_taxonomy_typestring
source_taxonomy_codestring
source_taxonomy_idstring
source_taxonomy_namestring
source_taxonomy_categoriesobject[]
source_taxonomy_metadataobject
200

An existing product matched on external_id and source; no new product was created. A live match is returned unchanged. A previously deleted match is revived and re-enters classification (its status returns to PENDING), so it may differ from its pre-deletion state.

201

Successfully created product

401

Unauthenticated request.

422

Validation error

500

Internal server error

cURL
POST /v1/products
-H "x-api-key: ***"
{
"external_id": "prod_001",
"name": "T-shirts",
"description": "Common items of everyday wearing apparel designed for human use, covering a wide variety of non-specialized garments.",
"status": "APPROVED",
"product_category": "Physical",
"product_subcategory": "General Clothing",
"tax_exempt": false,
"source": "BIGCOMMERCE"
}
Response
{
"id": "prod_xR9t8P1wMK6aQ",
"external_id": "prod_123",
"code": "CODE_1234",
"name": "Test Product",
"description": "This is a test product description.",
"status": "APPROVED",
"product_category": "Physical",
"product_subcategory": "General Clothing",
"tax_exempt": false,
"source": "SHOPIFY",
"classification_failed": false
}
Create product | Kintsugi API Reference