Product

CompanyCannabisComplianceBankingFinancial ServicesBSA/AMLRegTechPoint-of-SaleOnboardingDue DiligenceKYCData Aggregation

Properties

Name Type Description
crb_id object ID of the CRB the product record belongs to.
id object The unique ID of this product record.
pos_product_id string Product ID in the POS system
pos_type object The POS system that this data is sourced from.
name string The name of the product.
gc_product_category_name object The Green Check standardized category. Null if we are unable to standardize
pos_product_category_name stringnull Category name as given by the POS.
pos_product_subcategory_name stringnull Subcategory name as given by the POS.
pos_strain_name stringnull Strain name as given by the POS.
pos_brand_name stringnull Brand name as given by the POS.
medicated booleannull True or false if this is a THC having marijuana product.
sku stringnull The SKU for the product.
description stringnull Product description.
gc_net_weight_grams object Our calculated net weight of the product in grams.
pos_unit_of_measure stringnull The unit of measure of the product as sold by the POS (weight, quantity, etc).
price object Price of the product in cents. Can be null if priced by tiers only.
unit_cost object Unit cost of the product in cents. Can be null if not supplied by the POS.
pos_updated_date stringnull The timestamp reported by the POS for the last update to this record in UTC.
pos_updated_date_local stringnull The timestamp reported by the POS for the last update to this record in the CRB local time.
gc_created_date string The timestamp of this record's insertion in UTC.
gc_updated_date string
price_tiers arraynull Price tiers applied to this product. May or may not be provided by the POS system.
images arraynull A list of any images associated with this product.
View JSON Schema on GitHub

JSON Schema

green-check-verified-product-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/green-check-verified/main/json-schema/green-check-verified-product-schema.json",
  "title": "Product",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/green-check-verified-crb-products-api-openapi.yml#/components/schemas/Product",
  "properties": {
    "crb_id": {
      "$ref": "#/$defs/UUID",
      "description": "ID of the CRB the product record belongs to."
    },
    "id": {
      "$ref": "#/$defs/UUID",
      "description": "The unique ID of this product record."
    },
    "pos_product_id": {
      "type": "string",
      "description": "Product ID in the POS system"
    },
    "pos_type": {
      "$ref": "#/$defs/FriendlyPosName",
      "description": "The POS system that this data is sourced from."
    },
    "name": {
      "type": "string",
      "description": "The name of the product."
    },
    "gc_product_category_name": {
      "$ref": "#/$defs/ProductCategoryType",
      "description": "The Green Check standardized category. Null if we are unable to standardize"
    },
    "pos_product_category_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Category name as given by the POS."
    },
    "pos_product_subcategory_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Subcategory name as given by the POS."
    },
    "pos_strain_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Strain name as given by the POS."
    },
    "pos_brand_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Brand name as given by the POS."
    },
    "medicated": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "True or false if this is a THC having marijuana product."
    },
    "sku": {
      "type": [
        "string",
        "null"
      ],
      "description": "The SKU for the product."
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "Product description."
    },
    "gc_net_weight_grams": {
      "$ref": "#/$defs/NullablePositiveDouble",
      "description": "Our calculated net weight of the product in grams."
    },
    "pos_unit_of_measure": {
      "type": [
        "string",
        "null"
      ],
      "description": "The unit of measure of the product as sold by the POS (weight, quantity, etc)."
    },
    "price": {
      "$ref": "#/$defs/NullablePositiveInteger",
      "description": "Price of the product in cents. Can be null if priced by tiers only."
    },
    "unit_cost": {
      "$ref": "#/$defs/NullablePositiveDouble",
      "description": "Unit cost of the product in cents. Can be null if not supplied by the POS."
    },
    "pos_updated_date": {
      "$ref": "#/$defs/NullableUtcDateTime",
      "description": "The timestamp reported by the POS for the last update to this record in UTC.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "pos_updated_date_local": {
      "$ref": "#/$defs/NullableLocalDateTime",
      "description": "The timestamp reported by the POS for the last update to this record in the CRB local time.",
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[2][0][0-9]{2}[-]([0][0-9]|[1][0-2])[-]([0-2][0-9]|[3][0-1]\\s([0-1][0-9]|[2][0-3])[:][0-5][0-9][:][0-5][0-9]([.][0-9]{1,3})?"
    },
    "gc_created_date": {
      "$ref": "#/$defs/UtcDateTime",
      "description": "The timestamp of this record's insertion in UTC.",
      "type": "string",
      "format": "date-time"
    },
    "gc_updated_date": {
      "$ref": "#/$defs/UtcDateTime",
      "type": "string",
      "format": "date-time"
    },
    "price_tiers": {
      "items": {
        "$ref": "#/$defs/ProductPriceTier"
      },
      "type": [
        "array",
        "null"
      ],
      "description": "Price tiers applied to this product. May or may not be provided by the POS system."
    },
    "images": {
      "items": {
        "$ref": "#/$defs/ProductImage"
      },
      "type": [
        "array",
        "null"
      ],
      "description": "A list of any images associated with this product."
    }
  },
  "required": [
    "crb_id",
    "id",
    "pos_product_id",
    "pos_type",
    "name",
    "gc_product_category_name",
    "pos_product_category_name",
    "pos_product_subcategory_name",
    "pos_strain_name",
    "pos_brand_name",
    "medicated",
    "sku",
    "description",
    "gc_net_weight_grams",
    "pos_unit_of_measure",
    "price",
    "unit_cost",
    "pos_updated_date",
    "pos_updated_date_local",
    "gc_created_date",
    "gc_updated_date",
    "price_tiers",
    "images"
  ],
  "type": "object",
  "additionalProperties": false,
  "$defs": {
    "FriendlyPosName": {
      "type": "string",
      "enum": [
        "Alleaves",
        "Dutchie",
        "Dutchie Wholesale",
        "Cova",
        "Meadow",
        "MJ Freeway",
        "MJ Freeway Wholesale",
        "Greenbits",
        "GrowFlow",
        "GrowFlow Wholesale",
        "Portal42",
        "Metrc S2S",
        "Metrc S2S Wholesale",
        "Flourish",
        "Flourish Wholesale",
        "Flowhub",
        "BioTrack",
        "BioTrack Wholesale",
        "Treez",
        "Blaze",
        "Quickbooks",
        "Sage Intacct",
        "Canix",
        "Brytemap",
        "POSaBIT",
        "Proteus420",
        "IndicaOnline",
        "Sweed",
        "Weave",
        "Jane",
        "Manual Upload Wholesale",
        "Cova Test Account",
        "Leaf Logix Test Account",
        "BioTrack Test Account",
        "Mj Freeway Test Account",
        "Treez IO Test Account",
        "Green Bits Test Account",
        "Manual Upload Retail",
        "Not Configured",
        "Unsupported",
        "CRBMonitor",
        "Plaid"
      ]
    },
    "NullableLocalDateTime": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[2][0][0-9]{2}[-]([0][0-9]|[1][0-2])[-]([0-2][0-9]|[3][0-1])\\s([0-1][0-9]|[2][0-3])[:][0-5][0-9][:][0-5][0-9][.][0-9]{3}"
    },
    "NullablePositiveDouble": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0
    },
    "NullablePositiveInteger": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int32",
      "minimum": 0
    },
    "NullableUtcDateTime": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "PositiveInteger": {
      "type": "integer",
      "format": "int32",
      "minimum": 0
    },
    "ProductCategoryType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "flower",
        "oil/concentrate",
        "edible",
        "other",
        "seedling",
        "seed",
        "liquid",
        "solid",
        "extract",
        "plant",
        "accessory",
        "marijuana_product",
        "topical",
        "edible_liquid"
      ]
    },
    "ProductImage": {
      "properties": {
        "url": {
          "type": "string",
          "description": "URL to the image file"
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "Any description provided by the POS like file name, dimensions, product description"
        }
      },
      "required": [
        "url",
        "description"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "ProductPriceTier": {
      "properties": {
        "tier_name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Price Tier name, if any"
        },
        "tier_price": {
          "$ref": "#/$defs/PositiveInteger",
          "description": "Price of the product price tier in cents"
        },
        "pos_tier_type": {
          "type": "string",
          "description": "The type of tier condition from the pos system (like quantity or volume)"
        },
        "pos_tier_type_condition_value": {
          "type": "string",
          "description": "The condition(s) required (based on the tier type) to apply this tier on the product"
        },
        "tier_valid_until_date": {
          "$ref": "#/$defs/NullableUtcDateTime",
          "description": "Datetime that this tier stops being valid, if applicable",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "tier_valid_until_date_local": {
          "$ref": "#/$defs/NullableLocalDateTime",
          "description": "Datetime that this tier stops being valid in CRB’s local timezone, if applicable",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[2][0][0-9]{2}[-]([0][0-9]|[1][0-2])[-]([0-2][0-9]|[3][0-1]\\s([0-1][0-9]|[2][0-3])[:][0-5][0-9][:][0-5][0-9]([.][0-9]{1,3})?"
        }
      },
      "required": [
        "tier_name",
        "tier_price",
        "pos_tier_type",
        "pos_tier_type_condition_value",
        "tier_valid_until_date",
        "tier_valid_until_date_local"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "UUID": {
      "type": "string",
      "format": "uuid",
      "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
    },
    "UtcDateTime": {
      "type": "string",
      "format": "date-time"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/green-check-verified-product"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.