Skip to content

T3 Endpoint IDs

Every T3 API endpoint that lists or reports Metrc data has a T3 endpoint id. It is the one name every feature uses for an endpoint:

  • Search takes t3EndpointIds and labels every result with its t3EndpointId.
  • Metrc Pages gives each table's t3EndpointId.
  • Tag lists store a t3EndpointId, and resolve and COA extraction take one.
  • Saved reports record the t3EndpointId of the report they run.

The interactive docs show each endpoint's id at the end of its summary.

A collection's list endpoint and its object endpoint share an id: METRC_ACTIVE_PACKAGES names both /v2/packages/active and /v2/packages/active/{id}. Its /super endpoints have their own id, and each report has its own.

So a search result says where to load the full record:

PATHS = {"METRC_ACTIVE_PACKAGES": "/v2/packages/active", "METRC_ACTIVE_ITEMS": "/v2/items"}

hit = send_api_request(
    api_client,
    "/v2/search",
    params={"licenseNumber": license_number, "query": "1A4FF0100000022000000123"},
)["data"][0]

record = send_api_request(
    api_client,
    f"{PATHS[hit['t3EndpointId']]}/{hit['matchedEntry']['id']}",
    params={"licenseNumber": license_number},
)

The OpenAPI spec carries every id as x-t3-endpoint-id, so the full mapping can be built from it:

import requests

spec = requests.get("https://api.trackandtrace.tools/v2/spec/openapi.json").json()

paths = {
    operation["x-t3-endpoint-id"]: path
    for path, operations in spec["paths"].items()
    for operation in operations.values()
    if "x-t3-endpoint-id" in operation and "{" not in path
}

Collections

The collections search, tag lists or COA extraction accept. ✅ marks the features that accept the id. Every other endpoint's id is in the interactive docs.

Path T3 endpoint id /super T3 endpoint id Search Tag lists COA
/v2/harvests/active METRC_ACTIVE_HARVESTS METRC_ACTIVE_SUPERHARVESTS ✅ ✅ ❌
/v2/harvests/inactive METRC_INACTIVE_HARVESTS METRC_INACTIVE_SUPERHARVESTS ✅ ✅ ❌
/v2/harvests/onhold METRC_ONHOLD_HARVESTS METRC_ONHOLD_SUPERHARVESTS ✅ ✅ ❌
/v2/harvests/schedules METRC_HARVEST_SCHEDULES ✅ ❌ ❌
/v2/items METRC_ACTIVE_ITEMS METRC_ACTIVE_SUPERITEMS ✅ ✅ ❌
/v2/locations/active METRC_ACTIVE_LOCATIONS METRC_ACTIVE_SUPERLOCATIONS ✅ ❌ ❌
/v2/packages/active METRC_ACTIVE_PACKAGES METRC_ACTIVE_SUPERPACKAGES ✅ ✅ ✅
/v2/packages/inactive METRC_INACTIVE_PACKAGES METRC_INACTIVE_SUPERPACKAGES ✅ ✅ ✅
/v2/packages/intransit METRC_INTRANSIT_PACKAGES METRC_INTRANSIT_SUPERPACKAGES ✅ ✅ ✅
/v2/packages/lab-samples METRC_LAB_SAMPLE_PACKAGES METRC_SUPER_LAB_SAMPLE_PACKAGES ✅ ❌ ❌
/v2/packages/onhold METRC_ONHOLD_PACKAGES METRC_ONHOLD_SUPERPACKAGES ✅ ✅ ✅
/v2/packages/transferred METRC_TRANSFERRED_PACKAGES METRC_TRANSFERRED_SUPERPACKAGES ✅ ✅ ❌
/v2/plantbatches/active METRC_ACTIVE_PLANTBATCHES METRC_ACTIVE_SUPERPLANTBATCHES ✅ ✅ ❌
/v2/plantbatches/inactive METRC_INACTIVE_PLANTBATCHES METRC_INACTIVE_SUPERPLANTBATCHES ✅ ✅ ❌
/v2/plantbatches/onhold METRC_ONHOLD_PLANTBATCHES METRC_ONHOLD_SUPERPLANTBATCHES ✅ ✅ ❌
/v2/plants/flowering METRC_FLOWERING_PLANTS METRC_FLOWERING_SUPERPLANTS ✅ ✅ ❌
/v2/plants/inactive METRC_INACTIVE_PLANTS METRC_INACTIVE_SUPERPLANTS ✅ ✅ ❌
/v2/plants/mother/active METRC_ACTIVE_MOTHER_PLANTS METRC_ACTIVE_MOTHER_SUPERPLANTS ✅ ✅ ❌
/v2/plants/mother/inactive METRC_INACTIVE_MOTHER_PLANTS METRC_INACTIVE_MOTHER_SUPERPLANTS ✅ ✅ ❌
/v2/plants/mother/onhold METRC_ONHOLD_MOTHER_PLANTS METRC_ONHOLD_MOTHER_SUPERPLANTS ✅ ✅ ❌
/v2/plants/onhold METRC_ONHOLD_PLANTS METRC_ONHOLD_SUPERPLANTS ✅ ✅ ❌
/v2/plants/vegetative METRC_VEGETATIVE_PLANTS METRC_VEGETATIVE_SUPERPLANTS ✅ ✅ ❌
/v2/processingjobs/active METRC_ACTIVE_PROCESSING_JOBS METRC_ACTIVE_SUPERPROCESSINGJOBS ✅ ❌ ❌
/v2/processingjobs/inactive METRC_INACTIVE_PROCESSING_JOBS METRC_INACTIVE_SUPERPROCESSINGJOBS ✅ ❌ ❌
/v2/sales/active METRC_ACTIVE_SALES METRC_ACTIVE_SUPERSALES ✅ ❌ ❌
/v2/sales/inactive METRC_INACTIVE_SALES METRC_INACTIVE_SUPERSALES ✅ ❌ ❌
/v2/strains METRC_ACTIVE_STRAINS METRC_ACTIVE_SUPERSTRAINS ✅ ✅ ❌
/v2/tagorders/current METRC_CURRENT_TAG_ORDERS METRC_CURRENT_SUPERTAGORDERS ✅ ❌ ❌
/v2/tagorders/history METRC_HISTORY_TAG_ORDERS METRC_HISTORY_SUPERTAGORDERS ✅ ❌ ❌
/v2/tags/available METRC_AVAILABLE_TAGS METRC_AVAILABLE_SUPERTAGS ✅ ✅ ❌
/v2/tags/used METRC_USED_TAGS METRC_USED_SUPERTAGS ✅ ✅ ❌
/v2/tags/voided METRC_VOIDED_TAGS METRC_VOIDED_SUPERTAGS ✅ ✅ ❌
/v2/transfers/hub METRC_HUB_TRANSFERS METRC_HUB_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/incoming/active METRC_INCOMING_ACTIVE_TRANSFERS METRC_INCOMING_ACTIVE_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/incoming/inactive METRC_INCOMING_INACTIVE_TRANSFERS METRC_INCOMING_INACTIVE_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/outgoing/active METRC_OUTGOING_ACTIVE_TRANSFERS METRC_OUTGOING_ACTIVE_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/outgoing/inactive METRC_OUTGOING_INACTIVE_TRANSFERS METRC_OUTGOING_INACTIVE_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/rejected METRC_OUTGOING_REJECTED_TRANSFERS METRC_OUTGOING_REJECTED_SUPERTRANSFERS ✅ ✅ ❌
/v2/transfers/templates METRC_TRANSFER_TEMPLATES ✅ ❌ ❌