API Documentation

Organize products into any hierarchy

Create unlimited catalog trees with nested categories and entity assignments. Build hierarchies that match your commerce topology — webshops, marketplaces, print catalogs, or internal collections.

Unlimited Catalogs

Create as many catalogs as you need. Each catalog has its own independent category tree and entity assignments.

Nested Categories

Categories support unlimited nesting via parentId. The /tree endpoint returns the full hierarchy pre-assembled.

Entity Assignments

Assign records to any category. A single record can appear in multiple categories and multiple catalogs simultaneously.

Cascade Delete

Deleting a catalog removes all its categories and assignments. Deleting a category removes its subcategories and assignments.

Catalog Endpoints

Method Endpoint Description
GET /catalogs List all catalogs
POST /catalogs Create a catalog
GET /catalogs/:id Get catalog by ID
PUT /catalogs/:id Update a catalog
DELETE /catalogs/:id Delete catalog and all categories
GET /catalogs/:id/tree Full category tree (nested)

Category Endpoints

Method Endpoint Description
POST /catalogs/:id/categories Create a category
GET /categories/:id Get category by ID
PUT /categories/:id Update a category
DELETE /categories/:id Delete category and subcategories

Assignment Endpoints

Method Endpoint Description
POST /categories/:id/assign Assign record to category
POST /categories/:id/unassign Remove record from category
GET /categories/:id/entities List records in a category

List Catalogs

Returns all catalogs in the workspace.

curl https://api.sigma-pim.com/api/v1/catalogs \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response [ { "id": "cat-webshop", "alias": "webshop", "name": "Webshop", "description": "Main e-commerce product hierarchy" }, { "id": "cat-marketplace", "alias": "marketplace", "name": "Marketplace", "description": "Amazon and eBay product listings" } ]

Create Catalog

Create a new catalog to organize products into a custom hierarchy.

FieldTypeRequiredDescription
idstringYesUnique catalog ID
aliasstringYesURL-friendly identifier
namestringYesDisplay name
descriptionstringNoOptional description
curl -X POST https://api.sigma-pim.com/api/v1/catalogs \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "id": "cat-webshop", "alias": "webshop", "name": "Webshop", "description": "Main e-commerce product hierarchy" }'
// Response — 201 Created { "id": "cat-webshop", "alias": "webshop", "name": "Webshop", "description": "Main e-commerce product hierarchy" }

Get Catalog

Retrieve a specific catalog by its ID.

curl https://api.sigma-pim.com/api/v1/catalogs/cat-webshop \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Update Catalog

Update a catalog's name, alias, or description.

curl -X PUT https://api.sigma-pim.com/api/v1/catalogs/cat-webshop \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "name": "Webshop 2026", "description": "Updated e-commerce hierarchy for 2026 season" }'

Delete Catalog

Permanently remove a catalog and all its categories and assignments. Returns 204 No Content on success.

curl -X DELETE https://api.sigma-pim.com/api/v1/catalogs/cat-webshop \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Category Tree

Returns the full nested category tree for a catalog. Each node includes its children and assigned entity IDs. This is the primary endpoint for building navigation trees in your storefront or admin UI.

curl https://api.sigma-pim.com/api/v1/catalogs/cat-webshop/tree \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response — nested tree: Outerwear > Jackets > Windbreakers [ { "id": "catg-outerwear", "catalogId": "cat-webshop", "name": "Outerwear", "parentId": null, "sortOrder": 0, "entityIds": [], "children": [ { "id": "catg-jackets", "catalogId": "cat-webshop", "name": "Jackets", "parentId": "catg-outerwear", "sortOrder": 0, "entityIds": [], "children": [ { "id": "catg-windbreakers", "catalogId": "cat-webshop", "name": "Windbreakers", "parentId": "catg-jackets", "sortOrder": 0, "entityIds": ["ent-coastal-wb", "ent-alpine-wb"], "children": [] } ] } ] }, { "id": "catg-footwear", "catalogId": "cat-webshop", "name": "Footwear", "parentId": null, "sortOrder": 1, "entityIds": [], "children": [] } ]

Create Category

Add a new category to a catalog. Set parentId to nest it under an existing category, or omit it for a root-level category.

FieldTypeRequiredDescription
idstringYesUnique category ID
namestringYesDisplay name
parentIdstringNoParent category ID (omit for root-level)
sortOrdernumberNoSort position among siblings (default: 0)
curl -X POST https://api.sigma-pim.com/api/v1/catalogs/cat-webshop/categories \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "id": "catg-windbreakers", "name": "Windbreakers", "parentId": "catg-jackets", "sortOrder": 0 }'
// Response — 201 Created { "id": "catg-windbreakers", "catalogId": "cat-webshop", "name": "Windbreakers", "parentId": "catg-jackets", "sortOrder": 0, "entityIds": [] }

Get Category

Retrieve a specific category by its ID.

curl https://api.sigma-pim.com/api/v1/categories/catg-windbreakers \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Update Category

Update a category's name, parent, or sort order. Moving a category to a new parent re-nests it along with all its children.

FieldTypeDescription
namestringUpdated display name
parentIdstringMove to a different parent category
sortOrdernumberUpdated sort position
curl -X PUT https://api.sigma-pim.com/api/v1/categories/catg-windbreakers \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "name": "Wind & Rain Jackets", "sortOrder": 1 }'

Delete Category

Permanently remove a category. All subcategories and their assignments are also removed. Returns 204 No Content on success.

curl -X DELETE https://api.sigma-pim.com/api/v1/categories/catg-windbreakers \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Assign Record to Category

Assign a record (entity) to a category. The same record can be assigned to multiple categories across any number of catalogs. Optionally set a sortOrder for the assignment.

FieldTypeRequiredDescription
entityIdstringYesID of the record to assign
sortOrdernumberNoSort position within the category (default: 0)
curl -X POST https://api.sigma-pim.com/api/v1/categories/catg-windbreakers/assign \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "entityId": "ent-coastal-wb", "sortOrder": 0 }'
// Response { "id": "catg-windbreakers", "catalogId": "cat-webshop", "name": "Windbreakers", "parentId": "catg-jackets", "sortOrder": 0, "entityIds": ["ent-coastal-wb"] }

Remove Record from Category

Remove a record from a category. The record itself is not deleted — only the assignment is removed. Returns 204 No Content on success.

curl -X POST https://api.sigma-pim.com/api/v1/categories/catg-windbreakers/unassign \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json" \ -d '{ "entityId": "ent-coastal-wb" }'

List Records in Category

Returns all records assigned to a specific category. Use this to build product listing pages for a given category in your storefront.

curl https://api.sigma-pim.com/api/v1/categories/catg-windbreakers/entities \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
// Response [ { "id": "ent-coastal-wb", "schemaId": "schema-apparel", "lifecycleState": "published", "values": { "product-name": [ { "scope": {}, "value": "Coastal Windbreaker" } ], "sku": [{ "scope": {}, "value": "CW-001" }], "price": [{ "scope": {}, "value": 129.99 }] } }, { "id": "ent-alpine-wb", "schemaId": "schema-apparel", "lifecycleState": "published", "values": { "product-name": [ { "scope": {}, "value": "Alpine Windbreaker" } ], "sku": [{ "scope": {}, "value": "AW-002" }], "price": [{ "scope": {}, "value": 149.99 }] } } ]