Cultivation transaction history

distru-report-cultivation-transaction-historyRead

Every cultivation event in a date range, from plant batch creation to harvest, waste and packaging.

Inputs

Every tool also takes the common inputs.

FieldTypeRequiredDescription
cursorstringNonextCursor of the previous call; keep the other arguments unchanged.
licenseIdsstring[]NoResolve via distru-search-licenses.
strainstringNoExact, case-sensitive strain name. Narrows per-plant rows only: teardown output, waste, packaging and additive rows still come back, so pair it with transactionTypes when that matters.
transactionDatetimeobjectNoInclusive. YYYY-MM-DD (whole days, company timezone) or ISO 8601 with a UTC offset. Defaults to the last 30 days.
transactionDatetime.endstringNo
transactionDatetime.startstringNo
transactionTypesenum[]
PLANT_BATCH_CREATIONPLANT_BATCH_ADJUSTMENTSPLIT_PLANT_BATCHDESTROY_PLANTMOVE_PLANTSGROWTH_PHASE_CHANGEADDITIVE_APPLICATIONPACKAGE_PLANT_BATCHPLANT_ADDED_TO_TEARDOWNHARVEST_CREATED_FROM_TEARDOWNRECORD_WASTE_HARVESTCREATE_PACKAGE_FROM_HARVEST
NoGROWTH_PHASE_CHANGE selects every phase transition.
maxRowsLimitintegerNoRows per page. Defaults to 500.

Output

Presence on a nested field assumes its parent exists.

FieldTypePresenceDescription
nextCursorstringCan be absentPass as cursor to fetch the next page. Present only when meta.truncated.
metaobjectAlways
meta.reportstringAlways
meta.dateRangestringAlways
meta.rowLimitnumberAlways
meta.offsetnumberAlways
meta.rowCountnumberAlways
meta.totalRowCountnumberAlways
meta.truncatedbooleanAlways
meta.columnsobject[]Always
meta.columns[].keystringAlways
meta.columns[].labelstringAlways
rowsobject[]Always
rows[].datestringAlways
rows[].strainstringCan be null
rows[].batchNamestringCan be null
rows[].plantTagSstringCan be null
rows[].productNamestringCan be null
rows[].productIdstringCan be null
rows[].packageLabelSstringCan be null
rows[].typestringAlways
rows[].relatedEntitystringCan be null
rows[].relatedEntityStatusstringCan be null
rows[].amountstringAlways
rows[].unitstringCan be null
rows[].descriptionstringCan be null
rows[].totalCoststringCan be null
rows[].customFieldsobject[]Always
rows[].customFields[].keystringAlways
rows[].customFields[].labelstringAlways
rows[].customFields[].valuestringCan be null
What the AI reads

Cultivation event log: one row per cultivation transaction in the range, across the plant lifecycle from plant batch creation to harvest, waste and packaging, with strain, plant batch, plant tags, packages, the related teardown or harvest and its status, and signed amount. Newest first. Use to trace what happened to plants or plant batches over time, not for a batch's current plant count. For one summary row per plant batch use distru-report-plant-lifecycle; for harvest yields and costs use distru-report-harvest-outputs. Plants of one batch moved, promoted, destroyed or added to a teardown in one operation come back as one row: amount counts them and plantTagS lists their tags. type is a display string that can carry the transition (e.g. "Growth Phase Change (Immature → Vegetative)"), so match it by prefix, not against the transactionTypes values. amount is negative where plants or stock left. strain and batchName are null on rows with no plant batch behind them (teardown, harvest and waste rows). totalCost is null and left out of meta.columns when the caller cannot view costs, and null on teardown input and output rows. date is MM/DD/YYYY in the caller's timezone; amount and totalCost are numeric strings. Returns 500 rows by default (maxRowsLimit, up to 5000). When meta.truncated is true more rows exist: repeat the call with the same filters, any date range made explicit so every page covers the same one, and cursor set to nextCursor — or narrow the filters when you need a summary rather than every row.