COSTA.
v2.0 · Published November 2, 2026

An open standard for cannabis product data.

COSTA is the Cannabis Open Standards Technology Alliance. We maintain a vendor-neutral schema that lets licensed producers publish product information once — and have it read consistently by every dispensary, marketplace, regulator, and search engine that consumes it.

Read the spec →Adopt for your catalog
New · COSTA 2.0 draft: lab reports, GTIN history and provincial profilesRead the announcement →
The problem

Every retailer wants your data in a different shape.

Licensed producers maintain the same product catalog in five different formats — one per marketplace, one per provincial board, one for their own website, one for their distributor, one for the GS1 feed. Consumers see inconsistent THC numbers, missing terpene data, and stale availability across the channels they shop on. COSTA fixes the format problem so everyone can fix the data problem.

01 / Standardize

One schema, every channel

One schema for product, lot and lab report data, in JSON-LD and XML. Product pages keep using schema.org/Product, so search engines understand them natively.
02 / Decentralize

You host your own data

No central authority, no API to pay for, no gatekeeper. Publish a feed at /.well-known/costa/feed.json on your own domain and link it from your product pages. Aggregators come to you.
03 / Comply

Regulatory-aware by design

Health Canada classes of cannabis, label-basis potency, lot data, structured lab reports and provincial supplier profiles are first-class, not bolted on. A free reference validator checks them.
1
Source of truth per product
2
Wire formats: JSON-LD and XML, generated from one schema
30+
Schema fields covering cannabinoids, terpenes, testing, and compliance
MIT
Open license for the specification and reference code
Built on

Standards you already trust.

COSTA extends widely adopted web standards rather than inventing new ones. If your team already publishes schema.org markup or GS1 GTINs, you are most of the way there.

schema.org/ProductJSON-LDJSON SchemaXML / XSDISO 8601GS1 GTINHealth Canada classesMIT
Example

What a COSTA product looks like.

Below is a minimal COSTA 2.0 product record for a fictional producer. It passes the reference validator for the federal profile. See the full specification for every field, plus lot and lab report records.

{
  "@context": "https://gocosta.org/ns/costa-2.0.jsonld",
  "@type": "CostaProduct",
  "costaVersion": "2.0",
  "costaId": "https://producer.example/costa/products/3f2a9c1e-7b1d-4c55-9a43-0d6b8f1e2a10",
  "recordVersion": 4,
  "recordUpdated": "2026-10-28T14:05:00Z",
  "status": "active",
  "conformsTo": ["ca-federal/2.0"],
  "identifiers": {
    "gtins": [
      { "gtin": "00628123000105", "packagingLevel": "consumerUnit",
        "validFrom": "2026-03-01", "validThrough": null, "status": "active" }
    ]
  },
  "name": { "en": "Northern Lights Dried Flower 3.5 g", "fr": "Northern Lights fleurs séchées 3,5 g" },
  "brand": { "name": "Northshore" },
  "licenceHolder": { "legalName": "Northshore Cannabis Co. Ltd.", "role": "processor",
                     "phone": "+1 613 555 0100", "email": "info@producer.example" },
  "classOfCannabis": "dried cannabis",
  "productForm": "driedFlower",
  "discreteUnits": false,
  "netContent": { "value": 3.5, "unit": "g" },
  "potency": {
    "totalThc": { "unit": "mg/g", "min": 200, "max": 260 },
    "totalCbd": { "unit": "mg/g", "min": 0, "max": 2 }
  },
  "terpenes": { "dominant": ["beta-Myrcene", "beta-Caryophyllene", "Limonene"] },
  "strain": { "name": "Northern Lights", "plantType": "indicaDominant" }
}
Why adopt

Four reasons producers move to COSTA.

Cut catalog work

Maintain one canonical product record. Marketplaces, dispensaries, and aggregators read directly from your site.

Reach search and AI

JSON-LD on schema.org/Product unlocks rich results in search and gives LLM-powered shopping tools structured data they can rely on.

Stay compliant without rework

The validator checks your data against Health Canada label rules, THC limits and lab results, and against OCS, BC LDB and SQDC supplier requirements, before anyone else sees it.

Own your data

COSTA is decentralized. There is no platform to lock you in, no fees, no gatekeeper between you and the channels reading your catalog.
See how to adopt →

Help shape 2.0.

COSTA 2.0 is a draft for public comment. File an issue, propose a change, or fork the repo. We are actively seeking feedback from licensed producers, labs, marketplaces and provincial distributors.