Create a product
const url = 'https://api.semantico.ai/api/v1/products/?locale=en-US';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"sku":"SKU-001","barcode":"840000000001","brand":"Acme","category":"Root > Subcategory","name":"Acme water bottle 750ml","url":"https://example.com/product-page","images":[{"source_url":"https://example.com/image-1.jpg","order":0}],"variants":[{"sku":"SKU-001-RED","barcode":"840000000101","name":"Red variant"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.semantico.ai/api/v1/products/?locale=en-US' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "sku": "SKU-001", "barcode": "840000000001", "brand": "Acme", "category": "Root > Subcategory", "name": "Acme water bottle 750ml", "url": "https://example.com/product-page", "images": [ { "source_url": "https://example.com/image-1.jpg", "order": 0 } ], "variants": [ { "sku": "SKU-001-RED", "barcode": "840000000101", "name": "Red variant" } ] }'Creates a new product, optionally with variants. If a product with a matching barcode, sku, mpn, asin, or external_id already exists, the request updates it idempotently. When variants is provided, the product is created as a product model and variant creation runs in the background.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Example
en-USLocale for name, description, and attributes. Defaults to the workspace default locale.
Request Bodyrequired
Section titled “Request Bodyrequired”None of these fields are strictly required, but uniqueness rules apply to sku, barcode, mpn, and asin.
object
EAN / barcode.
Human-readable category path, e.g. Root > Subcategory.
object
object
object
object
Product list code values.
Tag IDs.
Example
{ "sku": "SKU-001", "barcode": "840000000001", "brand": "Acme", "category": "Root > Subcategory", "name": "Acme water bottle 750ml", "url": "https://example.com/product-page", "images": [ { "source_url": "https://example.com/image-1.jpg", "order": 0 } ], "variants": [ { "sku": "SKU-001-RED", "barcode": "840000000101", "name": "Red variant" } ]}Responses
Section titled “Responses”Matched and updated an existing product
object
EAN / barcode.
Human-readable category path, e.g. Root > Subcategory.
object
object
object
object
Product list code values.
Tag IDs.
None of these fields are strictly required, but uniqueness rules apply to sku, barcode, mpn, and asin.
object
EAN / barcode.
Human-readable category path, e.g. Root > Subcategory.
object
object
object
object
Product list code values.
Tag IDs.
Custom attributes for the product.
object
Examplegenerated
{ "sku": "example", "barcode": "example", "mpn": "example", "asin": "example", "brand": "example", "category": "example", "name": "example", "description": "example", "url": "https://example.com", "html_description": "example", "external_id": "example", "open_attributes": {}, "crawl_configuration": { "reference_string": "example", "source_url": "https://example.com" }, "images": [ { "source_url": "https://example.com", "order": 1 } ], "metadata": {}, "product_lists": [ "example" ], "tags_to_update": [ 1 ], "variants": [], "id": 1, "is_product_model": true, "created_at": "2026-04-15T12:00:00Z", "sections": [ {} ]}Product created
object
EAN / barcode.
Human-readable category path, e.g. Root > Subcategory.
object
object
object
object
Product list code values.
Tag IDs.
None of these fields are strictly required, but uniqueness rules apply to sku, barcode, mpn, and asin.
object
EAN / barcode.
Human-readable category path, e.g. Root > Subcategory.
object
object
object
object
Product list code values.
Tag IDs.
Custom attributes for the product.
object
Examplegenerated
{ "sku": "example", "barcode": "example", "mpn": "example", "asin": "example", "brand": "example", "category": "example", "name": "example", "description": "example", "url": "https://example.com", "html_description": "example", "external_id": "example", "open_attributes": {}, "crawl_configuration": { "reference_string": "example", "source_url": "https://example.com" }, "images": [ { "source_url": "https://example.com", "order": 1 } ], "metadata": {}, "product_lists": [ "example" ], "tags_to_update": [ 1 ], "variants": [], "id": 1, "is_product_model": true, "created_at": "2026-04-15T12:00:00Z", "sections": [ {} ]}Accepted — variants created in the background
object
Examplegenerated
{ "background_task_id": 1}Field-level validation error.
object
Example
{ "barcode": [ "A product with this barcode already exists." ]}Missing or invalid token.
object
Examplegenerated
{ "detail": "example"}