Create an assembly
distru-create-assemblyWriteCreates a PENDING assembly: a manufacturing or packaging job that consumes input inventory and produces output inventory, for non-compliance and Metrc products.
Inputs
Every tool also takes the common inputs.
| Field | Type | Required | Description |
|---|---|---|---|
| assembly | object | Yes | |
| assembly. | string | No | |
| assembly. | string | No | Estimated start. ISO 8601 with a UTC offset, e.g. "2026-09-01T00:00:00-07:00"; the company timezone is on distru-get-me. |
| assembly. | integer | No | |
| assembly. | string | No | Destination of every output; required when there are outputs. Resolve via distru-search-locations. |
| inputs | object[] | No | Inputs need at least one output to feed into. |
| inputs[]. | string | Yes | Product consumed. Resolve via distru-search-products. |
| inputs[]. | string | Yes | Location the input is pulled from. Resolve via distru-search-locations. |
| inputs[]. | string or number | Yes | In the product's unit type. |
| inputs[]. | string | No | Required for batch- and package-tracked products (inventoryTrackingMethod on distru-search-products); for a package input, the source package's batch. Resolve via distru-search-batches (filter by productIds). |
| inputs[]. | string | No | Required for package-tracked products. Resolve via distru-search-packages (filter by productIds). |
| inputs[]. | integer | No | Index in outputs of the output this input goes into. Every input feeds one output; defaults to 0 when there is exactly one output, required when there are several. |
| outputs | object[] | No | A Metrc output sets exactly one of metrcItemId / pendingMetrcItemId / useSameItem; non-compliance outputs set none. |
| outputs[]. | string | Yes | Product produced. Resolve via distru-search-products. |
| outputs[]. | string or number | Yes | In the product's unit type. |
| outputs[]. | string | No | Existing batch to link. Resolve via distru-search-batches. |
| outputs[]. | string | No | Use-by date. ISO 8601 with a UTC offset, e.g. "2026-09-01T00:00:00-07:00"; the company timezone is on distru-get-me. |
| outputs[]. | string | No | Unit type of the produced package. Required for Metrc outputs; omit for non-compliance. Resolve via distru-search-lookups (type UNIT_TYPE). |
| outputs[]. | string | No | Metrc item already in Metrc. Resolve via distru-search-metrc-items. |
| outputs[]. | string | No | Metrc item created in Distru, not yet synced/approved in Metrc. Resolve via distru-search-pending-metrc-items. |
| outputs[]. | boolean | No | Reuse the Metrc item of the consumed input package. |
| outputs[]. | string | No | Metrc outputs only. Setting it marks the output a production batch (no separate flag; lab-testing and traceability consequences), so set only when it truly is one. Rejected on licenses that record Metrc processing jobs (those need a Processing Job, unsupported here). |
Output
Presence on a nested field assumes its parent exists.
| Field | Type | Presence |
|---|---|---|
| success | enumtrue | Always |
| data | object | Always |
| data. | object[] | Can be null |
| data. | string | Always |
| data. | string | Always |
| data. | enumCOMPLETEDPENDING | Always |
| data. | object[] | Always |
| data. | string | Always |
| data. | object | Always |
| data. | string | Always |
| data. | string | Always |
| data. | string | Always |
| data. | string | Can be null |
| data. | object[] | Always |
| data. | string | Always |
| data. | object | Always |
| data. | string | Always |
| data. | string | Always |
| data. | string | Always |
| data. | string | Can be null |
| data. | enumCOMPLETEDPENDING | Always |
What the AI reads
Creates a PENDING assembly: a manufacturing or packaging job that consumes input inventory and produces output inventory, for non-compliance and Metrc products. It never completes the assembly or submits anything to Metrc; a person completes it in the Distru web app. Inputs are not filled in from the output product's bill of materials: pass every input yourself (distru-get-product with includeBillOfMaterials lists them). To read the assembly back use distru-get-assembly with the returned id. metrcQuantity on the result is computed by this tool from quantity, converted to the package's unit type.