Catalog API
The Catalog API provides endpoints for managing products, categories, attributes, and taxonomies.Scope: Tenant-scoped; requires authenticated org context
Availability: Not available in SuperAdmin
Availability: Not available in SuperAdmin
Authentication
All requests require authentication. Include your API key in theAuthorization header:
Base URL
Headers
All requests must include:Endpoints
| Method | Path | Summary | Auth | Stability | Permissions |
|---|---|---|---|---|---|
GET | /api/products | List products | session | stable | products.read |
POST | /api/products | Create a product | session | stable | products.write |
GET | /api/products/[id] | Get a specific product | session | stable | products.read |
PATCH | /api/products/[id] | Update a product | session | stable | products.write |
DELETE | /api/products/[id] | Delete a product | session | stable | products.write |
GET | /api/products/[id]/attributes | Get product attributes | session | stable | products.read |
POST | /api/products/[id]/attributes | Create product attributes | session | stable | products.write |
POST | /api/products/[id]/attributes/apply | Apply product attributes | session | stable | products.write |
GET | /api/products/[id]/categories | Get product categories | session | stable | products.read |
POST | /api/products/[id]/categories | Assign product categories | session | stable | products.write |
POST | /api/products/[id]/categories/apply | Apply product categories | session | stable | products.write |
POST | /api/products/[id]/categories/suggest | Suggest product categories | session | beta ⚠️ | products.read |
GET | /api/products/[id]/history | Get product history | session | stable | products.read |
GET | /api/products/[id]/inventory-levels | Get product inventory levels | session | stable | products.read, inventory.read |
GET | /api/products/[id]/links | Get product links | session | stable | products.read |
POST | /api/products/[id]/links | Create product link | session | stable | products.write |
GET | /api/products/[id]/variants | List product variants | session | stable | products.read |
POST | /api/products/[id]/variants | Create product variant | session | stable | products.write |
GET | /api/products/[id]/variants/[variantId] | Get product variant | session | stable | products.read |
PATCH | /api/products/[id]/variants/[variantId] | Update product variant | session | stable | products.write |
DELETE | /api/products/[id]/variants/[variantId] | Delete product variant | session | stable | products.write |
GET | /api/products/[id]/versions | Get product versions | session | stable | products.read |
GET | /api/stock-requests/products/search | Search products for stock requests | session | stable | stockrequests.read, products.read |
GET | /api/taxonomies | List taxonomies | session | stable | taxonomies.read |
GET | /api/taxonomies/[id]/nodes/search | Search taxonomy nodes | session | stable | taxonomies.read |
GET | /api/taxonomies/[id]/tree | Get taxonomy tree | session | stable | taxonomies.read |
Example Requests
List Products
Create Product
Get Taxonomy Tree
Common Errors
401 Unauthorized
Authorization header.
400 Bad Request
403 Forbidden
products.write permission.
Solution: Ensure your API key has the required permissions.
404 Not Found
409 Conflict
Query Parameters
List Products
categoryId: Filter by categorysearch: Search by product name or SKUstatus: Filter by status (ACTIVE,PENDING,REVOKED)page: Page number (default: 1)limit: Page size (default: 20, max: 100)sortBy: Sort field (default:createdAt)sortOrder: Sort order (asc,desc)
List Categories
parentId: Filter by parent categorysearch: Search by category namepage: Page number (default: 1)limit: Page size (default: 20, max: 100)
Search Taxonomy Nodes
query: Search queryparentId: Filter by parent nodelimit: Result limit (default: 20, max: 100)