openapi: 3.2.0 info: title: Leaflink Products API contact: email: support@leaflink.com version: '1.0' description: 'Operations tagged products across 2 of this provider''s published API definitions: leaflink-api-openapi-original.yml, leaflink-marketplace-v2-openapi-original.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.leaflink.com description: LeafLink API production URL. - url: https://staging-api.leaflink.com description: LeafLink API staging URL. - url: https://app.leaflink.com/api/v2 tags: - name: products paths: /products: post: operationId: products_create description: LeafLink API for Marketplace products. tags: - products requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedProduct' description: '' headers: RateLimit-Limit: schema: type: integer description: The requests quota in the time window. RateLimit-Remaining: schema: type: integer description: The remaining requests quota in the current window. RateLimit-Reset: schema: type: integer description: The time remaining in the current window, specified in seconds. RateLimit-Policy: schema: type: string description: The quota policy information. '429': description: Rate Limit Error headers: Retry-After: schema: type: integer description: The time remaining before the rejected request can be tried again, specified in seconds. servers: - url: https://api.leaflink.com description: LeafLink API production URL. - url: https://staging-api.leaflink.com description: LeafLink API staging URL. /products/{id}: put: operationId: products_update description: LeafLink API for Marketplace products. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - products requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProduct' description: '' headers: RateLimit-Limit: schema: type: integer description: The requests quota in the time window. RateLimit-Remaining: schema: type: integer description: The remaining requests quota in the current window. RateLimit-Reset: schema: type: integer description: The time remaining in the current window, specified in seconds. RateLimit-Policy: schema: type: string description: The quota policy information. '429': description: Rate Limit Error headers: Retry-After: schema: type: integer description: The time remaining before the rejected request can be tried again, specified in seconds. patch: operationId: products_partial_update description: LeafLink API for Marketplace products. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - products requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedProductRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProduct' description: '' headers: RateLimit-Limit: schema: type: integer description: The requests quota in the time window. RateLimit-Remaining: schema: type: integer description: The remaining requests quota in the current window. RateLimit-Reset: schema: type: integer description: The time remaining in the current window, specified in seconds. RateLimit-Policy: schema: type: string description: The quota policy information. '429': description: Rate Limit Error headers: Retry-After: schema: type: integer description: The time remaining before the rejected request can be tried again, specified in seconds. delete: operationId: products_destroy description: 'Perform a ''DELETE'' on a product. It will mark the specified product as Archived. Logic is put here as the ModelViewSet destroy function doesn''t use the serializer.' parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - products security: - bearerAuth: [] responses: '204': description: No response body headers: RateLimit-Limit: schema: type: integer description: The requests quota in the time window. RateLimit-Remaining: schema: type: integer description: The remaining requests quota in the current window. RateLimit-Reset: schema: type: integer description: The time remaining in the current window, specified in seconds. RateLimit-Policy: schema: type: string description: The quota policy information. '429': description: Rate Limit Error headers: Retry-After: schema: type: integer description: The time remaining before the rejected request can be tried again, specified in seconds. servers: - url: https://api.leaflink.com description: LeafLink API production URL. - url: https://staging-api.leaflink.com description: LeafLink API staging URL. /products/: parameters: [] get: operationId: products_list summary: List products description: List products for all active companies where the user has the Manage Inventory permission.

Products can also be retrieved by company via /companies/{company_id}/products/
or by parent product via /products/{parent_product_id}/products/ parameters: - name: sku in: query description: Filter by one or more sku, separated by commas. schema: type: string - name: fields_include in: query description: Include only specific fields in the response, separated by commas. schema: type: string - name: fields_exclude in: query description: Exclude specific fields in the response, separated by commas. schema: type: string - name: include_children in: query description: Include additional fields in the response. Available values include `images`, `volume_discounts`, and `strains` schema: type: string - name: modified__lt in: query description: Filter by the modified date, less than required: false schema: type: string - name: modified__lte in: query description: Filter by the modified date, less than or equal to required: false schema: type: string - name: modified__gt in: query description: Filter by the modified on date, greater than required: false schema: type: string - name: modified__gte in: query description: Filter by the modified date, greater than or equal to required: false schema: type: string - name: last_edit__lt in: query description: Filter by last edit date, less than required: false schema: type: string - name: last_edit__lte in: query description: Filter by last edit date, less than or equal to required: false schema: type: string - name: last_edit__gt in: query description: Filter by last edit date, greater than required: false schema: type: string - name: last_edit__gte in: query description: Filter by last edit date, greater than or equal to required: false schema: type: string - name: created_on__lt in: query description: Filter by created on date, less than required: false schema: type: string - name: created_on__lte in: query description: Filter by created on date, less than or equal to required: false schema: type: string - name: created_on__gt in: query description: Filter by created on date, greater than required: false schema: type: string - name: created_on__gte in: query description: Filter by created on date, greater than or equal to required: false schema: type: string - name: id in: query description: Filter by product id required: false schema: type: number - name: name in: query description: Filter by name, case insensitive required: false schema: type: string - name: search in: query description: Filter by a search term required: false schema: type: string - name: display_name in: query description: Filter by display name, case insensitive required: false schema: type: string - name: brand in: query description: Filter by brand. Multiple values separated by commas. required: false schema: type: number - name: company in: query description: Filter by company id. Multiple values separated by commas. required: false schema: type: number - name: has_children in: query description: Filter by whether or not products have children required: false schema: type: string - name: parent in: query description: Filter by parent product id. Multiple values separated by commas. required: false schema: type: number - name: parent__isnull in: query description: Filter by whether or not products are parent products. A null value for parent indicated a parent product. required: false schema: type: string - name: sub_category__isnull in: query description: Filter by whether or not products have sub-categories assigned. Values can be `true` or `false` required: false schema: type: string - name: product_line in: query description: Filter by product line id. Multiple values separated by commas. required: false schema: type: number - name: strains in: query description: Filter by strain id. Values available at the /strains/ endpoint. Multiple values separated by commas. required: false schema: type: number - name: category in: query description: Filter by category id. Values available at the /product-categories/ endpoint. Multiple values separated by commas. required: false schema: type: number - name: sub_category in: query description: Filter by sub_category id. Values available at the /product-subcategories/ endpoint. Multiple values separated by commas. required: false schema: type: number - name: license in: query description: Filter by license id. Values available at the /licenses/ endpoint. Multiple values separated by commas. required: false schema: type: number - name: license__isnull in: query description: Filter by license__isnull required: false schema: type: string - name: license__type in: query description: Filter by license type display name. Values available at /license-types/ endpoint. Multiple values separated by commas. required: false schema: type: number - name: listing_state in: query description: Filter by listing state id. Values available at /listing-states/ endpoint. Multiple values separated by commas. required: false schema: type: string - name: archived in: query description: Filter by whether or not the product is archived required: false schema: type: string - name: buyer in: query description: Filter by id for a specific buyer, view the products available to this buyer and the unique price_schedule_price if applicable required: false schema: type: number - name: s2s_connected in: query description: Filter by s2s_connected required: false schema: type: string - name: company_slug in: query description: Filter by the seller company slug required: false schema: type: string - name: seller_internal_id in: query description: Filter by internal product ID required: false schema: type: string - name: limit in: query description: Number of results to return per page. required: false schema: type: integer - name: offset in: query description: The initial index from which to return the results. required: false schema: type: integer - name: external_id_key in: query description: Filter for orders that match external_ids key:values. Must be used with external_id_values. schema: type: string - name: external_id_values in: query description: Filter for orders that match external_ids key:values. Multiple values separated by a comma. Must be used with external_id_key. schema: type: string responses: '200': description: '' content: application/json: schema: type: object properties: count: type: integer next: type: - string - 'null' format: uri previous: type: - string - 'null' format: uri results: type: array items: $ref: '#/components/schemas/ProductResponse' example: count: 2 next: null previous: null results: - id: 2093 created_on: '2020-02-19T00:36:22.353448-06:00' last_edit: '2020-04-27T07:41:29.797149-06:00' drop_date: null dropped: null name: Swiss Masters Chocolate Bar (Dark) sku: SWI-BAR-DAR-100 description:

Our premium Swiss Masters chocolate bars are bold, rich, and steeped in chocolate tradition. The Swiss Master dark chocolate has 70% dark chocolate paired with 100mg THC.

quantity: '800.0000' reserved_qty: '120.0000' display_name: Swiss Masters Chocolate Bar (Dark) unit_multiplier: 12 retail_price: amount: 18 currency: USD wholesale_price: amount: 108 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null is_medical_line_item: false AVAILABLE_FOR_SAMPLES: true extern_acct_id: null extern_income_acct_id: '' featured: false tagline: null featured_on_deals: false allow_fractional_quantities: false parent: null listing_state: Available display_listing_state: Available inventory_management: 1 unit_of_measure: Unit sell_in_unit_of_measure: Case unit_denomination: id: 1 value: '1.00000' name: One label: '1' category: 7 grow_type: null seller: 3721 seller_internal_id: PROD-001 brand: 49 product_line: 164 manufacturer: 3721 strain_classification: na license: id: 2619 number: 404R-00000 type: Recreational display_type: Adult Use classification: MIPS available_inventory: 680 children_count: 0 strains: [] price_schedule_price: amount: 108 currency: USD image_count: 1 is_ancillary: false s2s_conversion_amount: '1.0000' extern_sts_ids: null strain_classification_display: N/A modified: '2020-06-11T15:53:07.137980-06:00' sub_category: 14 has_deals_eligible_children: false discount_percent: 0 base_units_per_unit: null external_ids: system-name: '1234567890' threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: false - id: 2094 created_on: '2020-02-22T00:36:22.353448-06:00' last_edit: '2020-04-10T07:41:29.797149-06:00' drop_date: null dropped: null name: Great Heights Chocolate Bar (Milk) sku: GRE-BAR-CHO-100 description:

Our Great Heights chocolate bars are delicious. The milk chocolate contains 100mg THC.

quantity: '400.0000' reserved_qty: '90.0000' display_name: Great Heights Chocolate Bar (Milk) unit_multiplier: 12 retail_price: amount: 14 currency: USD wholesale_price: amount: 100 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null is_medical_line_item: false AVAILABLE_FOR_SAMPLES: true extern_acct_id: null extern_income_acct_id: '' featured: false tagline: null featured_on_deals: false allow_fractional_quantities: false parent: null listing_state: Available display_listing_state: Available inventory_management: 1 unit_of_measure: Unit sell_in_unit_of_measure: Case unit_denomination: id: 1 value: '1.00000' name: One label: '1' category: 7 grow_type: null seller: 3721 seller_internal_id: PROD-002 brand: 49 product_line: 164 manufacturer: 3721 strain_classification: na license: id: 2619 number: 404R-00000 type: Recreational display_type: Adult Use classification: MIPS available_inventory: 310 children_count: 0 strains: [] price_schedule_price: amount: 100 currency: USD image_count: 1 is_ancillary: false s2s_conversion_amount: '1.0000' extern_sts_ids: null strain_classification_display: N/A modified: '2020-06-11T15:53:07.137980-06:00' sub_category: 14 has_deals_eligible_children: false discount_percent: 0 base_units_per_unit: null external_ids: {} threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: true product_data_items: [] tags: - products security: - Token: [] post: operationId: products_create summary: Create a product description: Create a new product. requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductCreate' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ProductResponse' tags: - products security: - Token: [] servers: - url: https://app.leaflink.com/api/v2 /products/{id}/: parameters: - name: id in: path description: The id for the product. required: true schema: type: integer get: operationId: products_read summary: Retrieve a product description: Retrieve an individual product. parameters: - name: fields_include in: query description: Include only specific fields in the response, separated by commas. schema: type: string - name: fields_exclude in: query description: Exclude specific fields in the response, separated by commas. schema: type: string - name: include_children in: query description: Include additional fields in the response. Available values include `images`, `volume_discounts`, and `strains` schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProductResponse' tags: - products security: - Token: [] patch: operationId: products_partial_update summary: Update a product description: Update an existing product. requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpdate' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProductUpdateResponse' tags: - products security: - Token: [] delete: operationId: products_delete summary: Archive a product description: Archive a product. responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProductArchiveResponse' tags: - products security: - Token: [] servers: - url: https://app.leaflink.com/api/v2 components: schemas: ListingStateEnum: enum: - Available - Archived - Sample - Backorder - Internal - Unavailable type: string CustomMenuItemRequest: type: object description: A single custom menu (Price Schedule) price assignment for a product. properties: id: type: integer description: Custom Menu ID amount: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ description: Custom price for the product on this custom menu currency: type: string minLength: 1 description: ISO currency code. Defaults to the seller's currency. required: - amount - id UnifiedBrand: type: object properties: id: type: integer readOnly: true name: type: string title: Brand Name description: Name of the Brand maxLength: 400 required: - id - name PatchedUnifiedProductRequest: type: object description: Unified Product serializer. properties: name: type: string minLength: 1 description: Product name description: type: string minLength: 1 description: Product details category_id: type: integer writeOnly: true description: Product category ID for the product listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace unit_multiplier: type: integer description: How many individual units are sold when compared to the assigned unit of measure unit_denomination: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ title: Unit Denomination Value description: The amount of individual products in one sale unit sku: type: - string - 'null' minLength: 1 description: Stock keeping unit for the product maxLength: 255 brand_id: type: integer writeOnly: true description: Brand ID for the product manufacturer_id: type: integer writeOnly: true description: ID of the Company that manufactured the product seller_id: type: integer description: Company who is selling the Product unit_of_measure: type: string minLength: 1 description: Base unit of measure for this product custom_menu: type: array items: $ref: '#/components/schemas/CustomMenuItemRequest' writeOnly: true description: Assign or update custom menu (Price Schedule) prices for this product. Custom menus not included here are left unchanged. UnifiedProductInventory: type: object description: Unified Product inventory serializer properties: total_qty: type: number format: double exclusiveMinimum: -1.0e+95 exclusiveMaximum: 1.0e+95 reserved_qty: type: number format: double readOnly: true required: - reserved_qty - total_qty UnifiedProduct: type: object description: Unified Product serializer. properties: id: type: integer readOnly: true created_date: type: string format: date-time readOnly: true description: Date and time the resource was created modified_date: type: string format: date-time readOnly: true description: Date and time of the last edit name: type: string description: Product name display_name: type: string readOnly: true description: product name that is displayed description: type: string description: Product details category: allOf: - $ref: '#/components/schemas/UnifiedProductCategory' readOnly: true description: Product category for the product listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace unit_multiplier: type: integer description: How many individual units are sold when compared to the assigned unit of measure unit_denomination: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ title: Unit Denomination Value description: The amount of individual products in one sale unit inventory: allOf: - $ref: '#/components/schemas/UnifiedProductInventory' readOnly: true description: Total and reserved inventory for product sku: type: - string - 'null' description: Stock keeping unit for the product maxLength: 255 brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true description: Brand of the product seller_id: type: integer description: Company who is selling the Product external_ids: type: object additionalProperties: {} readOnly: true description: External IDs associated with the product unit_of_measure: type: string description: Base unit of measure for this product required: - brand - category - created_date - description - display_name - external_ids - id - inventory - listing_state - modified_date - name - seller_id - unit_denomination - unit_of_measure - wholesale_price UnifiedProductRequest: type: object description: Unified Product serializer. properties: name: type: string minLength: 1 description: Product name description: type: string minLength: 1 description: Product details category_id: type: integer writeOnly: true description: Product category ID for the product listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace unit_multiplier: type: integer description: How many individual units are sold when compared to the assigned unit of measure unit_denomination: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ title: Unit Denomination Value description: The amount of individual products in one sale unit sku: type: - string - 'null' minLength: 1 description: Stock keeping unit for the product maxLength: 255 brand_id: type: integer writeOnly: true description: Brand ID for the product manufacturer_id: type: integer writeOnly: true description: ID of the Company that manufactured the product seller_id: type: integer description: Company who is selling the Product unit_of_measure: type: string minLength: 1 description: Base unit of measure for this product custom_menu: type: array items: $ref: '#/components/schemas/CustomMenuItemRequest' writeOnly: true description: Assign or update custom menu (Price Schedule) prices for this product. Custom menus not included here are left unchanged. required: - brand_id - category_id - description - listing_state - manufacturer_id - name - seller_id - unit_denomination - unit_of_measure - wholesale_price UnifiedProductCategory: type: object description: Unified Product category serializer properties: id: type: integer readOnly: true name: type: string title: Category description: Name of Category maxLength: 40 required: - id - name ExternalIds: type: object description: Set of key-value pairs for storing external system IDs. Key value can be up to 36 characters long. UnitDenomination: required: - value - name - label type: object properties: id: description: id for the unit denomination. type: integer value: type: string name: type: string label: description: '"1", "1/2", "1/4", "1/8", "3/4", "2", "3 1/2", "7", "14", "6", "28", "5 1/4", "4", "2 1/2", "8", "3 3/4", "1/10", "6/5", "3/2", "2/10", "1/5", "1/3", "1/6", "3/10", or "4/10"' type: string ProductCreate: required: - name - description - retail_price - wholesale_price - sale_price - minimum_order - maximum_order - listing_state - inventory_management - unit_of_measure - unit_denomination - category - sub_category - seller - brand - manufacturer - strain_classification - sku - license type: object properties: drop_date: description: Date and time the product is scheduled to transition to "Available", if applicable. The product must be set to a listing status of "Unavailable" in order to flip it to "Available" on the drop date. type: string format: date-time name: type: string sku: description: A company's unique identifier for a product. Commas are not supported. type: string maxLength: 255 description: description: Populate with product name if no additional description is available in source system. type: string quantity: description: Inventory level. Required if seller is managing inventory type: string unit_multiplier: description: Required if seller is selling in cases (multiples). This is a very common practice for sellers across all product categories. If sold in multiples, the number of units sold per case. If not selling in multiples, set to "1". default: 1 type: integer retail_price: description: Manufacturer's Suggested Retail Price (MSRP). Use "0.00" if no retail price is stored in the source system. required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 wholesale_price: description: Wholesale price displayed to buyers in the LeafLink marketplace. required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 sale_price: description: Sale price displayed to buyers in the LeafLink marketplace. Use "0.00" if no sale price is stored in the source system. required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 minimum_order: description: Minimum units required for an order. Use "0.01" if no minimum order quantity is stored in the source system. type: string maximum_order: description: Maximum units allowed for an order. Use "100000" if no maximum order quantity is stored in the source system. type: string AVAILABLE_FOR_SAMPLES: description: Is this product available for samples? Set to "true" if value is not available in source system. Certain markets like Canada and OH do not allow samples. type: boolean extern_acct_id: description: Id of the product in QuickBooks Online. type: string extern_income_acct_id: description: The id for the QuickBooks Online income account. type: string featured: description: Is the product a featured product? Set to "false" if value is not available in source system. type: boolean tagline: description: One-liner that displayed when the product is featured type: string allow_fractional_quantities: description: Does this product allow fractional quantities to be ordered? Recommended if Flower category product is sold in bulk. type: boolean parent: $ref: '#/components/schemas/ParentProduct' listing_state: description: Set to "Available" to make the product available for selling/buying. "Internal" should be used when a seller does not want a product to be visible to buyers, but may be manually added to orders by the seller. type: string enum: - Available - Archived - Sample - Backorder - Internal - Unavailable display_listing_state: description: The listing state string displayed in the marketplace. type: string inventory_management: description: 'id for the inventory setting [1: "Managed", 2: "Unlimited", 3: "Inherited"] Use "1" to set the inventory of the product to managed. If set to "1", available inventory quantity should be set using "quantity" field.' type: string unit_of_measure: description: If appropriate unit of measure is not available as an option, use "Unit" and enter the number of units per unit in the base_units_per_unit field. type: string enum: - Milligram - Gram - Kilogram - Ounce - Pound - Unit - Liter - Milliliter sell_in_unit_of_measure: description: If selling the product in cases as opposed to individual units, set this field to "Case". Required if seller is selling in cases and unit_multiplier is greater than 1. type: string enum: - Case unit_denomination: description: 'id for the unit denomination [1: "1", 2: "1/2", 3: "1/4", 4: "1/8", 5: "3/4", 6: "2", 7: "3 1/2", 8: "7", 9: "14", 10: "6", 11: "28", 12: "5 1/4", 13: "4", 14: "2 1/2", 15: "8", 16: "3 3/4", 17: "1/10", 18: "6/5", 19: "3/2", 20: "2/10", 21: "1/5", 22: "1/3", 23: "1/6", 24: "3/10", 25: "4/10"]. Set to "1" if appropriate value is not available as an option.' type: integer category: description: Id for the category. See `id` in the product-categories response. Ids may differ per environment. type: integer sub_category: description: Id for the subcategory. See `id` in the product-subcategories response. Ids may differ per environment. type: integer grow_type: description: If a flower product, the id for the type of grow operation. type: integer seller: description: Id for the company listing the product. See `id` in the companies response. type: integer seller_internal_id: description: Internal Product ID type: string brand: description: Id for the brand. See `id` in the brands response. type: integer product_line: description: Id for the product line. See `id` in the product-lines response. Using product lines provides a better experience for buyers to be able to navigate the seller's menu. For the seller, it provides better in platform reporting and analytics. type: integer manufacturer: description: Id for the company that manufactured the product. See `id` in the companies response. Typically set to the same id as the seller field. type: integer strain_classification: description: If not applicable to the product, use `na`. type: string enum: - sativa - indica - hybrid - na - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid license: type: integer description: Id for the license. See `id` in the licenses response. Required for product to appear on menu for buyer visibility and for compliance. Use "N/A" for ancillary products. strains: description: The strains associated with the product. This field is required for products with the `Flower` category. type: array items: description: Id for the strains associated with the product. See `id` in the strains response. type: integer uniqueItems: true extern_sts_ids: description: Id used by the Metrc add on. type: array items: type: string base_units_per_unit: description: Required if using Unit as base unit of measure. If the product `unit_of_measure` is `Unit`, this describes the number of base units in each unit of the product. The base unit is defined by the product category.
`Cartridges = Grams`
`Topicals = Milligrams of Cannabinoids`
`Concentrates = Grams`
`Flower (excluding Seeds and Clones) = Grams`
`Edibles & Ingestibles = Milligrams of Cannabinoids`
`Pre-Rolls = Grams`
`Accessories = N/A` type: string format: decimal external_ids: $ref: '#/components/schemas/ExternalIds' threshold_value: description: When product inventory quantity reaches below this value, take various actions. type: integer threshold_action: description: Action to take when product inventory quantity reaches below a specified value. Available values include `default`, `backorder`, `unavailable`, and `internal`. type: string reverse_threshold_value: description: When product inventory quantity reaches above this value, take various actions. type: integer reverse_threshold_action: description: Action to take when product inventory quantity reaches above a specified value. Available values include `default`, `available`, and `internal`. type: string show_quantity: description: Show inventory quantities to buyers? type: boolean product_data_items: description: Product specifications. type: array items: required: - spec_type type: object properties: spec_type: description: The slug of the product specificaiton type. Available values include `thc`, `thca`, `cbn`, `cbg`, `cbd`, `solvents`, `flowering`, `growth`, `cannabinoids`, `terpenes`, `nugget`, `other`, `yield`, `cbc`, `thcv`, `cbda`, `delta-8-thc`, `total-thc`, `total-cbd`, `cbl`, `delta-9-thc`, `cbga`, `cbdv`. type: string dosage_unit: description: Dosage unit of the specification. Available options are `mg` and `%`. Required only if `decimal_value` is sent. type: string decimal_value: description: Value of the product specification. Required if `text_value` is not sent. type: string format: decimal max_decimal_value: description: If there is a range of values for the specification, the maximum value. type: string format: decimal text_value: description: The text value of the specification. Required if `decimal_value` is not sent. type: string example: name: Swiss Masters Chocolate Bar (Dark) sku: SWI-BAR-DAR-100 description:

Our premium Swiss Masters chocolate bars are bold, rich, and steeped in chocolate tradition. The Swiss Master dark chocolate has 70% dark chocolate paired with 100mg THC.

quantity: '800.0000' display_name: Swiss Masters Chocolate Bar (Dark) unit_multiplier: 12 retail_price: amount: 18 currency: USD wholesale_price: amount: 108 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null listing_state: Available inventory_management: 1 unit_of_measure: Unit unit_denomination: 1 category: 7 seller: 3721 seller_internal_id: PROD-001 brand: 49 manufacturer: 3721 strain_classification: na license: 2619 external_ids: system-name: '1234567890' threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: true ProductArchiveResponse: type: object properties: id: description: Unique id generated by LeafLink. type: integer created_on: description: Date and time the product was created type: string format: date-time last_edit: description: Date and time the product was last edited by a user type: string format: date-time drop_date: description: Date and time the product is scheduled to transition to Available, if applicable. type: string format: date-time dropped: description: Date and time the product transitioned to Available. type: string format: date-time name: type: string sku: type: string maxLength: 255 description: type: string quantity: description: Inventory level type: string reserved_qty: description: Inventory reserved by orders in the `Submitted` or `Accepted` states type: string available_inventory: description: Inventory available for sale (quantity - reserved_qty). type: string display_name: description: If the product is a variety, the parent product name + the product name type: string unit_multiplier: description: If sold in multiples, the number of units sold per case default: 1 type: integer retail_price: description: Manufacturer's Suggested Retail Price (MSRP) required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 wholesale_price: description: Wholesale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 sale_price: description: Sale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 minimum_order: description: Minimum units required for an order type: string maximum_order: description: Maximum units allowed for an order type: string is_medical_line_item: description: Is the product a medical product? type: boolean AVAILABLE_FOR_SAMPLES: description: Is this product available for samples? type: boolean extern_acct_id: description: Id of the product in QuickBooks Online. type: string extern_income_acct_id: description: The id for the QuickBooks Online income account. type: string featured: description: Is the product a featured product? type: boolean tagline: description: One-liner that displayed when the product is featured type: string featured_on_deals: description: Is this product featured on the LeafLink deals page? type: boolean allow_fractional_quantities: description: Does this product allow fractional quantities to be ordered? type: boolean parent: $ref: '#/components/schemas/ParentProduct' listing_state: type: string enum: - Available - Archived - Sample - Backorder - Internal - Unavailable display_listing_state: description: The listing state string displayed in the marketplace. type: string inventory_management: description: 'id for the inventory setting [1: "Managed", 2: "Unlimited", 3: "Inherited"]' type: string unit_of_measure: type: string enum: - Milligram - Gram - Kilogram - Ounce - Pound - Unit - Liter - Milliliter sell_in_unit_of_measure: description: If selling the product in cases as opposed to individual units, set this field to Case. type: string enum: - Case unit_denomination: $ref: '#/components/schemas/UnitDenomination' category: description: Id for the category. See `id` in the product-categories response. type: integer sub_category: description: Id for the subcategory. See `id` in the product-subcategories response. type: integer grow_type: description: If a flower product, the id for the type of grow operation. type: integer seller: description: Id for the company listing the product. See `id` in the companies response. type: integer seller_internal_id: description: Internal Product ID type: string brand: description: Id for the brand. See `id` in the brands response. type: integer product_line: description: Id for the product line. See `id` in the product-lines response. type: integer manufacturer: description: Id for the company that manufactured the product. See `id` in the companies response. Can be the same id as the seller field. type: integer strain_classification: description: If not applicable to the product, use `na`. type: string enum: - sativa - indica - hybrid - na - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid license: $ref: '#/components/schemas/ComplianceLicense' children_count: description: Number of varieties of this product type: string strains: description: The strains associated with the product. This field is required for products with the `Flower` category. type: array items: description: Id for the strains associated with the product. See `id` in the strains response. type: integer uniqueItems: true price_schedule_price: description: If using the buyer query parameter, the special price set for that customer with the price schedule feature. Otherwise, same as wholesale price. type: string image_count: description: The number of product images type: string is_ancillary: description: Is the product an ancillary product? type: boolean s2s_conversion_amount: type: string format: decimal description: Conversion value used by the Metrc add on. extern_sts_ids: description: Id used by the Metrc add on. type: array items: type: string strain_classification_display: title: Strain classification display type: string readOnly: true modified: title: Modified description: Date and time the product data was last modified. type: string has_deals_eligible_children: description: Does the product have varieties that are eligible for LeafLink deals?' type: string discount_percent: description: Discount applied to a product, calculated by comparing the wholesale and sale price. type: integer base_units_per_unit: description: If the product `unit_of_measure` is `Unit`, this describes the number of base units in each unit of the product. The base unit is defined by the product category.
`Cartridges = Grams`
`Topicals = Milligrams of Cannabinoids`
`Concentrates = Grams`
`Flower (excluding Seeds and Clones) = Grams`
`Edibles & Ingestibles = Milligrams of Cannabinoids`
`Pre-Rolls = Grams`
`Accessories = N/A` type: string format: decimal external_ids: $ref: '#/components/schemas/ExternalIds' threshold_value: description: When product inventory quantity reaches below this value, take various actions. type: integer threshold_action: description: Action to take when product inventory quantity reaches below a specified value. Available values include `default`, `backorder`, `unavailable`, and `internal`. type: string reverse_threshold_value: description: When product inventory quantity reaches above this value, take various actions. type: integer reverse_threshold_action: description: Action to take when product inventory quantity reaches above a specified value. Available values include `default`, `available`, and `internal`. type: string show_quantity: description: Show inventory quantities to buyers? type: boolean example: id: 2093 created_on: '2020-02-19T00:36:22.353448-06:00' last_edit: '2020-04-27T07:41:29.797149-06:00' drop_date: null dropped: null name: Swiss Masters Chocolate Bar (Dark) sku: SWI-BAR-DAR-100 description:

Our premium Swiss Masters chocolate bars are bold, rich, and steeped in chocolate tradition. The Swiss Master dark chocolate has 70% dark chocolate paired with 100mg THC.

quantity: '800.0000' reserved_qty: '120.0000' display_name: Swiss Masters Chocolate Bar (Dark) unit_multiplier: 12 retail_price: amount: 18 currency: USD wholesale_price: amount: 108 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null is_medical_line_item: false AVAILABLE_FOR_SAMPLES: true extern_acct_id: null extern_income_acct_id: '' featured: false tagline: null featured_on_deals: false allow_fractional_quantities: false parent: null listing_state: Archived display_listing_state: Archived inventory_management: 1 unit_of_measure: Unit sell_in_unit_of_measure: Case unit_denomination: id: 1 value: '1.00000' name: One label: '1' category: 7 grow_type: null seller: 3721 seller_internal_id: PROD-001 brand: 49 product_line: 164 manufacturer: 3721 strain_classification: na license: id: 2619 number: 404R-00000 type: Recreational display_type: Adult Use classification: MIPS available_inventory: 680 children_count: 0 strains: [] price_schedule_price: amount: 108 currency: USD image_count: 1 is_ancillary: false s2s_conversion_amount: '1.0000' extern_sts_ids: null strain_classification_display: N/A modified: '2020-06-11T15:53:07.137980-06:00' sub_category: 14 has_deals_eligible_children: false discount_percent: 0 base_units_per_unit: null external_ids: system-name: '1234567890' threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: true ProductUpdateResponse: type: object properties: id: description: Unique id generated by LeafLink. type: integer created_on: description: Date and time the product was created type: string format: date-time last_edit: description: Date and time the product was last edited by a user type: string format: date-time drop_date: description: Date and time the product is scheduled to transition to Available, if applicable. type: string format: date-time dropped: description: Date and time the product transitioned to Available. type: string format: date-time name: type: string sku: type: string maxLength: 255 description: type: string quantity: description: Inventory level type: string reserved_qty: description: Inventory reserved by orders in the `Submitted` or `Accepted` states type: string available_inventory: description: Inventory available for sale (quantity - reserved_qty). type: string display_name: description: If the product is a variety, the parent product name + the product name type: string unit_multiplier: description: If sold in multiples, the number of units sold per case default: 1 type: integer retail_price: description: Manufacturer's Suggested Retail Price (MSRP) required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 wholesale_price: description: Wholesale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 sale_price: description: Sale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 minimum_order: description: Minimum units required for an order type: string maximum_order: description: Maximum units allowed for an order type: string is_medical_line_item: description: Is the product a medical product? type: boolean AVAILABLE_FOR_SAMPLES: description: Is this product available for samples? type: boolean extern_acct_id: description: Id of the product in QuickBooks Online. type: string extern_income_acct_id: description: The id for the QuickBooks Online income account. type: string featured: description: Is the product a featured product? type: boolean tagline: description: One-liner that displayed when the product is featured type: string featured_on_deals: description: Is this product featured on the LeafLink deals page? type: boolean allow_fractional_quantities: description: Does this product allow fractional quantities to be ordered? type: boolean parent: $ref: '#/components/schemas/ParentProduct' listing_state: type: string enum: - Available - Archived - Sample - Backorder - Internal - Unavailable display_listing_state: description: The listing state string displayed in the marketplace. type: string inventory_management: description: 'id for the inventory setting [1: "Managed", 2: "Unlimited", 3: "Inherited"]' type: string unit_of_measure: type: string enum: - Milligram - Gram - Kilogram - Ounce - Pound - Unit - Liter - Milliliter sell_in_unit_of_measure: description: If selling the product in cases as opposed to individual units, set this field to Case. type: string enum: - Case unit_denomination: $ref: '#/components/schemas/UnitDenomination' category: description: Id for the category. See `id` in the product-categories response. type: integer sub_category: description: Id for the subcategory. See `id` in the product-subcategories response. type: integer grow_type: description: If a flower product, the id for the type of grow operation. type: integer seller: description: Id for the company listing the product. See `id` in the companies response. type: integer seller_internal_id: description: Internal Product ID type: string brand: description: Id for the brand. See `id` in the brands response. type: integer product_line: description: Id for the product line. See `id` in the product-lines response. type: integer manufacturer: description: Id for the company that manufactured the product. See `id` in the companies response. Can be the same id as the seller field. type: integer strain_classification: description: If not applicable to the product, use `na`. type: string enum: - sativa - indica - hybrid - na - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid license: $ref: '#/components/schemas/ComplianceLicense' children_count: description: Number of varieties of this product type: string strains: description: The strains associated with the product. This field is required for products with the `Flower` category. type: array items: description: Id for the strains associated with the product. See `id` in the strains response. type: integer uniqueItems: true price_schedule_price: description: If using the buyer query parameter, the special price set for that customer with the price schedule feature. Otherwise, same as wholesale price. type: string image_count: description: The number of product images type: string is_ancillary: description: Is the product an ancillary product? type: boolean s2s_conversion_amount: type: string format: decimal description: Conversion value used by the Metrc add on. extern_sts_ids: description: Id used by the Metrc add on. type: array items: type: string strain_classification_display: title: Strain classification display type: string readOnly: true modified: title: Modified description: Date and time the product data was last modified. type: string has_deals_eligible_children: description: Does the product have varieties that are eligible for LeafLink deals?' type: string discount_percent: description: Discount applied to a product, calculated by comparing the wholesale and sale price. type: integer base_units_per_unit: description: If the product `unit_of_measure` is `Unit`, this describes the number of base units in each unit of the product. The base unit is defined by the product category.
`Cartridges = Grams`
`Topicals = Milligrams of Cannabinoids`
`Concentrates = Grams`
`Flower (excluding Seeds and Clones) = Grams`
`Edibles & Ingestibles = Milligrams of Cannabinoids`
`Pre-Rolls = Grams`
`Accessories = N/A` type: string format: decimal external_ids: $ref: '#/components/schemas/ExternalIds' threshold_value: description: When product inventory quantity reaches below this value, take various actions. type: integer threshold_action: description: Action to take when product inventory quantity reaches below a specified value. Available values include `default`, `backorder`, `unavailable`, and `internal`. type: string reverse_threshold_value: description: When product inventory quantity reaches above this value, take various actions. type: integer reverse_threshold_action: description: Action to take when product inventory quantity reaches above a specified value. Available values include `default`, `available`, and `internal`. type: string show_quantity: description: Show inventory quantities to buyers? type: boolean example: id: 2093 created_on: '2020-02-19T00:36:22.353448-06:00' last_edit: '2020-04-27T07:41:29.797149-06:00' drop_date: null dropped: null name: Swiss Masters Chocolate Bar (Dark) sku: SWI-BAR-DAR-100 description:

Our premium Swiss Masters chocolate bars are bold, rich, and steeped in chocolate tradition. The Swiss Master dark chocolate has 70% dark chocolate paired with 100mg THC.

quantity: '2000.0000' reserved_qty: '120.0000' display_name: Swiss Masters Chocolate Bar (Dark) unit_multiplier: 12 retail_price: amount: 18 currency: USD wholesale_price: amount: 108 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null is_medical_line_item: false AVAILABLE_FOR_SAMPLES: true extern_acct_id: null extern_income_acct_id: '' featured: false tagline: null featured_on_deals: false allow_fractional_quantities: false parent: null listing_state: Available display_listing_state: Available inventory_management: 1 unit_of_measure: Unit sell_in_unit_of_measure: Case unit_denomination: id: 1 value: '1.00000' name: One label: '1' category: 7 grow_type: null seller: 3721 seller_internal_id: PROD-001 brand: 49 product_line: 164 manufacturer: 3721 strain_classification: na license: id: 2619 number: 404R-00000 type: Recreational display_type: Adult Use classification: MIPS available_inventory: 1880 children_count: 0 strains: [] price_schedule_price: amount: 108 currency: USD image_count: 1 is_ancillary: false s2s_conversion_amount: '1.0000' extern_sts_ids: null strain_classification_display: N/A modified: '2020-06-11T15:53:07.137980-06:00' sub_category: 14 has_deals_eligible_children: false discount_percent: 0 base_units_per_unit: null external_ids: system-name: '1234567890' threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: true ComplianceLicense: required: - number type: object properties: id: title: Id description: id for license type: integer readOnly: true number: title: License Number description: License Number type: string maxLength: 100 minLength: 1 type: title: Type description: Type type: string readOnly: true display_type: title: Display type description: Display type type: string readOnly: true classification: title: Classification description: Classification type: string readOnly: true ParentProduct: title: Parent description: Parent product to which this product belongs. Required if creating a variety (child product) of a parent product. Varieties are useful when selling a single product in various sizes (i.e. as eighths, grams, and half ounces). required: - id type: object properties: id: title: Id description: id of the product type: integer ProductUpdate: type: object properties: drop_date: description: Date and time the product is scheduled to transition to Available, if applicable. type: string format: date-time name: type: string sku: type: string maxLength: 255 description: type: string quantity: description: Inventory level type: string available_inventory: description: Inventory available for sale (quantity - reserved_qty). type: string unit_multiplier: description: If sold in multiples, the number of units sold per case default: 1 type: integer retail_price: description: Manufacturer's Suggested Retail Price (MSRP) required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 wholesale_price: description: Wholesale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 sale_price: description: Sale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 minimum_order: description: Minimum units required for an order type: string maximum_order: description: Maximum units allowed for an order type: string AVAILABLE_FOR_SAMPLES: description: Is this product available for samples? type: boolean extern_acct_id: description: Id of the product in QuickBooks Online. type: string extern_income_acct_id: description: The id for the QuickBooks Online income account. type: string featured: description: Is the product a featured product? type: boolean tagline: description: One-liner that displayed when the product is featured type: string allow_fractional_quantities: description: Does this product allow fractional quantities to be ordered? type: boolean parent: $ref: '#/components/schemas/ParentProduct' listing_state: type: string enum: - Available - Archived - Sample - Backorder - Internal - Unavailable display_listing_state: description: The listing state string displayed in the marketplace. type: string inventory_management: description: 'id for the inventory setting [1: "Managed", 2: "Unlimited", 3: "Inherited"]' type: string unit_of_measure: type: string enum: - Milligram - Gram - Kilogram - Ounce - Pound - Unit - Liter - Milliliter sell_in_unit_of_measure: description: If selling the product in cases as opposed to individual units, set this field to Case. type: string enum: - Case unit_denomination: description: 'id for the unit denomination [1: "1", 2: "1/2", 3: "1/4", 4: "1/8", 5: "3/4", 6: "2", 7: "3 1/2", 8: "7", 9: "14", 10: "6", 11: "28", 12: "5 1/4", 13: "4", 14: "2 1/2", 15: "8", 16: "3 3/4", 17: "1/10", 18: "6/5", 19: "3/2", 20: "2/10", 21: "1/5", 22: "1/3", 23: "1/6", 24: "3/10", 25: "4/10"]' type: integer category: description: Id for the category. See `id` in the product-categories response. type: integer sub_category: description: Id for the subcategory. See `id` in the product-subcategories response. type: integer grow_type: description: If a flower product, the id for the type of grow operation. type: integer seller: description: Id for the company listing the product. See `id` in the companies response. type: integer seller_internal_id: description: Internal Product ID type: string brand: description: Id for the brand. See `id` in the brands response. type: integer product_line: description: Id for the product line. See `id` in the product-lines response. type: integer manufacturer: description: Id for the company that manufactured the product. See `id` in the companies response. Can be the same id as the seller field. type: integer strain_classification: description: If not applicable to the product, use `na`. type: string enum: - sativa - indica - hybrid - na - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid license: $ref: '#/components/schemas/ComplianceLicense' strains: description: The strains associated with the product. This field is required for products with the `Flower` category. type: array items: description: Id for the strains associated with the product. See `id` in the strains response. type: integer uniqueItems: true extern_sts_ids: description: Id used by the Metrc add on. type: array items: type: string base_units_per_unit: description: If the product `unit_of_measure` is `Unit`, this describes the number of base units in each unit of the product. The base unit is defined by the product category.
`Cartridges = Grams`
`Topicals = Milligrams of Cannabinoids`
`Concentrates = Grams`
`Flower (excluding Seeds and Clones) = Grams`
`Edibles & Ingestibles = Milligrams of Cannabinoids`
`Pre-Rolls = Grams`
`Accessories = N/A` type: string format: decimal external_ids: $ref: '#/components/schemas/ExternalIds' threshold_value: description: When product inventory quantity reaches below this value, take various actions. type: integer threshold_action: description: Action to take when product inventory quantity reaches below a specified value. Available values include `default`, `backorder`, `unavailable`, and `internal`. type: string reverse_threshold_value: description: When product inventory quantity reaches above this value, take various actions. type: integer reverse_threshold_action: description: Action to take when product inventory quantity reaches above a specified value. Available values include `default`, `available`, and `internal`. type: string show_quantity: description: Show inventory quantities to buyers? type: boolean product_data_items: description: Product specifications. The list in the request will replace any existing product data items. type: array items: required: - spec_type type: object properties: spec_type: description: The slug of the product specificaiton type. Available values include `thc`, `thca`, `cbn`, `cbg`, `cbd`, `solvents`, `flowering`, `growth`, `cannabinoids`, `terpenes`, `nugget`, `other`, `yield`, `cbc`, `thcv`, `cbda`, `delta-8-thc`, `total-thc`, `total-cbd`, `cbl`, `delta-9-thc`, `cbga`, `cbdv`. type: string dosage_unit: description: Dosage unit of the specification. Available options are `mg` and `%`. Required only if `decimal_value` is sent. type: string decimal_value: description: Value of the product specification. Required if `text_value` is not sent. type: string format: decimal max_decimal_value: description: If there is a range of values for the specification, the maximum value. type: string format: decimal text_value: description: The text value of the specification. Required if `decimal_value` is not sent. type: string example: quantity: 2000 ProductResponse: type: object properties: id: description: Unique id generated by LeafLink. type: integer created_on: description: Date and time the product was created type: string format: date-time last_edit: description: Date and time the product was last edited by a user type: string format: date-time drop_date: description: Date and time the product is scheduled to transition to Available, if applicable. type: string format: date-time dropped: description: Date and time the product transitioned to Available. type: string format: date-time name: type: string sku: type: string maxLength: 255 description: type: string quantity: description: Inventory level type: string reserved_qty: description: Inventory reserved by orders in the `Submitted` or `Accepted` states type: string available_inventory: description: Inventory available for sale (quantity - reserved_qty). type: string display_name: description: If the product is a variety, the parent product name + the product name type: string unit_multiplier: description: If sold in multiples, the number of units sold per case default: 1 type: integer retail_price: description: Manufacturer's Suggested Retail Price (MSRP) required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 wholesale_price: description: Wholesale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 sale_price: description: Sale price displayed to buyers in the LeafLink marketplace required: - amount - currency type: object properties: amount: title: Amount type: string format: decimal currency: title: Currency type: string minLength: 1 minimum_order: description: Minimum units required for an order type: string maximum_order: description: Maximum units allowed for an order type: string is_medical_line_item: description: Is the product a medical product? type: boolean AVAILABLE_FOR_SAMPLES: description: Is this product available for samples? type: boolean extern_acct_id: description: Id of the product in QuickBooks Online. type: string extern_income_acct_id: description: The id for the QuickBooks Online income account. type: string featured: description: Is the product a featured product? type: boolean tagline: description: One-liner that displayed when the product is featured type: string featured_on_deals: description: Is this product featured on the LeafLink deals page? type: boolean allow_fractional_quantities: description: Does this product allow fractional quantities to be ordered? type: boolean parent: $ref: '#/components/schemas/ParentProduct' listing_state: type: string enum: - Available - Archived - Sample - Backorder - Internal - Unavailable display_listing_state: description: The listing state string displayed in the marketplace. type: string inventory_management: description: 'id for the inventory setting [1: "Managed", 2: "Unlimited", 3: "Inherited"]' type: string unit_of_measure: type: string enum: - Milligram - Gram - Kilogram - Ounce - Pound - Unit - Liter - Milliliter sell_in_unit_of_measure: description: If selling the product in cases as opposed to individual units, set this field to Case. type: string enum: - Case unit_denomination: $ref: '#/components/schemas/UnitDenomination' category: description: Id for the category. See `id` in the product-categories response. type: integer sub_category: description: Id for the subcategory. See `id` in the product-subcategories response. type: integer grow_type: description: If a flower product, the id for the type of grow operation. type: integer seller: description: Id for the company listing the product. See `id` in the companies response. type: integer seller_internal_id: description: Internal Product ID type: string brand: description: Id for the brand. See `id` in the brands response. type: integer product_line: description: Id for the product line. See `id` in the product-lines response. type: integer manufacturer: description: Id for the company that manufactured the product. See `id` in the companies response. Can be the same id as the seller field. type: integer strain_classification: description: If not applicable to the product, use `na`. type: string enum: - sativa - indica - hybrid - na - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid license: $ref: '#/components/schemas/ComplianceLicense' children_count: description: Number of varieties of this product type: string strains: description: The strains associated with the product. This field is required for products with the `Flower` category. type: array items: description: Id for the strains associated with the product. See `id` in the strains response. type: integer uniqueItems: true price_schedule_price: description: If using the buyer query parameter, the special price set for that customer with the price schedule feature. Otherwise, same as wholesale price. type: string image_count: description: The number of product images type: string is_ancillary: description: Is the product an ancillary product? type: boolean s2s_conversion_amount: type: string format: decimal description: Conversion value used by the Metrc add on. extern_sts_ids: description: Id used by the Metrc add on. type: array items: type: string strain_classification_display: title: Strain classification display type: string readOnly: true modified: title: Modified description: Date and time the product data was last modified. type: string has_deals_eligible_children: description: Does the product have varieties that are eligible for LeafLink deals?' type: string discount_percent: description: Discount applied to a product, calculated by comparing the wholesale and sale price. type: integer base_units_per_unit: description: If the product `unit_of_measure` is `Unit`, this describes the number of base units in each unit of the product. The base unit is defined by the product category.
`Cartridges = Grams`
`Topicals = Milligrams of Cannabinoids`
`Concentrates = Grams`
`Flower (excluding Seeds and Clones) = Grams`
`Edibles & Ingestibles = Milligrams of Cannabinoids`
`Pre-Rolls = Grams`
`Accessories = N/A` type: string format: decimal external_ids: $ref: '#/components/schemas/ExternalIds' threshold_value: description: When product inventory quantity reaches below this value, take various actions. type: integer threshold_action: description: Action to take when product inventory quantity reaches below a specified value. Available values include `default`, `backorder`, `unavailable`,and `internal`. type: string reverse_threshold_value: description: When product inventory quantity reaches above this value, take various actions. type: integer reverse_threshold_action: description: Action to take when product inventory quantity reaches above a specified value. Available values include `default`, `available`, and `internal`. type: string show_quantity: description: Show inventory quantities to buyers? type: boolean product_data_items: description: Product specifications. type: array items: required: - spec_type type: object properties: spec_type: description: The slug of the product specificaiton type. Available values include `thc`, `thca`, `cbn`, `cbg`, `cbd`, `solvents`, `flowering`, `growth`, `cannabinoids`, `terpenes`, `nugget`, `other`, `yield`, `cbc`, `thcv`, `cbda`, `delta-8-thc`, `total-thc`, `total-cbd`, `cbl`, `delta-9-thc`, `cbga`, `cbdv`. type: string dosage_unit: description: Dosage unit of the specification. Available options are `mg` and `%`. Null when `text_value` is populated. type: string decimal_value: description: Value of the product specification. Null if `text_value` is populated. type: string format: decimal max_decimal_value: description: If there is a range of values for the specification, the maximum value. type: string format: decimal text_value: description: The text value of the specification. Null if `decimal_value` is populated. type: string example: id: 2093 created_on: '2020-02-19T00:36:22.353448-06:00' last_edit: '2020-04-27T07:41:29.797149-06:00' drop_date: null dropped: null name: Swiss Masters Chocolate Bar (Dark) sku: SWI-BAR-DAR-100 description:

Our premium Swiss Masters chocolate bars are bold, rich, and steeped in chocolate tradition. The Swiss Master dark chocolate has 70% dark chocolate paired with 100mg THC.

quantity: '800.0000' reserved_qty: '120.0000' display_name: Swiss Masters Chocolate Bar (Dark) unit_multiplier: 12 retail_price: amount: 18 currency: USD wholesale_price: amount: 108 currency: USD sale_price: amount: 0 currency: USD minimum_order: '1.0000' maximum_order: null is_medical_line_item: false AVAILABLE_FOR_SAMPLES: true extern_acct_id: null extern_income_acct_id: '' featured: false tagline: null featured_on_deals: false allow_fractional_quantities: false parent: null listing_state: Available display_listing_state: Available inventory_management: 1 unit_of_measure: Unit sell_in_unit_of_measure: Case unit_denomination: id: 1 value: '1.00000' name: One label: '1' category: 7 grow_type: null seller: 3721 seller_internal_id: PROD-001 brand: 49 product_line: 164 manufacturer: 3721 strain_classification: na license: id: 2619 number: 404R-00000 type: Recreational display_type: Adult Use classification: MIPS available_inventory: 680 children_count: 0 strains: [] price_schedule_price: amount: 108 currency: USD image_count: 1 is_ancillary: false s2s_conversion_amount: '1.0000' extern_sts_ids: null strain_classification_display: N/A modified: '2020-06-11T15:53:07.137980-06:00' sub_category: 14 has_deals_eligible_children: false discount_percent: 0 base_units_per_unit: null external_ids: system-name: '1234567890' threshold_value: 0 threshold_action: unavailable reverse_threshold_value: 1 reverse_threshold_action: available show_quantity: true product_data_items: - spec_type: thc dosage_unit: '%' decimal_value: '20.0' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'Authentication is done via access tokens (JWTs). See the [API authentication doc](/api/getting-started/#authentication) for more information. ' tokenAuth: type: apiKey in: header name: Authorization description: Token-based authentication with required prefix "Token" Token: description: 'You must authenticate your requests by including your API key in each request header as described below. Requests should include a header named `Authorization`, with the value `App {MY_API_KEY}`. Note the single space in the header value. Example: `Authorization: App MY_API_KEY` [Learn more about generating your key](https://developer.leaflink.com/brands/api/getting-started/) **Legacy API keys:** If you are not using an Application API key, your authorization header should include the string `Token` and access will be scoped to all companies under which the user exists as a companystaff. Example: `Authorization: Token MY_API_KEY` ' in: header name: Authorization type: apiKey x-refined-from: - leaflink-api-openapi-original.yml - leaflink-marketplace-v2-openapi-original.yml