A developer at night, building Seedlink, with a moonlit cannabis cultivation field outside the window

A developer platform for cannabis track and trace

Stop rebuilding integrations for every state.

Your app
POS · ERP · Marketplace
SeedLink
Unified API
Metrc
28 jurisdictions
AK · AL · CA · CO · DC · GU · IL · KY · LA · MA · MD · ME · MI · MN · MO · MS · MT · NJ · NV · NY · OH · OK · OR · RI · SD · VA · VI · WV
BioTrack THC
8 states
AR · CT · DE · FL · HI · ND · NH · NM

Just add a few lines of code.

app.ts
import { Seedlink } from '@seedlink/node'

const seedlink = new Seedlink('sl_live_...')

const packages = await seedlink.packages.list({
  connection: 'conn_123'
})

How it works.

Connect SDK

Connect.

An iframe your customer uses to paste their compliance credentials.

Theme
Background
Accent
Step
Acme Cannabis Co.
Step 1 of 3

Connect your compliance system

Pick the seed-to-sale system your facility uses. We'll collect your credentials securely and verify the connection.

BioTrackTHC
BioTrack THC
8 states
Powered by SeedLink
SDK init code
SeedlinkConnect.create({
  token: 'lt_9f2c8a4b7e1d3f6g',
  theme: 'light',
  backgroundColor: '#f3ecd9',
  primaryColor: '#2d5240',
  customerName: 'Acme Cannabis Co.',
  onSuccess: (publicToken, metadata) => {
    // hand publicToken to your server
  },
});

Drop this into your app. The iframe renders with the config you've selected — themed to match your brand, embedded next to your application chrome.

Standardized API

Standardize.

Every provider mapped to one schema.

Metrc · California · sandbox
conn_mrc_9f8a7b6c
RequestGET
GET/v1/connections/conn_mrc_9f8a7b6c/facilities
curl https://api.seedlink.dev/v1/connections/conn_mrc_9f8a7b6c/facilities \ -H "Authorization: Bearer at_..." \ -H "Accept: application/json"
Auth
OAuth Bearer
Returns
Paginated list
Description
List all facilities under this connection.
Response200 OK · 142ms
{
  "data": [
    {
      "id": "sandbox-fac-001",
      "name": "Green Valley Dispensary",
      "license_number": "C10-0000001-LIC",
      "license_type": "Retailer",
      "state": "CA",
      "provider": "metrc",
      "status": "active",
      "capabilities": [
        "packages",
        "sales",
        "lab_results",
        "transfers"
      ]
    },
    {
      "id": "sandbox-fac-002",
      "name": "Emerald Farms Cultivation",
      "license_number": "C12-0000042-LIC",
      "license_type": "Cultivator",
      "state": "CA",
      "provider": "metrc",
      "status": "active"
    }
  ],
  "meta": {
    "request_id": "req_a1b2c3d4",
    "provider": "metrc",
    "state": "CA",
    "timestamp": "2026-05-06T19:42:11Z"
  },
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 2,
    "total_pages": 1
  }
}
Webhooks

Listen.

Subscribe to compliance events without polling.

POSTacme.example.com/webhooks/seedlink
200 OK47ms
{
  "id": "evt_9f8a7b6c1d3e",
  "type": "package.created",
  "created": "2026-05-12T14:32:18Z",
  "connection": "conn_test_9f8a",
  "data": {
    "id": "pkg_a1b2",
    "tag": "1A40F00000001000000001",
    "item_name": "Blue Dream · Flower · 3.5g",
    "quantity": 150,
    "unit_of_measure": "Grams"
  }
}
X-Seedlink-Signature: v1=a3f2c8d7e91b6f4a...
X-Seedlink-Event-Id:  evt_9f8a7b6c1d3e

Get started

Read the docs.