Dimensions
Every value knows its scope
Language, Market, Channel are all first-class dimensions. No hardcoded locale fields. Any attribute can be scoped by any combination of dimensions. The scope matrix is the cartesian product of all selected dimension segments.
First-class Dimensions
Language, Market, and Channel are all generic dimensions — no special "localized" boolean. Every attribute declares which dimensions scope it via dimensionIds.
Scope Matrix
The scope matrix is the cartesian product of all segments across selected dimensions. Use POST /dimensions/scope-matrix to compute it.
Segments
Each dimension contains named segments. A Language dimension might have en, da, sv. A Market dimension might have DK, SE, NO.
Default Segment
Each dimension has a defaultSegmentId that determines which segment is used as the fallback when no scope is specified.
Endpoints
| Method | Path | Description |
| GET | /dimensions | List all dimensions |
| POST | /dimensions | Create a dimension |
| GET | /dimensions/:id | Get dimension by ID |
| PUT | /dimensions/:id | Update a dimension |
| DELETE | /dimensions/:id | Delete a dimension |
| POST | /dimensions/scope-matrix | Compute scope matrix |
Returns all dimensions with their segments.
curl https://api.sigma-pim.com/api/v1/dimensions \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
[
{
"id": "dim-language",
"alias": "language",
"name": "Language",
"defaultSegmentId": "seg-en",
"segments": [
{ "id": "seg-en", "alias": "en", "name": "English", "isDefault": true },
{ "id": "seg-da", "alias": "da", "name": "Danish", "isDefault": false },
{ "id": "seg-sv", "alias": "sv", "name": "Swedish", "isDefault": false }
]
},
{
"id": "dim-market",
"alias": "market",
"name": "Market",
"defaultSegmentId": "seg-dk",
"segments": [
{ "id": "seg-dk", "alias": "dk", "name": "Denmark", "isDefault": true },
{ "id": "seg-se", "alias": "se", "name": "Sweden", "isDefault": false },
{ "id": "seg-no", "alias": "no", "name": "Norway", "isDefault": false }
]
}
]
Create a new dimension with its segments. Each segment has a unique ID, alias, and display name.
Request Body
| Field | Type | Description |
id | string | Unique identifier for the dimension |
alias | string | URL-friendly alias |
name | string | Display name |
segments | Segment[] | Array of segment objects |
segments[].id | string | Unique segment identifier |
segments[].alias | string | Segment alias (e.g. "en", "da") |
segments[].name | string | Segment display name |
segments[].isDefault | boolean | Whether this is the default segment |
defaultSegmentId | string | ID of the default segment |
curl -X POST https://api.sigma-pim.com/api/v1/dimensions \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"id": "dim-language",
"alias": "language",
"name": "Language",
"defaultSegmentId": "seg-en",
"segments": [
{ "id": "seg-en", "alias": "en", "name": "English", "isDefault": true },
{ "id": "seg-da", "alias": "da", "name": "Danish", "isDefault": false },
{ "id": "seg-sv", "alias": "sv", "name": "Swedish", "isDefault": false }
]
}'
{
"id": "dim-language",
"alias": "language",
"name": "Language",
"defaultSegmentId": "seg-en",
"segments": [
{ "id": "seg-en", "alias": "en", "name": "English", "isDefault": true },
{ "id": "seg-da", "alias": "da", "name": "Danish", "isDefault": false },
{ "id": "seg-sv", "alias": "sv", "name": "Swedish", "isDefault": false }
]
}
Retrieve a single dimension by its ID, including all segments.
Path Parameters
| Parameter | Type | Description |
id | string | The dimension ID (e.g. dim-language) |
curl https://api.sigma-pim.com/api/v1/dimensions/dim-language \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
{
"id": "dim-language",
"alias": "language",
"name": "Language",
"defaultSegmentId": "seg-en",
"segments": [
{ "id": "seg-en", "alias": "en", "name": "English", "isDefault": true },
{ "id": "seg-da", "alias": "da", "name": "Danish", "isDefault": false },
{ "id": "seg-sv", "alias": "sv", "name": "Swedish", "isDefault": false }
]
}
Update a dimension, including adding, removing, or modifying segments. Provide the full dimension object.
curl -X PUT https://api.sigma-pim.com/api/v1/dimensions/dim-market \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"id": "dim-market",
"alias": "market",
"name": "Market",
"defaultSegmentId": "seg-dk",
"segments": [
{ "id": "seg-dk", "alias": "dk", "name": "Denmark", "isDefault": true },
{ "id": "seg-se", "alias": "se", "name": "Sweden", "isDefault": false },
{ "id": "seg-no", "alias": "no", "name": "Norway", "isDefault": false },
{ "id": "seg-fi", "alias": "fi", "name": "Finland", "isDefault": false }
]
}'
{
"id": "dim-market",
"alias": "market",
"name": "Market",
"defaultSegmentId": "seg-dk",
"segments": [
{ "id": "seg-dk", "alias": "dk", "name": "Denmark", "isDefault": true },
{ "id": "seg-se", "alias": "se", "name": "Sweden", "isDefault": false },
{ "id": "seg-no", "alias": "no", "name": "Norway", "isDefault": false },
{ "id": "seg-fi", "alias": "fi", "name": "Finland", "isDefault": false }
]
}
Delete a dimension. Returns 204 No Content on success.
curl -X DELETE https://api.sigma-pim.com/api/v1/dimensions/dim-channel \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Compute the scope matrix — the cartesian product of all segments across the specified dimensions. This tells you every possible scope combination an attribute value can have.
Request Body
| Field | Type | Description |
dimensionIds | string[] | Array of dimension IDs to compute the matrix for |
curl -X POST https://api.sigma-pim.com/api/v1/dimensions/scope-matrix \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "dimensionIds": ["dim-language", "dim-market"] }'
[
{ "dim-language": "seg-en", "dim-market": "seg-dk" },
{ "dim-language": "seg-en", "dim-market": "seg-se" },
{ "dim-language": "seg-en", "dim-market": "seg-no" },
{ "dim-language": "seg-da", "dim-market": "seg-dk" },
{ "dim-language": "seg-da", "dim-market": "seg-se" },
{ "dim-language": "seg-da", "dim-market": "seg-no" },
{ "dim-language": "seg-sv", "dim-market": "seg-dk" },
{ "dim-language": "seg-sv", "dim-market": "seg-se" },
{ "dim-language": "seg-sv", "dim-market": "seg-no" }
]