Treez Product API

The Product_API API from Treez — 7 operation(s) for product_api.

Operations 7

GET /{dispensary_name}/product/product_list GET/ List of Products #
GET /{dispensary_name}/product/product_list/lastUpdated/after/{date_time} GET/ List of Products by Last_Updated_At #
GET /{dispensary_name}/product/{product_id} GET/ Product by ID #
GET /{dispensary_name}/product/product_fields GET/ Product Fields by Category Type #
POST /{dispensary_name}/product/{product_id}/image/upload POST/ Upload an Image to a Product #
POST /{dispensary_name}/product/create POST/ Create Product #
PUT /{dispensary_name}/product/update/{product_id}' PUT/ Update Product #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/treez-product-api-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

treez-product-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '# INTRODUCTION

    Using the Product API you can easily create new products in the POS system.'
  version: 2.7.4
  title: Product_ Product API
  contact:
    name: Treez
    url: https://www.treez.io/
    email: support@treez.io
servers:
- url: https://api.treez.io/v2.0/dispensary
tags:
- name: Product API
paths:
  /{dispensary_name}/product/product_list:
    get:
      tags:
      - Product API
      summary: GET/ List of Products
      description: This endpoint provides a catalog of products that can be filtered by query parameters available with this endpoint. This endpoint should be used when looking up the the current units available of units for inventory.
      operationId: ProductListGet
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io.
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: authorization
        in: header
        description: Enter the access token generated via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Enter the page_number.
        required: true
        schema:
          type: integer
          format: int32
          default: 1
      - name: category_type
        in: query
        description: This field is the equivalent to product type in the Treez UI. The value of the field describes the product type the inventory was assigned to when it was recieved.
        required: false
        schema:
          type: string
      - name: active
        in: query
        description: The active parameter filters for active products in the product catalog. If this parameter is set to 'FALSE' only deactivated products will be returned in the response. If set to 'TRUE', only active products will be returned. If this parameter is set to 'ALL', it will return both active and deactivated products. Whether a product is active or not does not have any relationship with a product having inventory or not.
        required: false
        schema:
          type: boolean
          format: int32
      - name: id
        in: query
        description: Filter by unique ID associated with each product. The product_id value will not change once a product has been created. You can search up to 50 product IDs at time with this endpoint.
        required: false
        schema:
          type: string
      - name: sellable_quantity_in_location
        in: query
        description: This allows partners to filter for products in a particular location in Treez.
        required: false
        schema:
          type: string
      - name: sellable_quantity_in_type
        in: query
        description: This parameter allows the partner to filter based on the inventory type of the product. The filters for this filter are MEDICAL, ADULT, and ALL.
        required: false
        schema:
          type: string
      - name: above_threshold
        in: query
        description: When the parameter is set to 'TRUE' the response will only contain products that are above the minimum_visible_inventory_level set up in the config page of Treez. If 'FALSE' the products listed in the response will be below the minimum_visible_inventory_level.
        required: false
        schema:
          type: boolean
          format: int32
      responses:
        '200':
          description: "SUCCESS. \n Returns the latest data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request. \n Response limit is exceeded."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/product_list/lastUpdated/after/{date_time}:
    get:
      tags:
      - Product API
      summary: GET/ List of Products by Last_Updated_At
      description: This endpoint returns a list of products in which the last_update_at timestamp is after the timestamps defined in the endpoint. The last_updated_at timestamp only updates when the metadata for a product changes. If inventory is sold for a product the last_updated_at timestamp will not change. This endpoint should not be used to track inventory levels.
      operationId: UpdatedProductListGet
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io.
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: date_time
        in: path
        description: 'Format: The last_updated_at is updated only when product metadata is changed in either the API or UI. The approved format for this field is yyyy-MM-ddThh:mm:ss.000-08:00.'
        required: true
        schema:
          type: string
          default: '2021-09-11T08:54:53.000-07:00'
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Enter the page_number.
        required: true
        schema:
          type: integer
          format: int32
          default: 1
      - name: category_type
        in: query
        description: Is the equivalent to product type in the treez UI. The value of the field describes the product type the inventory was assigned to when it was received.
        required: false
        schema:
          type: string
          default: all
      - name: active
        in: query
        description: The active parameter filters for active products in the product catalog. If this parameter is set to 'FALSE' only deactivated products will be returned in the response. If set to 'TRUE', only active products will be returned. If this parameter is set to 'ALL', it will return both active and deactivated products. Whether a product is active or not does not have any relationship with a product having inventory or not.
        required: false
        schema:
          type: boolean
          format: int32
      responses:
        '200':
          description: "SUCCESS. \n Returns the latest data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request. \n Response limit is exceeded."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/{product_id}:
    get:
      tags:
      - Product API
      summary: GET/ Product by ID
      description: Provides product information based on the Product ID defined in the endpoint.
      operationId: ByProductIdGet
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io.
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: product_id
        in: path
        description: Unique ID associated with each product. This value will not change once a product has been created.
        required: true
        schema:
          type: string
          default: 1bbe7975-0372-4d82-945c-72e587826b5a
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: "SUCCESS. \n Returns the latest data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/product_fields:
    get:
      tags:
      - Product API
      summary: GET/ Product Fields by Category Type
      description: This endpoint returns information on available fields in the product API for each product category.
      operationId: ProductFieldsGet
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      - name: category_type
        in: query
        description: Is the equivalent to product type in the Treez UI. The value of the field describes the product type the inventory was assigned to when it was received.
        required: true
        schema:
          type: string
          default: all
      responses:
        '200':
          description: "SUCCESS. \n Returns the latest data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/{product_id}/image/upload:
    post:
      tags:
      - Product API
      summary: POST/ Upload an Image to a Product
      description: This endpoint allows partners to upload images to existing products.
      operationId: UploadImage
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: product_id
        in: path
        description: Enter the product_id that you want to upload an image to. Unique ID associated with each product. This value will not change once a product has been created.
        required: true
        schema:
          type: string
          default: 1ae6677a-909b-4bfd-b348-d5e587704655
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                image:
                  description: Product image that will be added to the product defined in the endpoint.
                  type: string
                  format: binary
              required:
              - image
      responses:
        '200':
          description: "SUCCESS. \n Returns the response data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request. \n The wrong JSON structure. \n The validations/requirements are not met."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/create:
    post:
      tags:
      - Product API
      summary: POST/ Create Product
      description: This endpoint needs to be used in order to create a new product in the POS portal via API. It is not possible to add inventory to a product through this endpoint.
      operationId: CreateProduct
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io.
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/CreateNewProductRequest'
      responses:
        '200':
          description: "SUCCESS. \n Returns the response data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request. \n The wrong JSON structure. \n The validations/requirements are not met."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
  /{dispensary_name}/product/update/{product_id}':
    put:
      tags:
      - Product API
      summary: PUT/ Update Product
      description: This endpoint allows partners to update an existing product's metadata.
      operationId: UpdateProductById
      parameters:
      - name: dispensary_name
        in: path
        description: Enter the dispensary name ie. [Dispensaryname].treez.io
        required: true
        schema:
          type: string
          default: partnersandbox2
      - name: product_id
        in: path
        description: The product ID associated to the product that will be edited. The Product ID is a unique ID and this value will not change once a product has been created.
        required: true
        schema:
          type: string
          default: 1bbe7975-0372-4d82-945c-72e587826b5a
      - name: authorization
        in: header
        description: Enter the bearer token obtained via Authorization API.
        required: true
        schema:
          type: string
      - name: client_id
        in: header
        description: Enter the Client_ID provided by TREEZ.
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/CreateNewProductRequest'
      responses:
        '200':
          description: "SUCCESS. \n Returns the response data successfully."
        '400':
          description: "BAD REQUEST. \n The wrong URL request. \n The wrong JSON structure. \n The validations/requirements are not met."
        '401':
          description: "AUTHENTICATION OR AUTHORIZATION. \n The worng client_id is used. \n The expired or wrong access token is used."
          headers: {}
      deprecated: false
components:
  schemas:
    ProductConfigurableFields:
      type: object
      properties:
        amount:
          type: string
          example: '3.5'
          description: Weight of an item associated to a product. This value impacts purchase limits for weight based products.
          default: '3.5'
        brand:
          type: string
          example: KIVA
          description: This field lists the brand that is associated to the product.
          default: KIVA
        classification:
          type: string
          example: SATIVA
          description: This field lists what type of classification a product has. Ie. Indica, Sativa, Hybrid, etc.
          default: SATIVA
        doses:
          type: string
          example: '10'
          description: This describes the total doses of the product.
          default: '10'
        name:
          type: string
          example: ESPRESSO BEANS SAMPLE
          description: Name of the product.
          default: ESPRESSO BEANS SAMPLE
        size:
          type: string
          example: CONE
          description: This is a descriptive field of a size of a product. Ie 5-pack, Cone.
          default: CONE
        sub_type:
          type: string
          example: COOKIE
          description: This field reads the subtype of a product. The available subtype change based on the category_type used.
          default: COOKIE
        total_mg_thc:
          type: string
          example: '3'
          description: This field lists the concentrated amount of MG THC available for a product. This field impacts the purchase limits for concentrate products.
          default: '3'
        total_mg_cbd:
          type: string
          example: '2'
          description: This field lists the concentrated levels of CBD in a product.
          default: '2'
        uom:
          type: string
          example: GRAMS
          description: Unit of measure used for purchase limits. This value impacts purchase limits for weight based products.
          default: GRAMS
      title: ProductConfigurableFields
      description: This section contains all the configurable fields. It is advisable to request the fresh details form the other API with endpoint called GET/product_fields. this will help to get the latest information on the required fields and the accepted value of the product fields. This information varies per category. The fieldsin this section is sorted alphabetically.
    CreateNewProductRequest:
      type: object
      required:
      - category_type
      - product_configurable_fields
      properties:
        product_id:
          type: string
          example: 185ab868-da5c-4141-84b1-5725d64f7a18
          description: Unique ID associated with each product. This value will not change once a product has been created.
          readOnly: true
        product_status:
          type: string
          example: ACTIVE
          description: This tells the product's current status.
          readOnly: true
        last_updated_at:
          type: string
          example: '2019-06-25T02:43:08.000-07:00'
          description: It tells the time when the product was updated last
          readOnly: true
        sellable_quantity:
          type: integer
          format: int32
          example: 65
          description: It reads in the total of available, reserved and packed & ready quantity of the product irrespective of location or bathes.
          readOnly: true
        category_type:
          type: string
          example: EDIBLE
          description: Is the equivalent to product type in the treez UI.
          default: EDIBLE
        product_configurable_fields:
          $ref: '#/components/schemas/ProductConfigurableFields'
        pricing:
          $ref: '#/components/schemas/Pricing'
        attributes:
          $ref: '#/components/schemas/Attributes'
        product_barcodes:
          type: array
          example:
          - barcode1
          - barcode2
          description: This reads in the barcode specific to the product.
          items:
            type: string
        e_commerce:
          $ref: '#/components/schemas/ECommerce'
      title: Product_Data_Details
    Pricing:
      type: object
      properties:
        price_type:
          type: string
          example: FLAT
          description: Describes whether a product uses tier or flat pricing.
          default: FLAT
        price_sell:
          type: integer
          format: int32
          example: '54.50'
          description: "The amount that the product will be sold for. This field is required if price_type is FLAT. \n Keep the value null if price_type is TIER."
        tier_name:
          type: string
          description: Tier Name assigned to a product. Partners must use an existing tier to get a valid response.
      title: Pricing
      description: This section details out the pricing of the product.
    ECommerce:
      type: object
      properties:
        all_images:
          type: array
          description: It brings in the URL of all the associated images.
          readOnly: true
          items:
            type: string
            example: ''
        primary_image:
          type: string
          example: ''
          description: It brings in the URL of the primary image only.
          readOnly: true
        menu_title:
          type: string
          example: ESPRESSO PRODUCT
          description: When completed this field will be displayed as the primary name of the product over the product_name field.
          default: ESPRESSO PRODUCT
        product_description:
          type: string
          example: Some Product Description
          description: It reads in the product description for the menu purposes.
          default: Some Product Description
        minimum_visible_inventory_level:
          type: integer
          format: int32
          example: 2
          description: Customer facing description that will be displayed in Treez eCommerce.
          readOnly: true
        hide_from_menu:
          type: boolean
          example: true
          description: When set to True this product will be hidden from the Treez eCommerce
          default: true
      title: ECommerce
    Attributes:
      type: object
      properties:
        general:
          type: array
          example:
          - Gen1
          - Gen2
          description: This field records the general attributes associated to a product.
          items:
            type: string
        flavors:
          type: array
          example:
          - Flav1
          - Flav2
          description: This field records the flavor of the product.
          items:
            type: string
        effects:
          type: array
          example:
          - SLEEPY
          - HAPPY
          description: This field records the effects of the product.
          items:
            type: string
        ingredients:
          type: array
          example:
          - BERRY
          - FRUITS
          description: This field records the ingredient of the product.
          items:
            type: string
        internal_tags:
          type: array
          example:
          - TAG 1
          - TAG 2
          description: This field records the internal tags/labels of the product that can be used to search the product. This product is not displayed to customers.
          items:
            type: string
      title: Attributes
  requestBodies:
    CreateNewProductRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateNewProductRequest'
      required: true
x-explorer-enabled: true
x-proxy-enabled: true
x-samples-enabled: true
x-samples-languages:
- curl
- node
- ruby
- javascript
- python