Search your licenses

distru-search-licensesRead

Searches the caller's company's own state cannabis licenses, never a customer's or vendor's, with each Metrc license's sync health.

Inputs

Every tool also takes the common inputs.

FieldTypeRequiredDescription
limitintegerNoDefault: 10
cursorstringNonextCursor of the previous call; keep the other arguments unchanged.
complianceTypeenum
BIOTRACKMETRCNONE
NoNONE: not tracked in Metrc.
idsstring[]No
includeMetrcAdjustmentReasonsbooleanNoAdds metrcAdjustmentReasons: the reason names distru-adjust-inventory's complianceReason takes for this license's packages. Null unless complianceType is METRC; empty until Distru first pulls them from Metrc.
sortByobjectNoDefault UPDATED_AT DESC.
sortBy.directionenum
ASCDESC
Yes
sortBy.fieldenum
EXPIRY_DATEINSERTED_ATLICENSE_NUMBERUPDATED_AT
Yes
statusenum
ACTIVEANYINACTIVE
NoDefault ACTIVE.

Output

Presence on a nested field assumes its parent exists.

FieldTypePresence
hasMorebooleanAlways
nextCursorstringCan be absent
totalCountintegerCan be absent
itemsobject[]Always
items[].idstringAlways
items[].licenseNumberstringAlways
items[].licenseTypestringAlways
items[].complianceTypeenum
BIOTRACKMETRCNONE
Always
items[].activebooleanAlways
items[].hasCultivationbooleanAlways
items[].issueDatestringCan be null
items[].expiryDatestringAlways
items[].metrcAdjustmentReasonsstring[]Null or absent
items[].metrcPullStatusobjectCan be null
items[].metrcPullStatus.cachesUpdatedUpUntilobjectAlways
items[].metrcPullStatus.cachesUpdatedUpUntil.harvestsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.itemsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.locationsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.packagesstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.plantAdditivesstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.plantBatchesstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.plantsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.processingJobsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.salesReceiptsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.strainsstringCan be null
items[].metrcPullStatus.cachesUpdatedUpUntil.transfersstringCan be null
items[].metrcPullStatus.hasInProgressBackfillsbooleanAlways
items[].metrcPushStatusobjectCan be null
items[].metrcPushStatus.queuedCountnumberAlways
items[].metrcPushStatus.failedCountnumberAlways
items[].metrcPushStatus.lastCompletedActivityDatetimestringCan be null
items[].metrcPushStatus.oldestIncompleteActivityobjectCan be null
items[].metrcPushStatus.oldestIncompleteActivity.titlestringAlways
items[].metrcPushStatus.oldestIncompleteActivity.typeenum
71 values
ADJUST_PACKAGEADJUST_PLANT_BATCHESADJUST_PROCESSING_JOBBIOTRACK_ACCEPT_INVOICE_PAYMENTBIOTRACK_ADJUST_INVENTORY_QUANTITYBIOTRACK_ADJUST_INVENTORY_USABLE_QUANTITYBIOTRACK_ARRIVE_MANIFEST_STOPBIOTRACK_ARRIVE_RETURN_MANIFEST_STOPBIOTRACK_CREATE_INVENTORYBIOTRACK_CREATE_ROOMBIOTRACK_CREATE_TEST_SAMPLE_INVENTORYBIOTRACK_CREATE_TRANSFERBIOTRACK_DELETE_DRIVERBIOTRACK_DELETE_INVOICE_PAYMENTBIOTRACK_DELETE_VEHICLEBIOTRACK_DESTROY_INVENTORYBIOTRACK_MODIFY_INVENTORYBIOTRACK_MOVE_INVENTORIESBIOTRACK_RECEIVE_RETURN_TRANSFERBIOTRACK_RECEIVE_TRANSFERBIOTRACK_RECLAIM_UNACCEPTED_MANIFEST_ITEMSBIOTRACK_REJECT_INVOICE_PAYMENTBIOTRACK_SPLIT_INVENTORIESBIOTRACK_UNDO_INVENTORY_CONVERSIONBIOTRACK_UPDATE_INVOICE_ITEM_PRICESBIOTRACK_UPDATE_PICKUP_MANIFEST_TRANSPORTBIOTRACK_UPDATE_ROOMBIOTRACK_UPDATE_TRANSFER_ITEM_PRICESBIOTRACK_UPSERT_DRIVERBIOTRACK_UPSERT_INVOICEBIOTRACK_UPSERT_INVOICE_PAYMENTBIOTRACK_UPSERT_MANIFESTBIOTRACK_UPSERT_USERBIOTRACK_UPSERT_VEHICLEBIOTRACK_VOID_INVOICEBIOTRACK_VOID_MANIFESTBIOTRACK_VOID_TRANSFERCHANGE_IS_FINISHED_GOODCHANGE_PACKAGE_LOCATIONCHANGE_PLANT_BATCH_GROWTH_PHASECHANGE_PLANT_BATCH_STRAINCHANGE_PLANT_GROWTH_PHASECREATE_HARVEST_PACKAGECREATE_ITEMCREATE_LOCATIONCREATE_PACKAGECREATE_PACKAGE_FROM_PROCESSING_JOBCREATE_PLANT_ADDITIVE_TEMPLATECREATE_PLANT_BATCHES_FROM_PACKAGECREATE_PLANT_BATCHES_FROM_PLANTCREATE_PROCESSING_JOBCREATE_PROCESSING_JOB_TYPECREATE_STRAINDELETE_PROCESSING_JOBDESTROY_PLANT_BATCHESDESTROY_PLANTSFINISH_HARVESTFINISH_PACKAGEFINISH_PROCESSING_JOBGENERATE_RETAIL_IDSHARVEST_PLANTSMETRC_CHANGE_IS_TRADE_SAMPLEMOVE_PLANT_BATCHESMOVE_PLANTSPACKAGE_PLANT_BATCHESRECORD_HARVEST_WASTERECORD_PLANT_ADDITIVERECORD_PLANT_WASTERENAME_PLANT_BATCHSPLIT_PLANT_BATCHESUNFINISH_PACKAGE
Always
items[].metrcPushStatus.oldestIncompleteActivity.statusenum
CHANGE_MADECOMPLETEDFAILEDPENDINGPRECONDITIONS_VERIFIED
Always
items[].metrcPushStatus.oldestIncompleteActivity.queuedDatetimestringAlways
items[].metrcPushStatus.oldestIncompleteActivity.lastAttemptDatetimestringAlways
items[].metrcPushStatus.oldestIncompleteActivity.errorCountnumberAlways
items[].metrcPushStatus.oldestIncompleteActivity.errorstringCan be null
items[].metrcPushStatus.oldestIncompleteActivity.errorTypeenum
EXTERNAL_FAILUREEXTERNAL_VALIDATIONINTERNAL
Can be null
What the AI reads

Searches the caller's company's own state cannabis licenses, never a customer's or vendor's, with each Metrc license's sync health. There is no search filter: license numbers come back in full. metrcPullStatus and metrcPushStatus are null unless complianceType is METRC. metrcPullStatus: per data kind, how far Distru's cached copy of Metrc data has caught up (null = never synced), and whether a backfill re-reading history is running. Kinds refresh on different schedules — transfers every 2 minutes, packages every 3, items, locations and strains every 10, harvests, plants, plant batches and processing jobs every 30 — and only while someone at the company has used Distru in the last 10 minutes, so an older timestamp on a slow kind or an idle company is normal. Harvests, plants and plant batches only sync for licenses with hasCultivation whose company uses Distru's cultivation module; null there is expected on other licenses. Sales receipts and plant additives are not refreshed on a schedule, so null or old values there are normal. metrcPushStatus: changes waiting to be written to Metrc, permanently failed ones, when a change last completed, and the oldest incomplete change with its latest error — changes are written in order, so a stuck one blocks the rest. For the individual changes, use distru-search-metrc-activities.