API Documentation

Define your product structure

Schemas define the attribute groups, data types, and validation rules that shape your products. Sigma PIM supports 8 attribute types, dimension-scoped values, conditional guards, and variant inheritance — all configured through schemas and attributes.

8 Attribute Types

text number boolean datetime media option relation complex

Dimension Scoping

Any attribute can be scoped to Language, Market, or Channel via dimensionIds. Unscoped attributes use a global value.

Validation Rules

Enforce maxLength, min/max, pattern regex, and unique constraints per attribute.

Conditional Guards

Show or hide attributes based on other field values using 5 operators: equals, notEquals, isEmpty, isNotEmpty, in.

Schema Endpoints

List all schemas

GET /api/v1/schemas

Returns an array of all schemas in the workspace. Each schema includes its attribute groups, variant configuration, and optional workflow reference.

curl https://api.sigma-pim.com/api/v1/schemas \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response [ { "id": "schema-apparel", "alias": "apparel", "name": "Apparel", "description": "Clothing and accessories", "icon": "shirt", "variantEnabled": true, "workflowId": "wf-standard", "attributeGroups": [ { "id": "grp-general", "name": "General", "sortOrder": 0, "attributeIds": ["attr-product-name", "attr-sku", "attr-price"] }, { "id": "grp-details", "name": "Details", "sortOrder": 1, "attributeIds": ["attr-description", "attr-material"] } ] } ]

Create a schema

POST /api/v1/schemas

Creates a new schema that defines the structure for a type of product. Attribute groups organize attributes into logical tabs in the UI.

FieldTypeRequiredDescription
idstringYesUnique identifier for the schema
aliasstringYesURL-safe alias (e.g. apparel)
namestringYesHuman-readable display name
descriptionstringNoOptional description of the schema
iconstringNoIcon identifier for UI display
variantEnabledbooleanYesWhether records of this schema can have variants
attributeGroupsAttributeGroup[]YesArray of attribute groups with id, name, sortOrder, attributeIds
workflowIdstringNoReference to a Workflow entity for lifecycle management
curl -X POST https://api.sigma-pim.com/api/v1/schemas \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "id": "schema-apparel", "alias": "apparel", "name": "Apparel", "description": "Clothing and accessories", "icon": "shirt", "variantEnabled": true, "workflowId": "wf-standard", "attributeGroups": [ { "id": "grp-general", "name": "General", "sortOrder": 0, "attributeIds": ["attr-product-name", "attr-sku", "attr-price"] }, { "id": "grp-details", "name": "Details", "sortOrder": 1, "attributeIds": ["attr-description", "attr-material"] } ] }'
// Response — 201 Created { "id": "schema-apparel", "alias": "apparel", "name": "Apparel", "description": "Clothing and accessories", "icon": "shirt", "variantEnabled": true, "workflowId": "wf-standard", "attributeGroups": [ { "id": "grp-general", "name": "General", "sortOrder": 0, "attributeIds": ["attr-product-name", "attr-sku", "attr-price"] }, { "id": "grp-details", "name": "Details", "sortOrder": 1, "attributeIds": ["attr-description", "attr-material"] } ] }

Get a schema

GET /api/v1/schemas/:id

Returns a single schema by its ID, including all attribute groups and configuration.

ParameterInDescription
idpathSchema ID (e.g. schema-apparel)
curl https://api.sigma-pim.com/api/v1/schemas/schema-apparel \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response { "id": "schema-apparel", "alias": "apparel", "name": "Apparel", "description": "Clothing and accessories", "icon": "shirt", "variantEnabled": true, "workflowId": "wf-standard", "attributeGroups": [ /* ... */ ] }

Update a schema

PUT /api/v1/schemas/:id

Updates an existing schema. You can modify any field — name, description, attribute groups, variant configuration, or workflow reference. Fields not included in the request body remain unchanged.

ParameterInDescription
idpathSchema ID to update
curl -X PUT https://api.sigma-pim.com/api/v1/schemas/schema-apparel \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "name": "Apparel & Footwear", "description": "Clothing, accessories, and shoes", "attributeGroups": [ { "id": "grp-general", "name": "General", "sortOrder": 0, "attributeIds": ["attr-product-name", "attr-sku", "attr-price", "attr-color"] } ] }'
// Response { "id": "schema-apparel", "alias": "apparel", "name": "Apparel & Footwear", "description": "Clothing, accessories, and shoes", "variantEnabled": true, "workflowId": "wf-standard", "attributeGroups": [ { "id": "grp-general", "name": "General", "sortOrder": 0, "attributeIds": ["attr-product-name", "attr-sku", "attr-price", "attr-color"] } ] }

Delete a schema

DELETE /api/v1/schemas/:id

Permanently deletes a schema. This will not automatically delete records using this schema — ensure records are migrated or removed first.

ParameterInDescription
idpathSchema ID to delete
curl -X DELETE https://api.sigma-pim.com/api/v1/schemas/schema-apparel \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response — 204 No Content

List attributes for a schema

GET /api/v1/schemas/:id/attributes

Returns all attribute definitions referenced by the schema's attribute groups, in group order. This is a convenience endpoint that resolves the attribute IDs from each group into full attribute objects.

ParameterInDescription
idpathSchema ID
curl https://api.sigma-pim.com/api/v1/schemas/schema-apparel/attributes \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response [ { "id": "attr-product-name", "alias": "product-name", "name": "Product Name", "dataType": "text", "dimensionIds": ["dim-language"], "required": true, "multiValue": false, "inheritable": true, "validation": { "maxLength": 200 } }, { "id": "attr-sku", "alias": "sku", "name": "SKU", "dataType": "text", "dimensionIds": [], "required": true, "multiValue": false, "inheritable": false, "validation": { "unique": true, "pattern": "^[A-Z0-9-]+$" } }, { "id": "attr-price", "alias": "price", "name": "Price", "dataType": "number", "dimensionIds": ["dim-market"], "required": true, "multiValue": false, "inheritable": true, "unit": "EUR", "validation": { "min": 0 } } ]

Attribute Endpoints

List all attributes

GET /api/v1/attributes

Returns all attribute definitions across the workspace. Attributes are shared resources — the same attribute can be referenced by multiple schemas.

curl https://api.sigma-pim.com/api/v1/attributes \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response [ { "id": "attr-product-name", "alias": "product-name", "name": "Product Name", "dataType": "text", "dimensionIds": ["dim-language"], "required": true, "multiValue": false, "inheritable": true, "validation": { "maxLength": 200 } }, /* ... more attributes */ ]

Create an attribute

POST /api/v1/attributes

Creates a new attribute definition. The dataType determines which validation rules and options are applicable. Use dimensionIds to scope the attribute to specific dimensions (e.g. language, market).

FieldTypeRequiredDescription
idstringYesUnique identifier
aliasstringYesURL-safe alias used in values map (e.g. product-name)
namestringYesDisplay name
dataTypestringYesOne of: text, number, boolean, datetime, media, option, relation, complex
dimensionIdsstring[]YesDimension IDs this attribute is scoped to (empty array for global)
requiredbooleanYesWhether a value must be provided
multiValuebooleanYesWhether the attribute accepts multiple values
inheritablebooleanYesWhether variants inherit this value from parent
readOnlybooleanNoIf true, value cannot be edited via UI
optionListIdstringNoRequired for option type — references an OptionList
unitstringNoUnit of measurement (e.g. EUR, kg, cm)
validationobjectNoValidation rules: maxLength, min, max, pattern, unique
guardsAttributeGuard[]NoConditional visibility rules based on other attribute values
curl -X POST https://api.sigma-pim.com/api/v1/attributes \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "id": "attr-description", "alias": "description", "name": "Product Description", "dataType": "text", "dimensionIds": ["dim-language"], "required": false, "multiValue": false, "inheritable": true, "validation": { "maxLength": 5000 } }'
// Response — 201 Created { "id": "attr-description", "alias": "description", "name": "Product Description", "dataType": "text", "dimensionIds": ["dim-language"], "required": false, "multiValue": false, "inheritable": true, "validation": { "maxLength": 5000 } }

Get an attribute

GET /api/v1/attributes/:id

Returns a single attribute definition by its ID.

ParameterInDescription
idpathAttribute ID (e.g. attr-product-name)
curl https://api.sigma-pim.com/api/v1/attributes/attr-product-name \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response { "id": "attr-product-name", "alias": "product-name", "name": "Product Name", "dataType": "text", "dimensionIds": ["dim-language"], "required": true, "multiValue": false, "inheritable": true, "validation": { "maxLength": 200 } }

Update an attribute

PUT /api/v1/attributes/:id

Updates an existing attribute definition. Changes to dataType may affect existing values. Changes to validation rules are applied to future writes; existing values are not retroactively validated.

ParameterInDescription
idpathAttribute ID to update
curl -X PUT https://api.sigma-pim.com/api/v1/attributes/attr-description \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "name": "Long Description", "required": true, "validation": { "maxLength": 10000 } }'
// Response { "id": "attr-description", "alias": "description", "name": "Long Description", "dataType": "text", "dimensionIds": ["dim-language"], "required": true, "multiValue": false, "inheritable": true, "validation": { "maxLength": 10000 } }

Delete an attribute

DELETE /api/v1/attributes/:id

Permanently deletes an attribute definition. Ensure it is removed from all schema attribute groups first. Existing values for this attribute on records will become orphaned.

ParameterInDescription
idpathAttribute ID to delete
curl -X DELETE https://api.sigma-pim.com/api/v1/attributes/attr-description \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response — 204 No Content

Attribute Types Reference

TypeValue FormatApplicable ValidationNotes
textStringmaxLength, pattern, uniqueSupports multiLine and richText flags
numberNumbermin, maxSupports unit (e.g. EUR, kg)
booleantrue / falseSimple toggle
datetimeISO 8601 stringe.g. 2024-01-15T10:30:00Z
mediaURL string or objectImage, video, or document references
optionOption value ID(s)Requires optionListId reference
relationEntity ID(s)Requires targetSchemaId for validation
complexNested objectUses subFields for nested attribute definitions

Conditional Guards

Guards let you conditionally show or hide attributes based on other attribute values. For example, show a "Material Composition" field only when the product category is set to "Apparel".

// Attribute with a guard: only visible when "category" equals "apparel" { "id": "attr-material-composition", "alias": "material-composition", "name": "Material Composition", "dataType": "text", "dimensionIds": [], "required": false, "multiValue": false, "inheritable": true, "guards": [ { "attributeId": "attr-category", "operator": "equals", "value": "apparel" } ] }