PagedProducts

CompanyCannabisComplianceBankingFinancial ServicesBSA/AMLRegTechPoint-of-SaleOnboardingDue DiligenceKYCData Aggregation

Properties

Name Type Description
metadata object
data array
View JSON Schema on GitHub

JSON Schema

green-check-verified-paged-products-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-paged-products-schema.json",
  "title": "PagedProducts",
  "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/PagedProducts",
  "properties": {
    "metadata": {
      "properties": {
        "total": {
          "$ref": "#/$defs/PositiveInteger"
        },
        "count": {
          "type": "string",
          "description": "Range of items returned"
        }
      },
      "required": [
        "total",
        "count"
      ],
      "type": "object"
    },
    "data": {
      "items": {
        "$ref": "#/$defs/Product"
      },
      "type": "array"
    }
  },
  "required": [
    "metadata",
    "data"
  ],
  "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
    },
    "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
    },
    "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-paged-products"
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.