API Documentation

Build with the Sigma PIM API

A complete REST API for managing product information. Structure, enrich, and syndicate product data across every channel, language, and market from a single source of truth.

Base URL

https://api.sigma-pim.com/api/v1

Authentication

JWT token via Authorization: Bearer or API key via X-Sigma-ApiKey

Content Type

All requests and responses use application/json

Health Check

GET /healthz — no authentication required

Quickstart

1
Authenticate

Get a JWT token by posting your credentials to the login endpoint.

curl -X POST https://api.sigma-pim.com/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email": "admin@sigma.io", "password": "admin"}'
// Response { "token": "eyJhbGciOiJIUzI1NiIs...", "user": { "id": "user-admin", "email": "admin@sigma.io", "name": "Admin User", "roleId": "role-admin" } }
2
List your schemas

Schemas define the structure of your products — their attributes, types, and validation rules.

curl https://api.sigma-pim.com/api/v1/schemas \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
3
Create a product record

Create a new product by specifying its schema and initial attribute values. Values are scoped to dimensions (language, market, channel).

curl -X POST https://api.sigma-pim.com/api/v1/records \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "schemaId": "schema-apparel", "values": { "product-name": [ { "scope": {}, "value": "Coastal Windbreaker" }, { "scope": {"dim-language": "seg-da"}, "value": "Kyst Vindjakke" } ], "sku": [{ "scope": {}, "value": "CW-001" }], "price": [{ "scope": {}, "value": 129.99 }] } }'
4
Search for products

Query records using 7 operators with AND/OR logic. Scope-aware filtering lets you search within specific dimensions.

curl -X POST https://api.sigma-pim.com/api/v1/search \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "criteriaOperator": "and", "criteria": [ { "attributeAlias": "product-name", "operator": "contains", "value": "Coastal" }, { "attributeAlias": "price", "operator": "gt", "value": "100" } ] }'

API Sections

Key Concepts

Scoped Values

Every attribute value is stored with a scope object that maps dimension IDs to segment IDs. An empty scope {} means the value is global. A scope like {"dim-language": "seg-da"} means the value applies only to Danish.

Dimensions

Language, Market, and Channel are all generic dimensions. There are no hardcoded locale fields. Any attribute can be scoped by any combination of dimensions via dimensionIds.

Variant Inheritance

Variants inherit all attribute values from their parent. They only store overridden values. The /resolved endpoint merges parent + child values, showing exactly what each variant represents.

Lifecycle Workflows

Products move through states like Draft, Review, and Published. Transitions can require minimum completeness scores and specific role permissions. Every change is audited.