Products
Case-insensitive substring match on name.
125Tenant id (uuid v4)
Returned when the rate limit is exceeded
GET /api/v1/public/products HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
"meta": {
"total": 1,
"lastPage": 1,
"currentPage": 1,
"perPage": 1,
"prev": 1,
"next": 1
},
"data": [
{
"id": "text",
"name": "text",
"category": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
},
"type": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
},
"vendors": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
],
"status": "draft",
"is_active": true,
"created_at": "text",
"modified_at": "text"
}
]
}Tenant id (uuid v4)
Product type NAME. Server finds (case-insensitive) or creates a ProductType.
Product vendor NAMES. Server finds (case-insensitive) or creates each vendor and links them all to the product meta.
Tag names β server finds-or-creates.
When true, publish the product in the same call. Creates a published Product row alongside the draft; readiness validated in-memory (each variant needs a non-empty SKU + β₯1 active variant per config).
falseDraft product id β the canonical id the caller uses on every subsequent call.
Resolved product_type id or null.
When publish=true was set on create, the id of the published Product row (mirror). Null otherwise.
Returned when the rate limit is exceeded
POST /api/v1/public/products HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1002
{
"name": "text",
"category_id": "123e4567-e89b-12d3-a456-426614174000",
"type": "text",
"vendors": [
"text"
],
"tags": [
"text"
],
"configurations": [
{
"name": "text",
"sku": "text",
"description": "text",
"order": 0,
"options": [
{
"name": "text",
"order": 0,
"values": [
{
"value": "text",
"order": 0
}
]
}
],
"variants": [
{
"combination": [
{
"option_name": "text",
"value": "text"
}
],
"sku": "text",
"barcode": "text",
"is_active": true
}
],
"workflow_templates": [
{
"name": "text",
"order": 0,
"items": [
{
"task": {
"name": "text",
"description": "text",
"time_limit": 0,
"responsibilities": [
{
"name": "text",
"responsibility_count": 1,
"assigment_type": "Manual",
"department_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"position_type_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"user_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"nested_workflow_template_id": "123e4567-e89b-12d3-a456-426614174000"
}
],
"bom": [
{
"variant_combination": [
{
"option_name": "text",
"value": "text"
}
],
"items": [
{
"material_id": "123e4567-e89b-12d3-a456-426614174000",
"quantity": 1
}
]
}
]
}
]
}
],
"publish": false
}{
"id": "text",
"name": "text",
"category_id": "text",
"type_id": "text",
"vendor_ids": [
"text"
],
"tag_ids": [
"text"
],
"status": "draft",
"is_active": true,
"has_published_version": true,
"published_id": "text",
"created_at": "text"
}Tenant id (uuid v4)
True when at least one published version exists for this product.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
"id": "text",
"name": "text",
"category": {
"id": "text",
"name": "text",
"path": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
]
},
"type": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
},
"vendors": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
],
"tags": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
],
"status": "draft",
"is_active": true,
"has_published_version": true,
"created_at": "text",
"modified_at": "text"
}Tenant id (uuid v4)
No content
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Tenant id (uuid v4)
Product type NAME. Server finds (case-insensitive) or creates a ProductType. Send null to clear.
Full-reconcile: exactly these vendor NAMES will be linked to the product meta after the call. Server finds-or-creates each vendor. Send [] to clear all vendor links.
Full-reconcile: exactly these tag names will be on the product.
True when at least one published version exists for this product.
Returned when the rate limit is exceeded
PATCH /api/v1/public/products/{id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 134
{
"name": "text",
"category_id": "123e4567-e89b-12d3-a456-426614174000",
"type": "text",
"vendors": [
"text"
],
"tags": [
"text"
],
"is_active": true
}{
"id": "text",
"name": "text",
"category": {
"id": "text",
"name": "text",
"path": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
]
},
"type": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
},
"vendors": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
],
"tags": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text"
}
],
"status": "draft",
"is_active": true,
"has_published_version": true,
"created_at": "text",
"modified_at": "text"
}Tenant id (uuid v4)
Message returned from API confirming the operation
The operation was done successfullyReturned when the rate limit is exceeded
POST /api/v1/public/products/{id}/publish HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
"message": "The operation was done successfully"
}Tenant id (uuid v4)
Product draft not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"name": "text",
"sku": "text",
"description": "text",
"order": 1,
"is_active": true,
"created_at": "text",
"modified_at": "text"
}
]Tenant id (uuid v4)
Product draft not found.
Configuration cap reached (max 25 per product) or SKU collision.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76
{
"name": "text",
"sku": "text",
"description": "text",
"order": 1,
"is_active": true
}{
"id": "text",
"name": "text",
"sku": "text",
"description": "text",
"order": 1,
"is_active": true,
"created_at": "text",
"modified_at": "text"
}Tenant id (uuid v4)
When true and name is provided, the rename is broadcast to every configuration with the same current name across all published versions of the product. sku and description are always applied only to the addressed configuration (they are per-version snapshots).
falseProduct draft or configuration not found.
SKU collision.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/configurations/{config_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 85
{
"name": "text",
"sku": "text",
"description": "text",
"update_name_in_all_versions": false
}{
"id": "text",
"name": "text",
"sku": "text",
"description": "text",
"order": 1,
"is_active": true,
"created_at": "text",
"modified_at": "text"
}Tenant id (uuid v4)
No content
Product draft or configuration not found.
Last configuration on the product, or a production workflow references its variants.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Tenant id (uuid v4)
Prefer auto-assigning users with prior experience on this workflow.
Product draft or configuration not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations/{config_id}/workflows HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"name": "text",
"order": 1,
"is_active": true,
"prefer_auto_assign_users_with_prior_experience": true,
"created_at": "text"
}
]Tenant id (uuid v4)
Prefer auto-assigning users with prior experience on this workflow.
Product draft or configuration not found.
Configuration already has the maximum of 9 workflow templates.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/workflows HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 96
{
"name": "text",
"order": 1,
"is_active": true,
"prefer_auto_assign_users_with_prior_experience": true
}{
"id": "text",
"name": "text",
"order": 1,
"is_active": true,
"prefer_auto_assign_users_with_prior_experience": true,
"created_at": "text"
}Tenant id (uuid v4)
Prefer auto-assigning users with prior experience on this workflow.
Product draft, configuration, or workflow template not found.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 96
{
"name": "text",
"order": 1,
"is_active": true,
"prefer_auto_assign_users_with_prior_experience": true
}{
"id": "text",
"name": "text",
"order": 1,
"is_active": true,
"prefer_auto_assign_users_with_prior_experience": true,
"created_at": "text"
}Tenant id (uuid v4)
No content
Product draft, configuration, or workflow template not found.
Last workflow on the configuration, or a production workflow references its variants.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Case-insensitive substring match on task name.
Tenant id (uuid v4)
Product draft, configuration, or workflow not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id}/tasks HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"name": "text",
"description": "text",
"order": 1,
"time_limit": 1,
"basic_reward": 1,
"workflow_template_id": "text",
"created_at": "text"
}
]Tenant id (uuid v4)
Component-mode discriminator. When present, the endpoint creates a workflow_template_item referencing this workflow template as a nested component; task-mode fields (name/description/β¦) are ignored. Exactly one of name or nested_workflow_template_id must be provided.
ID of the workflow_template_item (canvas node).
Both or neither of name / nested_workflow_template_id supplied, or validation failure.
Product draft, configuration, workflow, nested workflow template, or responsibility relation id not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id}/tasks HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 406
{
"name": "text",
"description": "text",
"order": 1,
"time_limit": 1,
"basic_reward": 1,
"responsibilities": [
{
"name": "text",
"responsibility_count": 1,
"assigment_type": "Manual",
"department_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"position_type_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"user_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
],
"nested_workflow_template_id": "123e4567-e89b-12d3-a456-426614174000"
}{
"id": "text",
"type": "task",
"task_template_id": "text",
"name": "text",
"description": "text",
"order": 1,
"time_limit": 1,
"basic_reward": 1,
"nested_workflow_template_id": "text",
"position_x": 1,
"position_y": 1,
"created_at": "text"
}Tenant id (uuid v4)
When true, every supplied field (name / order / basic_reward) is broadcast to matching tasks (same current name) on every published version's matching workflow. When false or omitted, only the addressed task row is updated.
falseID of the workflow_template_item (canvas node).
Validation failure, or the addressed item is a component.
Product draft, configuration, workflow, or task item not found.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id}/tasks/{task_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 73
{
"name": "text",
"order": 1,
"basic_reward": 1,
"update_in_all_versions": false
}{
"id": "text",
"type": "task",
"task_template_id": "text",
"name": "text",
"description": "text",
"order": 1,
"time_limit": 1,
"basic_reward": 1,
"nested_workflow_template_id": "text",
"position_x": 1,
"position_y": 1,
"created_at": "text"
}Tenant id (uuid v4)
No content
Product draft, configuration, workflow, or task item not found.
Task item is referenced by a production task (published version already used it).
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/workflows/{workflow_id}/tasks/{task_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Tenant id (uuid v4)
HTTPS URL of the image to download.
https://cdn.example.com/img.pngOptional filename to store the file as.
When true, marks this new photo as the configuration default.
falseWhen true, mirror this add across every published version of the product (same file linked into each version's matching configuration). Default false β draft-only.
falseProduct draft or configuration not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/media HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 109
{
"url": "https://cdn.example.com/img.png",
"file_name": "text",
"is_primary": false,
"apply_to_all_versions": false
}{
"id": "text",
"file_id": "text",
"product_configuration_id": "text",
"is_show_by_default": true
}Tenant id (uuid v4)
When true, remove every matching relation (same file id) across all versions of the product too. Default false β draft-only.
falseNo content
Product draft, configuration, or media not found.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/media/{media_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"apply_to_all_versions": false
}No content
Tenant id (uuid v4)
HTTPS URL of the image to download.
https://cdn.example.com/img.pngOptional filename to store the file as.
Message returned from API confirming the operation
The operation was done successfullyProduct draft, configuration, or variant not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/variants/{variant_id}/photo HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 60
{
"url": "https://cdn.example.com/img.png",
"file_name": "text"
}{
"message": "The operation was done successfully"
}Tenant id (uuid v4)
HTTPS URL of the document to download.
https://cdn.example.com/spec.pdfOptional filename to store the file as.
When true, mirror the upload across every published version of the product (same file linked into each version's matching configuration). Default false β draft-only.
falseID of the attachment relation row.
Signed URL for downloading the file.
Product draft or configuration not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/documents HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 91
{
"url": "https://cdn.example.com/spec.pdf",
"file_name": "text",
"apply_to_all_versions": false
}{
"id": "text",
"product_configuration_id": "text",
"file_id": "text",
"url": "text",
"file_name": "text",
"mime_type": "text",
"size": 1
}Tenant id (uuid v4)
When true, remove every matching relation (same file id) across all versions of the product too. Default false β draft-only.
falseNo content
Product draft, configuration, or document not found.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/documents/{document_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"apply_to_all_versions": false
}No content
Tenant id (uuid v4)
Product draft or configuration not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations/{config_id}/links HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"product_configuration_id": "text",
"title": "text",
"url": "text",
"created_at": "text"
}
]Tenant id (uuid v4)
When true, add the same link into every published version's matching configuration too. Default false β draft-only.
falseValidation failure.
Product draft or configuration not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/links HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"url": "text",
"title": "text",
"apply_to_all_versions": false
}{
"id": "text",
"product_configuration_id": "text",
"title": "text",
"url": "text",
"created_at": "text"
}Tenant id (uuid v4)
When true, apply the change to every sibling link (matched by current URL) on every published version too. Default false β draft-only.
falseValidation failure.
Product draft, configuration, or link not found.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/configurations/{config_id}/links/{link_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"url": "text",
"title": "text",
"apply_to_all_versions": false
}{
"id": "text",
"product_configuration_id": "text",
"title": "text",
"url": "text",
"created_at": "text"
}Tenant id (uuid v4)
When true, remove every sibling link (matched by URL) on every published version too. Default false β draft-only.
falseNo content
Product draft, configuration, or link not found.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/links/{link_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"apply_to_all_versions": false
}No content
Tenant id (uuid v4)
Product draft or configuration not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations/{config_id}/parameters HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"product_configuration_id": "text",
"name": "text",
"order": 1,
"values": [
{
"id": "text",
"value": "text",
"order": 1
}
]
}
]Tenant id (uuid v4)
At least one value; each value is a non-empty string, unique within this parameter.
Validation failure.
Product draft or configuration not found.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/configurations/{config_id}/parameters HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"name": "text",
"values": [
"text"
]
}{
"id": "text",
"product_configuration_id": "text",
"name": "text",
"order": 1,
"values": [
{
"id": "text",
"value": "text",
"order": 1
}
]
}Tenant id (uuid v4)
Full-replace of the value set. Existing values matched by string are kept (variants preserved); missing values are deleted (their variants + parameters are removed); new strings become new values that expand the variant matrix.
Validation failure.
Product draft, configuration, or parameter not found.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/configurations/{config_id}/parameters/{parameter_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"name": "text",
"values": [
"text"
]
}{
"id": "text",
"product_configuration_id": "text",
"name": "text",
"order": 1,
"values": [
{
"id": "text",
"value": "text",
"order": 1
}
]
}Tenant id (uuid v4)
No content
Product draft, configuration, or parameter not found.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/configurations/{config_id}/parameters/{parameter_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Tenant id (uuid v4)
Product draft or configuration not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/configurations/{config_id}/variants HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"product_configuration_id": "text",
"name": "text",
"sku": "text",
"barcode": "text",
"is_active": true,
"has_parameters": true,
"parameters": [
{
"option_name": "text",
"value": "text"
}
]
}
]Tenant id (uuid v4)
When true, apply each barcode to the sibling variant on every published version of the product too (matched by parameter signature). Sibling versions whose config doesn't carry a matching variant are skipped. Draft-only writes bump Product.modified_at; broadcast writes don't.
falseEmpty items, duplicate variant_id, or duplicate barcode across non-sibling variants.
Product draft, configuration, or any addressed variant not found.
A barcode is already used by a non-sibling variant elsewhere in the tenant.
Returned when the rate limit is exceeded
PATCH /api/v1/public/products/{id}/configurations/{config_id}/variants HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 112
{
"items": [
{
"variant_id": "123e4567-e89b-12d3-a456-426614174000",
"barcode": "text"
}
],
"apply_to_all_versions": false
}[
{
"id": "text",
"product_configuration_id": "text",
"name": "text",
"sku": "text",
"barcode": "text",
"is_active": true,
"has_parameters": true,
"parameters": [
{
"option_name": "text",
"value": "text"
}
]
}
]Tenant id (uuid v4)
Product not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/bom HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"product_variant_id": "text",
"workflow_template_id": "text",
"is_published": true,
"items": [
{
"id": "text",
"bom_id": "text",
"material_id": "text",
"component_bom_id": "text",
"material_name": "text",
"unit": "text",
"quantity": 1
}
]
}
]Tenant id (uuid v4)
Placeholder version number; always 1 while versioning is deferred.
Product not found.
Returned when the rate limit is exceeded
GET /api/v1/public/products/{id}/bom/versions HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"version": 1,
"is_current": true,
"bom_count": 1,
"created_at": "text"
}
]Tenant id (uuid v4)
Versioning is not implemented yet. Accepted for forward compatibility; when true the server logs a warning and processes the request in place.
falseValidation failure, or item with both/neither of material_id / component_bom_id.
Product, variant, or workflow template not found on this product.
Returned when the rate limit is exceeded
POST /api/v1/public/products/{id}/bom/items HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 278
{
"variant_id": "123e4567-e89b-12d3-a456-426614174000",
"workflow_template_id": "123e4567-e89b-12d3-a456-426614174000",
"items": [
{
"material_id": "123e4567-e89b-12d3-a456-426614174000",
"component_bom_id": "123e4567-e89b-12d3-a456-426614174000",
"quantity": 1
}
],
"create_new_version": false
}{
"id": "text",
"product_variant_id": "text",
"workflow_template_id": "text",
"is_published": true,
"items": [
{
"id": "text",
"bom_id": "text",
"material_id": "text",
"component_bom_id": "text",
"material_name": "text",
"unit": "text",
"quantity": 1
}
]
}Tenant id (uuid v4)
No-op while versioning is deferred (same as POST).
falseMaterial display name; null when the item is a nested component.
Unit of measure name from the material's measurement_unit; null for component items.
Validation failure.
Product or item not found.
Returned when the rate limit is exceeded
PUT /api/v1/public/products/{id}/bom/items/{item_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 41
{
"quantity": 1,
"create_new_version": false
}{
"id": "text",
"bom_id": "text",
"material_id": "text",
"component_bom_id": "text",
"material_name": "text",
"unit": "text",
"quantity": 1
}Tenant id (uuid v4)
No content
Product or item not found.
Returned when the rate limit is exceeded
DELETE /api/v1/public/products/{id}/bom/items/{item_id} HTTP/1.1
Host: api-stage.hesh.tech
x-api-key: YOUR_API_KEY
Accept: */*
No content
Last updated

