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.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.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.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.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