Metrc Web API Documentation
Getting Started
REST
Vendor API Key
User API Key
Authentication
Authorization
Working with the API
Dates and Times
Making Calls with Timestamps
Last Modified Filter Range
Server Responses
Postman
Best Practices
Maintaining Inventory in Sync
Requesting Multiple Days' Data
What's New in Version 2
Rate Limiting
Object Limiting
Returning Object Ids
Changed Endpoints
Pagination
Paginated Endpoints
Webhooks
Latest (v2)
Caregivers Status
GET /caregivers/v2/status/{caregiverLicenseNumber}
Employees
GET /employees/v2/
Facilities
GET /facilities/v2/
Harvests
GET /harvests/v2/{id}
GET /harvests/v2/active
GET /harvests/v2/onhold
GET /harvests/v2/inactive
GET /harvests/v2/waste
GET /harvests/v2/waste/types
POST /harvests/v2/packages/testing
POST /harvests/v2/packages
PUT /harvests/v2/location
POST /harvests/v2/waste
PUT /harvests/v2/rename
PUT /harvests/v2/finish
PUT /harvests/v2/unfinish
PUT /harvests/v2/restore/harvestedplants
DELETE /harvests/v2/waste/{id}
Items
GET /items/v2/{id}
GET /items/v2/active
GET /items/v2/inactive
GET /items/v2/categories
GET /items/v2/brands
GET /items/v2/photo/{id}
GET /items/v2/file/{id}
POST /items/v2/
PUT /items/v2/
POST /items/v2/photo
POST /items/v2/file
DELETE /items/v2/{id}
DELETE /items/v2/brand/{id}
POST /items/v2/brand
PUT /items/v2/brand
Lab Tests
GET /labtests/v2/states
GET /labtests/v2/batches
GET /labtests/v2/types
GET /labtests/v2/results
POST /labtests/v2/record
PUT /labtests/v2/labtestdocument
PUT /labtests/v2/results/release
GET /labtests/v2/labtestdocument/{id}
Locations
GET /locations/v2/{id}
GET /locations/v2/active
GET /locations/v2/inactive
GET /locations/v2/types
POST /locations/v2/
PUT /locations/v2/
DELETE /locations/v2/{id}
Packages
GET /packages/v2/{id}
GET /packages/v2/{id}/source/harvests
GET /packages/v2/{label}
GET /packages/v2/active
GET /packages/v2/onhold
GET /packages/v2/inactive
GET /packages/v2/intransit
GET /packages/v2/labsamples
GET /packages/v2/types
GET /packages/v2/adjust/reasons
POST /packages/v2/
POST /packages/v2/testing
POST /packages/v2/plantings
PUT /packages/v2/donation/flag
PUT /packages/v2/donation/unflag
PUT /packages/v2/usebydate
PUT /packages/v2/item
PUT /packages/v2/note
PUT /packages/v2/location
PUT /packages/v2/labtests/required
PUT /packages/v2/tradesample/flag
PUT /packages/v2/tradesample/unflag
PUT /packages/v2/adjust
POST /packages/v2/adjust
PUT /packages/v2/remediate
PUT /packages/v2/finish
PUT /packages/v2/unfinish
DELETE /packages/v2/{id}
PUT /packages/v2/decontaminate
Patient Check Ins
GET /patient-checkins/v2/locations
GET /patient-checkins/v2/
POST /patient-checkins/v2/
PUT /patient-checkins/v2/
DELETE /patient-checkins/v2/{id}
Patients
GET /patients/v2/{id}
GET /patients/v2/active
POST /patients/v2/
PUT /patients/v2/
DELETE /patients/v2/{id}
Patients Status
GET /patients/v2/statuses/{patientLicenseNumber}
Plant Batches
GET /plantbatches/v2/{id}
GET /plantbatches/v2/active
GET /plantbatches/v2/inactive
GET /plantbatches/v2/types
DELETE /plantbatches/v2/
GET /plantbatches/v2/waste/reasons
POST /plantbatches/v2/waste
POST /plantbatches/v2/adjust
POST /plantbatches/v2/additives
POST /plantbatches/v2/plantings
POST /plantbatches/v2/packages
POST /plantbatches/v2/packages/frommotherplant
POST /plantbatches/v2/split
POST /plantbatches/v2/growthphase
PUT /plantbatches/v2/tag
PUT /plantbatches/v2/strain
PUT /plantbatches/v2/location
GET /plantbatches/v2/waste
Plants
GET /plants/v2/additives/types
GET /plants/v2/{id}
GET /plants/v2/{label}
GET /plants/v2/vegetative
GET /plants/v2/flowering
GET /plants/v2/onhold
GET /plants/v2/inactive
GET /plants/v2/additives
GET /plants/v2/growthphases
GET /plants/v2/waste/reasons
POST /plants/v2/additives
POST /plants/v2/additives/bylocation
POST /plants/v2/plantings
POST /plants/v2/plantbatch/packages
POST /plants/v2/manicure
PUT /plants/v2/location
PUT /plants/v2/growthphase
PUT /plants/v2/tag
PUT /plants/v2/strain
PUT /plants/v2/harvest
PUT /plants/v2/merge
DELETE /plants/v2/
POST /plants/v2/waste
GET /plants/v2/waste/methods/all
PUT /plants/v2/split
GET /plants/v2/waste
Processing Job
GET /processing/v2/{id}
GET /processing/v2/active
GET /processing/v2/inactive
GET /processing/v2/jobtypes/active
GET /processing/v2/jobtypes/inactive
GET /processing/v2/jobtypes/attributes
GET /processing/v2/jobtypes/categories
POST /processing/v2/createpackages
POST /processing/v2/start
POST /processing/v2/adjust
POST /processing/v2/jobtypes
PUT /processing/v2/finish
PUT /processing/v2/unfinish
PUT /processing/v2/jobtypes
DELETE /processing/v2/jobtypes/{id}
DELETE /processing/v2/{id}
Retail Id
GET /retailid/v2/receive/{label}
POST /retailid/v2/associate
POST /retailid/v2/generate
POST /retailid/v2/packages/info
POST /retailid/v2/discontinue
GET /retailid/v2/receive/qr/{shortCode}
POST /retailid/v2/merge
Sales
GET /sales/v2/customertypes
GET /sales/v2/patientregistration/locations
GET /sales/v2/deliveries/{id}
GET /sales/v2/deliveries/active
GET /sales/v2/deliveries/inactive
GET /sales/v2/deliveries/returnreasons
GET /sales/v2/counties
GET /sales/v2/paymenttypes
GET /sales/v2/receipts/{id}
GET /sales/v2/receipts/external/{externalNumber}
GET /sales/v2/receipts/active
GET /sales/v2/receipts/inactive
POST /sales/v2/deliveries
POST /sales/v2/receipts
PUT /sales/v2/deliveries/hub
PUT /sales/v2/deliveries/hub/accept
PUT /sales/v2/deliveries/complete
PUT /sales/v2/deliveries/hub/depart
PUT /sales/v2/deliveries/hub/verifyID
PUT /sales/v2/deliveries
PUT /sales/v2/receipts
PUT /sales/v2/receipts/finalize
PUT /sales/v2/receipts/unfinalize
DELETE /sales/v2/deliveries/{id}
DELETE /sales/v2/receipts/{id}
GET /sales/v2/deliveries/retailer/active
GET /sales/v2/deliveries/retailer/inactive
GET /sales/v2/deliveries/retailer/{id}
POST /sales/v2/deliveries/retailer
PUT /sales/v2/deliveries/retailer
DELETE /sales/v2/deliveries/retailer/{id}
POST /sales/v2/deliveries/retailer/depart
POST /sales/v2/deliveries/retailer/restock
POST /sales/v2/deliveries/retailer/sale
POST /sales/v2/deliveries/retailer/end
Strains
GET /strains/v2/{id}
GET /strains/v2/active
GET /strains/v2/inactive
POST /strains/v2/
PUT /strains/v2/
DELETE /strains/v2/{id}
Tags
GET /tags/v2/plant/available
GET /tags/v2/package/available
Transfers
GET /transfers/v2/hub
GET /transfers/v2/incoming
GET /transfers/v2/outgoing
GET /transfers/v2/rejected
GET /transfers/v2/{id}/deliveries
GET /transfers/v2/deliveries/{id}/transporters
GET /transfers/v2/deliveries/{id}/transporters/details
GET /transfers/v2/deliveries/{id}/packages
GET /transfers/v2/deliveries/{id}/packages/wholesale
GET /transfers/v2/deliveries/package/{id}/requiredlabtestbatches
GET /transfers/v2/deliveries/packages/states
GET /transfers/v2/templates/outgoing
GET /transfers/v2/templates/outgoing/{id}/deliveries
GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters
GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters/details
GET /transfers/v2/templates/outgoing/deliveries/{id}/packages
GET /transfers/v2/types
POST /transfers/v2/external/incoming
POST /transfers/v2/templates/outgoing
PUT /transfers/v2/external/incoming
PUT /transfers/v2/templates/outgoing
DELETE /transfers/v2/external/incoming/{id}
DELETE /transfers/v2/templates/outgoing/{id}
Transporters
GET /transporters/v2/drivers
GET /transporters/v2/drivers/{id}
POST /transporters/v2/drivers
PUT /transporters/v2/drivers
DELETE /transporters/v2/drivers/{id}
GET /transporters/v2/vehicles
GET /transporters/v2/vehicles/{id}
POST /transporters/v2/vehicles
PUT /transporters/v2/vehicles
DELETE /transporters/v2/vehicles/{id}
Trips
GET /trips/v2/active
GET /trips/v2/inactive
GET /trips/v2/intransit
Units Of Measure
GET /unitsofmeasure/v2/active
GET /unitsofmeasure/v2/inactive
Waste Methods
GET /wastemethods/v2/
Version 1
Caregivers Status
GET /caregivers/v1/status/{caregiverLicenseNumber}
Employees
GET /employees/v1/
Facilities
GET /facilities/v1/
Harvests
GET /harvests/v1/{id}
GET /harvests/v1/active
GET /harvests/v1/onhold
GET /harvests/v1/inactive
GET /harvests/v1/waste/types
POST /harvests/v1/create/packages
POST /harvests/v1/create/packages/testing
PUT /harvests/v1/move
POST /harvests/v1/removewaste
PUT /harvests/v1/rename
POST /harvests/v1/finish
POST /harvests/v1/unfinish
Items
GET /items/v1/{id}
GET /items/v1/active
GET /items/v1/inactive
GET /items/v1/categories
GET /items/v1/brands
GET /items/v1/photo/{id}
POST /items/v1/create
POST /items/v1/update
POST /items/v1/photo
DELETE /items/v1/{id}
Lab Tests
GET /labtests/v1/states
GET /labtests/v1/types
GET /labtests/v1/results
POST /labtests/v1/record
PUT /labtests/v1/labtestdocument
PUT /labtests/v1/results/release
GET /labtests/v1/labtestdocument/{id}
Locations
GET /locations/v1/{id}
GET /locations/v1/active
GET /locations/v1/types
POST /locations/v1/create
POST /locations/v1/update
DELETE /locations/v1/{id}
Packages
GET /packages/v1/{id}
GET /packages/v1/{label}
GET /packages/v1/active
GET /packages/v1/onhold
GET /packages/v1/inactive
GET /packages/v1/types
GET /packages/v1/adjust/reasons
POST /packages/v1/create
POST /packages/v1/create/testing
POST /packages/v1/create/plantings
POST /packages/v1/change/item
PUT /packages/v1/change/note
POST /packages/v1/change/locations
POST /packages/v1/adjust
POST /packages/v1/finish
POST /packages/v1/unfinish
POST /packages/v1/remediate
Patient Check Ins
GET /patient-checkins/v1/locations
GET /patient-checkins/v1/
POST /patient-checkins/v1/
PUT /patient-checkins/v1/
DELETE /patient-checkins/v1/{id}
Patients Status
GET /patients/v1/statuses/{patientLicenseNumber}
Patients
GET /patients/v1/{id}
GET /patients/v1/active
POST /patients/v1/add
POST /patients/v1/update
DELETE /patients/v1/{id}
Plant Batches
GET /plantbatches/v1/{id}
GET /plantbatches/v1/active
GET /plantbatches/v1/inactive
GET /plantbatches/v1/types
POST /plantbatches/v1/adjust
POST /plantbatches/v1/createplantings
POST /plantbatches/v1/createpackages
POST /plantbatches/v1/split
POST /plantbatches/v1/create/packages/frommotherplant
POST /plantbatches/v1/changegrowthphase
PUT /plantbatches/v1/moveplantbatches
POST /plantbatches/v1/additives
POST /plantbatches/v1/waste
DELETE /plantbatches/v1/
GET /plantbatches/v1/waste/reasons
Plants
GET /plants/v1/{id}
GET /plants/v1/{label}
GET /plants/v1/vegetative
GET /plants/v1/flowering
GET /plants/v1/onhold
GET /plants/v1/inactive
GET /plants/v1/additives
GET /plants/v1/growthphases
GET /plants/v1/additives/types
GET /plants/v1/waste/methods/all
GET /plants/v1/waste/reasons
POST /plants/v1/moveplants
POST /plants/v1/changegrowthphases
DELETE /plants/v1/
POST /plants/v1/additives
POST /plants/v1/waste
POST /plants/v1/additives/bylocation
POST /plants/v1/create/plantings
POST /plants/v1/create/plantbatch/packages
POST /plants/v1/manicureplants
POST /plants/v1/harvestplants
Processing Job
GET /processing/v1/{id}
GET /processing/v1/active
GET /processing/v1/inactive
POST /processing/v1/createpackages
POST /processing/v1/start
POST /processing/v1/adjust
PUT /processing/v1/finish
PUT /processing/v1/unfinish
DELETE /processing/v1/{id}
GET /processing/v1/jobtypes/active
GET /processing/v1/jobtypes/inactive
POST /processing/v1/jobtypes
PUT /processing/v1/jobtypes
DELETE /processing/v1/jobtypes/{id}
GET /processing/v1/jobtypes/attributes
GET /processing/v1/jobtypes/categories
Sales
GET /sales/v1/customertypes
GET /sales/v1/patientregistration/locations
GET /sales/v1/deliveries/active
GET /sales/v1/deliveries/inactive
GET /sales/v1/deliveries/{id}
GET /sales/v1/deliveries/returnreasons
POST /sales/v1/deliveries
PUT /sales/v1/deliveries
PUT /sales/v1/deliveries/hub
PUT /sales/v1/deliveries/hub/accept
PUT /sales/v1/deliveries/complete
PUT /sales/v1/deliveries/hub/depart
PUT /sales/v1/deliveries/hub/verifyID
DELETE /sales/v1/deliveries/{id}
GET /sales/v1/counties
GET /sales/v1/paymenttypes
GET /sales/v1/receipts/active
GET /sales/v1/receipts/inactive
GET /sales/v1/receipts/{id}
POST /sales/v1/receipts
PUT /sales/v1/receipts
DELETE /sales/v1/receipts/{id}
GET /sales/v1/transactions
GET /sales/v1/transactions/{salesDateStart}/{salesDateEnd}
POST /sales/v1/transactions/{date}
PUT /sales/v1/transactions/{date}
GET /sales/v1/deliveries/retailer/active
GET /sales/v1/deliveries/retailer/inactive
GET /sales/v1/deliveries/retailer/{id}
POST /sales/v1/deliveries/retailer
PUT /sales/v1/deliveries/retailer
DELETE /sales/v1/deliveries/retailer/{id}
POST /sales/v1/deliveries/retailer/depart
POST /sales/v1/deliveries/retailer/restock
POST /sales/v1/deliveries/retailer/sale
POST /sales/v1/deliveries/retailer/end
Strains
GET /strains/v1/{id}
GET /strains/v1/active
POST /strains/v1/create
POST /strains/v1/update
DELETE /strains/v1/{id}
Transfers
GET /transfers/v1/incoming
GET /transfers/v1/outgoing
GET /transfers/v1/rejected
GET /transfers/v1/{id}/deliveries
GET /transfers/v1/deliveries/{id}/transporters
GET /transfers/v1/deliveries/{id}/transporters/details
GET /transfers/v1/deliveries/{id}/packages
GET /transfers/v1/deliveries/{id}/packages/wholesale
GET /transfers/v1/deliveries/package/{id}/requiredlabtestbatches
GET /transfers/v1/deliveries/packages/states
POST /transfers/v1/external/incoming
PUT /transfers/v1/external/incoming
DELETE /transfers/v1/external/incoming/{id}
GET /transfers/v1/templates
GET /transfers/v1/templates/{id}/deliveries
GET /transfers/v1/templates/deliveries/{id}/transporters
GET /transfers/v1/templates/deliveries/{id}/transporters/details
GET /transfers/v1/templates/deliveries/{id}/packages
POST /transfers/v1/templates
PUT /transfers/v1/templates
DELETE /transfers/v1/templates/{id}
GET /transfers/v1/types
Trips
GET /trips/v1/active
GET /trips/v1/inactive
GET /trips/v1/intransit
Units Of Measure
GET /unitsofmeasure/v1/active