APIMetrc

Get Metrc tags

GET
/public/v1/metrc/tags

Get the Metrc tags — the unique, state-issued compliance identifiers (RFID labels) provisioned to your licenses — filtered by various attributes. Results are ordered oldest-first (by sync time into Distru) and scoped to the company that owns the API key.

This is a read-only view of tags already synced into Distru from Metrc; it does not order, provision, or reserve tags. Each tag is either a PACKAGE tag (retail/wholesale package labels) or a PLANT tag, and reports via is_assigned whether it has been attached to a package or plant yet.

Data is eventually consistent — a tag newly synced from Metrc can take up to ~1 second to appear here.

Authorization

Bearer
headerAuthorizationBearer <token>

API token generated in Distru (Settings → Distru API). Send it on every request as Authorization: Bearer YOUR_API_TOKEN.

Query Parameters

ids[]?array<string>

Restrict the result to specific tags by ID (the same ID returned as each tag's id). Repeat the bracketed key once per ID. Unknown IDs simply match nothing; an empty list is treated as no filter. At most 200 IDs may be given.

kind?string

Filter by tag kind. PACKAGE covers retail/wholesale package labels; PLANT covers plant tags. Omit to return both kinds.

Value in"PACKAGE""PLANT"
license_id?string

Filter to tags provisioned to this license, given as a Distru license resource ID (as returned by the licenses endpoint — not a Metrc or state license number). Omit to return tags across all of the company's licenses; a license ID that doesn't belong to your company simply returns no tags.

license_number?string

Filter to tags provisioned to the Metrc license with this license number (exact match, not a substring). A convenience alternative to license_id; combining the two is a 400. Unlike license_id, an unknown value is rejected — if your company has no Metrc license with this number the request fails with a 400.

is_assigned?boolean

Filter by whether the tag is currently attached to a package or plant. true returns only assigned tags; false returns only unassigned (still-available) tags. Omit to return both.

tag?string

Filter to the single tag whose full 24-character label equals this value exactly. Labels are uppercase hex (A-F, 0-9). Unlike search, this value is matched verbatim and is not uppercased or stripped, so pass the exact uppercase label; a lowercase or partial value returns nothing. Use search instead for substring or fuzzy matching.

search?string

Filter to tags whose label contains this value (case-insensitive substring match). The value is uppercased and stripped of any character outside A-F/0-9 before matching, so only its hex portion is used; a value that reduces to 24 characters is matched as an exact full label. If nothing remains after stripping, the filter is ignored.

inserted_datetime?string

Filter by when the tag was created in Distru. Accepts a comma-separated from,to range (ISO-8601 UTC); either side may be omitted, e.g. 2022-07-10T00:00:00Z, returns tags created on or after that time.

updated_datetime?string

Filter by when the tag was last modified in Distru. Accepts a comma-separated from,to range (ISO-8601 UTC); either side may be omitted, e.g. ,2022-07-10T00:00:00Z returns tags last modified on or before that time.

page?string

Page selector. Page size is fixed by the server; paginate by following the next_page URL in each response rather than building page selectors yourself — it is null on the last page. next_page uses page[after]=<cursor>, an opaque token marking where the next page resumes; pass it back exactly as given, and only to the endpoint that issued it. This is seek-based, so every page stays fast no matter how deep you page.

Response Body

A list of Metrc tags

*/*
  1. response

A collection of Metrc tags. Note: This endpoint returns eventually consistent data, with changes taking up to 1 second to propagate in responses.

data?array<>

Metrc Tags

next_page?string

URL for the next page of results; null when there is no next page

Example Request
curl -X GET 'https://app.distru.com/public/v1/metrc/tags'
Example Response
{  "data": [    {      "assigned_datetime": "2024-01-02T12:00:00.000000Z",      "commissioned_date": "2026-08-24",      "id": "00000000-0000-0000-0000-000000000007",      "inserted_datetime": "2026-08-24T16:01:05.985376Z",      "is_assigned": true,      "kind": "PACKAGE",      "license_id": "00000000-0000-0000-0000-000000000015",      "tag": "1A4010200001234000000001",      "updated_datetime": "2026-08-24T16:01:05.985376Z"    }  ],  "next_page": null}