Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: catalog Sku API
version: 3.1.0
servers:
- url: https://api-prod.treez.io/service/catalog
security:
- {}
tags:
- name: Sku
paths:
/v3/sku:
get:
summary: Read SKUs
description: ''
operationId: catalog-sku-read
parameters:
- name: ids
in: query
description: The `id` GUID of the SKUs to be returned.
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": \"99dd4a54-4095-42e4-987e-b23ad59d2ac3\",\n \"createdAt\": \"2025-06-23T14:29:11.503Z\",\n \"updatedAt\": \"2025-10-29T19:54:00.419Z\",\n \"deletedAt\": null,\n \"name\": \"Super Mega Wicked Awesome Yum Yums - 10 mg\",\n \"labelPrinter\": null,\n \"defaultPrices\": {\n \"base\": 2500\n },\n \"details\": {\n \"totalMgThc\": 10,\n \"description\": \"As the name says, these are even more awesome than their predecessor, Mega Wicked Awesome Yum Yums. Who'd have thought this was even possible? Putting this much awesomeness into a gummy is just absurd.\",\n \"useCustomName\": false,\n \"hideFromEcomMenu\": false\n },\n \"status\": \"active\",\n \"sku\": null,\n \"additionalSku\": [],\n \"uom\": \"milligrams\",\n \"liquidVolumeUom\": null,\n \"amount\": 10,\n \"liquidVolumeAmount\": null,\n \"unitCount\": 1,\n \"merchandiseSize\": null,\n \"organizationId\": \"b1226d0b-4940-4edf-aab3-dbd1642f7f69\",\n \"productId\": \"01da5dbd-4e45-44d5-a62e-0e349f221cff\",\n \"referenceIds\": [],\n \"targetMergedVariantId\": null,\n \"parentId\": null,\n \"product\": {\n \"id\": \"01da5dbd-4e45-44d5-a62e-0e349f221cff\",\n \"productSubCategory\": {\n \"id\": \"f6e25c9a-27f3-41a7-9037-b5e0c2f3e652\",\n \"name\": \"Gummy\",\n \"productCategory\": {\n \"id\": \"6e73028e-3e8f-47e9-98b1-ef2b1b71a5bf\",\n \"name\": \"Edible\"\n }\n }\n },\n \"label\": \"10 mg\"\n }\n]"
schema:
type: array
items:
type: object
properties:
id:
type: string
example: 99dd4a54-4095-42e4-987e-b23ad59d2ac3
createdAt:
type: string
example: '2025-06-23T14:29:11.503Z'
updatedAt:
type: string
example: '2025-10-29T19:54:00.419Z'
deletedAt: {}
name:
type: string
example: Super Mega Wicked Awesome Yum Yums - 10 mg
labelPrinter: {}
defaultPrices:
type: object
properties:
base:
type: integer
example: 2500
default: 0
details:
type: object
properties:
totalMgThc:
type: integer
example: 10
default: 0
description:
type: string
example: As the name says, these are even more awesome than their predecessor, Mega Wicked Awesome Yum Yums. Who'd have thought this was even possible? Putting this much awesomeness into a gummy is just absurd.
useCustomName:
type: boolean
example: false
default: true
hideFromEcomMenu:
type: boolean
example: false
default: true
status:
type: string
example: active
sku: {}
additionalSku:
type: array
items:
type: object
properties: {}
uom:
type: string
example: milligrams
liquidVolumeUom: {}
amount:
type: integer
example: 10
default: 0
liquidVolumeAmount: {}
unitCount:
type: integer
example: 1
default: 0
merchandiseSize: {}
organizationId:
type: string
example: b1226d0b-4940-4edf-aab3-dbd1642f7f69
productId:
type: string
example: 01da5dbd-4e45-44d5-a62e-0e349f221cff
referenceIds:
type: array
items:
type: object
properties: {}
targetMergedVariantId: {}
parentId: {}
product:
type: object
properties:
id:
type: string
example: 01da5dbd-4e45-44d5-a62e-0e349f221cff
productSubCategory:
type: object
properties:
id:
type: string
example: f6e25c9a-27f3-41a7-9037-b5e0c2f3e652
name:
type: string
example: Gummy
productCategory:
type: object
properties:
id:
type: string
example: 6e73028e-3e8f-47e9-98b1-ef2b1b71a5bf
name:
type: string
example: Edible
label:
type: string
example: 10 mg
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Sku
post:
summary: Create SKU
description: ''
operationId: catalog-sku-create
requestBody:
content:
application/json:
schema:
type: object
required:
- productId
properties:
productId:
type: string
description: '`id` of the parent product record'
sku:
type: string
description: Optional SKU barcode value
additionalSku:
type: array
items:
type: string
labelPrinter:
type: string
referenceIds:
type: array
items:
properties:
sourceName:
type: string
sourceId:
type: string
isInternal:
type: boolean
type: object
details:
type: object
properties:
totalMgCbd:
type: integer
format: int32
totalMgThc:
type: integer
format: int32
doses:
type: integer
format: int32
cbdPerDose:
type: integer
format: int32
thcPerDose:
type: integer
format: int32
totalFlowerWeight:
type: integer
format: int32
totalConcentrateWeight:
type: integer
description: Only required for the Infused Preroll subcategory.
format: int32
netWeight:
type: integer
format: int32
netWeightUom:
type: string
enum:
- FLUID OUNCES
- GRAMS
- LITERS
- MILLIGRAMS
- MILLILITERS
- OUNCES
menuTitle:
type: string
description:
type: string
hideFromEcomMenu:
type: boolean
isSample:
type: boolean
isPromo:
type: boolean
useCustomName:
type: boolean
description: Enables a custom name to be defined using the `name` value.
grossWeight:
type: number
format: float
usableMarijuanaWeight:
type: number
format: float
uom:
type: string
enum:
- each
- grams
- kilograms
- milligrams
- ounces
- pounds
- null
amount:
type: number
format: float
unitCount:
type: integer
format: int32
merchandiseSize:
type: string
name:
type: string
description: 'Can be used when `useCustomName: true` is specified'
status:
type: string
enum:
- active
- inactive
defaultPrices:
type: object
properties:
base:
type: integer
description: Enter full dollars and cents without decimal points. E.g. $10 should be passed as `1000`.
format: int32
promo:
type: object
properties:
sku:
type: string
description: SKU barcode value
additionalSku:
type: array
description: Additional barcode values
items:
type: string
name:
type: string
description: 'Custom name (requires `details.useCustomName: true`)'
defaultPrices:
type: object
description: Contains `base` (number) for base price
properties: {}
details:
type: object
properties: {}
sample:
type: object
properties:
sku:
type: string
description: SKU barcode value
additionalSku:
type: array
description: Additional barcode values
items:
type: string
name:
type: string
description: 'Custom name (requires `details.useCustomName: true`)'
defaultPrices:
type: object
description: Contains `base` (number) for base price
properties: {}
details:
type: object
properties: {}
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": \"99dd4a54-4095-42e4-987e-b23ad59d2ac3\",\n \"createdAt\": \"2025-06-23T14:29:11.503Z\",\n \"updatedAt\": \"2025-10-29T19:54:00.419Z\",\n \"deletedAt\": null,\n \"name\": \"Super Mega Wicked Awesome Yum Yums - 10 mg\",\n \"labelPrinter\": null,\n \"defaultPrices\": {\n \"base\": 2500\n },\n \"details\": {\n \"totalMgThc\": 10,\n \"description\": \"As the name says, these are even more awesome than their predecessor, Mega Wicked Awesome Yum Yums. Who'd have thought this was even possible? Putting this much awesomeness into a gummy is just absurd.\",\n \"useCustomName\": false,\n \"hideFromEcomMenu\": false\n },\n \"status\": \"active\",\n \"sku\": null,\n \"additionalSku\": [],\n \"uom\": \"milligrams\",\n \"liquidVolumeUom\": null,\n \"amount\": 10,\n \"liquidVolumeAmount\": null,\n \"unitCount\": 1,\n \"merchandiseSize\": null,\n \"organizationId\": \"b1226d0b-4940-4edf-aab3-dbd1642f7f69\",\n \"productId\": \"01da5dbd-4e45-44d5-a62e-0e349f221cff\",\n \"referenceIds\": [],\n \"targetMergedVariantId\": null,\n \"parentId\": null,\n \"product\": {\n \"id\": \"01da5dbd-4e45-44d5-a62e-0e349f221cff\",\n \"productSubCategory\": {\n \"id\": \"f6e25c9a-27f3-41a7-9037-b5e0c2f3e652\",\n \"name\": \"Gummy\",\n \"productCategory\": {\n \"id\": \"6e73028e-3e8f-47e9-98b1-ef2b1b71a5bf\",\n \"name\": \"Edible\"\n }\n }\n },\n \"label\": \"10 mg\"\n }\n]"
schema:
type: array
items:
type: object
properties:
id:
type: string
example: 99dd4a54-4095-42e4-987e-b23ad59d2ac3
createdAt:
type: string
example: '2025-06-23T14:29:11.503Z'
updatedAt:
type: string
example: '2025-10-29T19:54:00.419Z'
deletedAt: {}
name:
type: string
example: Super Mega Wicked Awesome Yum Yums - 10 mg
labelPrinter: {}
defaultPrices:
type: object
properties:
base:
type: integer
example: 2500
default: 0
details:
type: object
properties:
totalMgThc:
type: integer
example: 10
default: 0
description:
type: string
example: As the name says, these are even more awesome than their predecessor, Mega Wicked Awesome Yum Yums. Who'd have thought this was even possible? Putting this much awesomeness into a gummy is just absurd.
useCustomName:
type: boolean
example: false
default: true
hideFromEcomMenu:
type: boolean
example: false
default: true
status:
type: string
example: active
sku: {}
additionalSku:
type: array
items:
type: object
properties: {}
uom:
type: string
example: milligrams
liquidVolumeUom: {}
amount:
type: integer
example: 10
default: 0
liquidVolumeAmount: {}
unitCount:
type: integer
example: 1
default: 0
merchandiseSize: {}
organizationId:
type: string
example: b1226d0b-4940-4edf-aab3-dbd1642f7f69
productId:
type: string
example: 01da5dbd-4e45-44d5-a62e-0e349f221cff
referenceIds:
type: array
items:
type: object
properties: {}
targetMergedVariantId: {}
parentId: {}
product:
type: object
properties:
id:
type: string
example: 01da5dbd-4e45-44d5-a62e-0e349f221cff
productSubCategory:
type: object
properties:
id:
type: string
example: f6e25c9a-27f3-41a7-9037-b5e0c2f3e652
name:
type: string
example: Gummy
productCategory:
type: object
properties:
id:
type: string
example: 6e73028e-3e8f-47e9-98b1-ef2b1b71a5bf
name:
type: string
example: Edible
label:
type: string
example: 10 mg
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{"message":"Event Schema Validation Failed","errorType":"Validation","errorMsgs":["productId is required"],"failed":[{"entity":{"sku":"sku_barcode","additionalSku":[],"labelPrinter":"printer goes here","referenceIds":[{"sourceName":"test_id","sourceId":"123459789"}],"images":[{"imageId":"72b36949-f19d-4aac-aefb-84c61ba126fc","name":"Leaf","organizationId":"b1226d0b-4940-4edf-aab3-dbd1642f7f69","order":1}],"details":{"totalMgCbd":5,"totalMgThc":14,"doses":1,"cbdPerDose":0.5,"totalFlowerWeight":2,"netWeight":18,"netWeightUom":"MILLIGRAMS","menuTitle":"Mega Yum Yum 14MG","description":"Delicious gummies! These are really relaxing.","hideFromEcomMenu":false,"isSample":false,"isPromo":false},"uom":"MILLIGRAMS","amount":14,"unitCount":1,"merchandiseSize":null,"name":"name goes here","children":[]},"errors":["productId is required"]}]}'
schema:
oneOf:
- type: object
properties:
message:
type: string
example: Entity Validation Failed
errorType:
type: string
example: Validation
errorMsgs:
type: array
items:
type: string
example: given productId is not available
failed:
type: array
items:
type: object
properties:
entity:
type: object
properties:
sku:
type: string
example: sku_barcode
additionalSku:
type: array
items:
type: object
properties: {}
labelPrinter:
type: string
example: printer goes here
referenceIds:
type: array
items:
type: object
properties:
sourceName:
type: string
example: test_id
sourceId:
type: string
example: '123459789'
details:
type: object
properties:
totalMgCbd:
type: integer
example: 5
default: 0
totalMgThc:
type: integer
example: 14
default: 0
doses:
type: integer
example: 1
default: 0
cbdPerDose:
type: number
example: 0.5
default: 0
totalFlowerWeight:
type: integer
example: 2
default: 0
netWeight:
type: integer
example: 18
default: 0
netWeightUom:
type: string
example: MILLIGRAMS
menuTitle:
type: string
example: Mega Yum Yum 14MG
description:
type: string
example: Delicious gummies! These are really relaxing.
hideFromEcomMenu:
type: boolean
example: false
default: true
uom:
type: string
example: milligrams
amount:
type: integer
example: 14
default: 0
unitCount:
type: integer
example: 1
default: 0
merchandiseSize: {}
name:
type: string
example: name goes here
productId:
type: string
example: f8e82e59-b114-4161-8cb7-383ceec04076
errors:
type: array
items:
type: string
example: given productId is not available
- type: object
properties:
message:
type: string
example: Event Schema Validation Failed
errorType:
type: string
example: Validation
errorMsgs:
type: array
items:
type: string
example: productId is required
failed:
type: array
items:
type: object
properties:
entity:
type: object
properties:
sku:
type: string
example: sku_barcode
additionalSku:
type: array
items:
type: object
properties: {}
labelPrinter:
type: string
example: printer goes here
referenceIds:
type: array
items:
type: object
properties:
sourceName:
type: string
example: test_id
sourceId:
type: string
example: '123459789'
images:
type: array
items:
type: object
properties:
imageId:
type: string
example: 72b36949-f19d-4aac-aefb-84c61ba126fc
name:
type: string
example: Leaf
organizationId:
type: string
example: b1226d0b-4940-4edf-aab3-dbd1642f7f69
order:
type: integer
example: 1
default: 0
details:
type: object
properties:
totalMgCbd:
type: integer
example: 5
default: 0
totalMgThc:
type: integer
example: 14
default: 0
doses:
type: integer
example: 1
default: 0
cbdPerDose:
type: number
example: 0.5
default: 0
totalFlowerWeight:
type: integer
example: 2
default: 0
netWeight:
type: integer
example: 18
default: 0
netWeightUom:
type: string
example: MILLIGRAMS
menuTitle:
type: string
example: Mega Yum Yum 14MG
description:
type: string
example: Delicious gummies! These are really relaxing.
hideFromEcomMenu:
type: boolean
example: false
default: true
isSample:
type: boolean
example: false
default: true
isPromo:
type: boolean
example: false
default: true
uom:
type: string
example: MILLIGRAMS
amount:
type: integer
example: 14
default: 0
unitCount:
type: integer
example: 1
default: 0
merchandiseSize: {}
name:
type: string
example: name goes here
children:
type: array
items:
type: object
properties: {}
errors:
type: array
items:
type: string
example: productId is required
deprecated: false
tags:
- Sku
patch:
summary: Update SKU
description: ''
operationId: catalog-sku-update
requestBody:
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: The `id` GUID of the sku to be updated
sku:
type: string
description: Optional SKU barcode value
additionalSku:
type: array
items:
type: string
labelPrinter:
type: string
referenceIds:
type: array
items:
properties:
sourceName:
type: string
sourceId:
type: string
isInternal:
type: boolean
type: object
details:
type: object
properties:
totalMgCbd:
type: integer
format: int32
totalMgThc:
type: integer
format: int32
doses:
type: integer
format: int32
cbdPerDose:
type:
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treez/refs/heads/main/openapi/treez-sku-api-openapi.yml