openapi: 3.0.3 info: title: LeafLink API version: '2022-10-31' description: 'This reference specification outlines all the available HTTP operations of the LeafLink API. See the [LeafLink Developer Hub](/api) for guides, how-to, and general information of the API. ' termsOfService: https://www.leaflink.com/terms-and-conditions/ contact: email: support@leaflink.com servers: - url: https://api.leaflink.com description: LeafLink API production URL. - url: https://staging-api.leaflink.com description: LeafLink API staging URL. paths: /companies/{marketplace_slug}/stats_cashback: get: operationId: companies_stats_cashback_retrieve description: Returns cashback statistics for a company. summary: Provide potential cashback earnings for the given marketplace company slug. parameters: - in: path name: marketplace_slug schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Company responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompanyCashbackStats' 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. /invoice_recorded_payments: post: operationId: invoice_recorded_payments_create description: Create an invoice's recorded payment. summary: Create an Invoice Recorded Payment tags: - Invoice Recorded Payment requestBody: content: application/json: schema: $ref: '#/components/schemas/RecordInvoicePaymentRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RecordInvoicePayment' 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. /managed_companies: get: operationId: managed_companies_list description: Managed Companies collection view. Companies you are the admin of parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - managed_companies responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompanyList' 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. /managed_companies/{id}: get: operationId: managed_companies_retrieve description: Managed Companies collection view. Companies you are the admin of parameters: - in: path name: id schema: type: string format: uuid required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - managed_companies responses: '200': content: application/json: schema: $ref: '#/components/schemas/Company' 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. /managed_companies/{id}/licenses: get: operationId: managed_companies_licenses_list description: Licenses for a company parameters: - in: path name: id schema: type: string required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - managed_companies responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLicenseList' 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. /managed_companies/{marketplace_slug}: get: operationId: managed_companies_retrieve_2 description: Managed Companies collection view. Companies you are the admin of parameters: - in: path name: marketplace_slug schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - managed_companies responses: '200': content: application/json: schema: $ref: '#/components/schemas/Company' 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. /payment_contracts: get: operationId: payment_contracts_list description: List multiple payment contracts. summary: List Payment Contracts parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Payment Contract responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedContractList' 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. post: operationId: payment_contracts_create description: Create a payment contract. summary: Create a Payment Contract tags: - Payment Contract requestBody: content: application/json: schema: $ref: '#/components/schemas/ContractRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Contract' 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. /payment_contracts/{contract_id}: get: operationId: payment_contracts_retrieve description: Get a single payment contracts. summary: Get a Payment Contract parameters: - in: path name: contract_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Payment Contract responses: '200': content: application/json: schema: $ref: '#/components/schemas/Contract' 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. put: operationId: payment_contracts_update description: Replace a single payment contracts. summary: Replace a Payment Contract parameters: - in: path name: contract_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Payment Contract requestBody: content: application/json: schema: $ref: '#/components/schemas/ContractRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Contract' 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: payment_contracts_partial_update description: Update a single payment contract. summary: Update a Payment Contract parameters: - in: path name: contract_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Payment Contract requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedContractRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Contract' 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: payment_contracts_destroy description: Delete a single payment contract. summary: Delete a Payment Contract parameters: - in: path name: contract_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Payment Contract 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. /batches: get: operationId: batches_list description: List batches for the company. Optional query param include=meta adds a top-level meta object with company-wide batch counts (not affected by list filters or sorting). Naming is inspired by JSON:API optional expansions; meta is not a related resource include. summary: List Batches parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: include schema: type: string description: Comma-separated optional expansions. Use 'meta' to include aggregate counts for the company (active, inactive, low-inventory placeholder). - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: product_type schema: type: string description: Filter by product category name. - in: query name: search schema: type: string description: 'When unassigned=false or omitted: case-insensitive match on batch number, SKU, supplier, linked product name, or linked product strain name. When unassigned=true: forwarded to traceability package search (METRC: facility name, license number, label suffix). Alias query param: q.' - in: query name: status schema: type: string description: Filter by batch status (e.g. active, inactive). - in: query name: unassigned schema: type: boolean description: Filter by unassigned or assigned batches. - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batch security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BatchListPaginatedResponse' description: Paginated list of batches; meta present when include=meta. 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. '400': description: 'Invalid list parameters (e.g. page size over 100 when unassigned=true), failure loading unassigned candidates from traceability, or a domain error from the batch layer surfaced as 400. Response body: {"detail": string}.' 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. post: operationId: batches_create description: Create from batch number only; trace-backed or minimal. summary: Create a Batch parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batch requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchCreateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedBatch' description: The batch created 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. '400': description: 'Create/update validation or persistence error (not duplicate number or missing batch). Body: {"detail": string}.' 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. '409': description: 'A batch with this number already exists for the company. Body: {"detail": string} (includes the conflicting number).' 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. /batches/{id}: get: operationId: batches_retrieve description: Get a single batch by ID. summary: Retrieve a Batch parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of the batch. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batch security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedBatch' description: The batch 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. '400': description: 'Create/update validation or persistence error (not duplicate number or missing batch). Body: {"detail": string}.' 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. '404': description: 'No batch exists for this id in the current company. Body: {"detail": string} (default message is generic).' 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. put: operationId: batches_update description: Update an existing batch (PUT, full replace of editable fields). summary: Update a Batch parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of the batch. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batch requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchUpdateRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedBatch' description: The batch updated 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. '400': description: 'Create/update validation or persistence error (not duplicate number or missing batch). Body: {"detail": string}.' 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. '404': description: 'No batch exists for this id in the current company. Body: {"detail": string} (default message is generic).' 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: batches_partial_update description: LeafLink Unified API for Batches. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this batch v2. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batches requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedBatchRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedBatch' 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: batches_destroy description: LeafLink Unified API for Batches. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this batch v2. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - batches 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. /brand_owner/customer_groups: get: operationId: brand_owner_customer_groups_list description: List Customer Groups for a brand owner company. summary: List Brand Owner Customer Groups parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: string enum: - active - archived description: Overall status of the company customer group. - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedCustomerGroupList' 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. /brand_owner/customer_groups/{id}: get: operationId: brand_owner_customer_groups_retrieve description: Get a single Customer Group for a brand owner company. summary: Get Brand Owner Customer Group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company customer group. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerGroup' 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. /brands: get: operationId: brands_list description: List multiple Brands. summary: List Brands parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Brand security: - bearerAuth: [] responses: '200': description: A list of brands associated with the user's companies 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. /brands/{id}: get: operationId: brands_retrieve description: Get a single Brand. summary: Get Brand parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this brand. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Brand security: - bearerAuth: [] responses: '200': description: A serialized brand 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. /brands/recommended: get: operationId: brands_recommended_list description: List recommended recently purchased Brands. summary: List Recently Purchased Brands parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Brand security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedRecommendedBrandList' description: A list of recommended, recently purchased, brands 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. /brands/recommended/{id}: get: operationId: brands_recommended_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this brand. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - brands security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedRecommendedBrand' 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. /buyers/product_images: get: operationId: buyers_product_images_list description: List multiple Product Images. summary: List Product Images parameters: - in: query name: company schema: type: integer - in: query name: company_slug schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Buyer Product Image security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedBuyerProductImageList' 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. /buyers/product_images/{id}: get: operationId: buyers_product_images_retrieve description: Get a single Product Image. summary: Get Product Image parameters: - in: path name: id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Buyer Product Image security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedBuyerProductImage' 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. /chats: get: operationId: chats_list description: List all discussions parameters: - in: query name: from_date schema: type: string description: Filter discussions from this date (YYYY-MM-DD) - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: search schema: type: string description: Search term for filtering messages content - in: query name: status schema: type: string description: Filter by discussion status ('in_progress' or 'completed') - in: query name: to_date schema: type: string description: Filter discussions until this date (YYYY-MM-DD) - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedChatsList' 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. post: operationId: chats_create description: Create a new discussion with the first message. tags: - chats requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedChatsRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedChats' 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. /chats/{id}: get: operationId: chats_retrieve description: LeafLink API for Marketplace discussions. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedChats' 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. put: operationId: chats_update description: LeafLink API for Marketplace discussions. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedChatsRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedChats' 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: chats_partial_update description: LeafLink API for Marketplace discussions. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedChatsRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedChats' 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: chats_destroy description: LeafLink API for Marketplace discussions. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats 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. /chats/{id}/messages: get: operationId: chats_messages_list description: Get or post messages for a discussion parameters: - in: query name: from_date schema: type: string format: date - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: string - in: query name: to_date schema: type: string format: date - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Messages security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedMessageList' 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. '201': content: application/json: schema: $ref: '#/components/schemas/Message' 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. '400': 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. '404': 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. post: operationId: chats_messages_create description: Get or post messages for a discussion parameters: - in: query name: from_date schema: type: string format: date - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: string - in: query name: to_date schema: type: string format: date - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Messages requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedMessageList' 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. '201': content: application/json: schema: $ref: '#/components/schemas/Message' 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. '400': 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. '404': 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. /chats/{id}/messages/{message_id}/read: patch: operationId: chats_messages_read_partial_update description: Mark a specific message as read parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this chat. required: true - in: path name: message_id schema: type: integer description: A unique integer value identifying this message. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - chats requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedMessageReadRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedChats' 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. /chats/bulk_update: patch: operationId: chats_bulk_update_partial_update description: 'Takes a list of chat IDs and updates their status to the given status. Status must be one of: in_progress, completed' summary: Bulk update chat status tags: - chats requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedBulkChatUpdateRequest' security: - bearerAuth: [] responses: '200': 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. /company_messages/find_seller: get: operationId: company_messages_find_seller_list description: Unified API Buyer Notification Settings. parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: search schema: type: string description: Search term for filtering companies by name - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - company_messages security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedMessagingFindSellerList' 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. /company_messages/find_seller/{id}: get: operationId: company_messages_find_seller_retrieve description: Unified API Buyer Notification Settings. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - company_messages security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedMessagingFindSeller' 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. /compliance/license_types: get: operationId: compliance_license_types_list description: Ignore type because the ViewSet class is not typed and the UnifiedApiReadOnlyModelViewSet is. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: is_buyer_license schema: type: boolean description: Return buyer license types - in: query name: is_seller_license schema: type: boolean description: Return seller license types - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: used_by_company schema: type: boolean description: Only return license types that are used by the provide company, otherwise return all for the company's state - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - compliance security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLicenseTypeInternalResponseList' 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. /compliance/license_types/{id}: get: operationId: compliance_license_types_retrieve description: Ignore type because the ViewSet class is not typed and the UnifiedApiReadOnlyModelViewSet is. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this license type. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - compliance security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LicenseTypeInternalResponse' 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. /compliance/licenses: get: operationId: compliance_licenses_list description: Unified API to list company licenses parameters: - in: query name: company_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - compliance security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompanyLicenseList' 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. post: operationId: compliance_licenses_create description: Create new licenses from a list of licenses directly from a seed-to-sale vendor. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - compliance requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/LicenseCreateUpdateRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LicensesCreateUpdateResponse' 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. /compliance/licenses/{id}: get: operationId: compliance_licenses_retrieve description: Unified API to list company licenses parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this license. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - compliance security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedLicenseCreateUpdateRequest' 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. /contacts: get: operationId: contacts_list description: List multiple Contacts. summary: List Contacts parameters: - in: query name: company_slug schema: type: string - in: query name: created_date schema: type: string format: date-time - in: query name: created_on__gt schema: type: string format: date-time - in: query name: created_on__gte schema: type: string format: date-time - in: query name: created_on__lt schema: type: string format: date-time - in: query name: created_on__lte schema: type: string format: date-time - in: query name: delete schema: type: string format: date-time - in: query name: email schema: type: string format: email - in: query name: email__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: email__startswith schema: type: string - in: query name: first_name schema: type: string - in: query name: first_name__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: first_name__startswith schema: type: string - in: query name: id schema: type: integer - in: query name: last_name schema: type: string - in: query name: last_name__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: last_name__startswith schema: type: string - in: query name: modified__gt schema: type: string format: date-time - in: query name: modified__gte schema: type: string format: date-time - in: query name: modified__lt schema: type: string format: date-time - in: query name: modified__lte schema: type: string format: date-time - in: query name: modified_date schema: type: string format: date-time - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: owner schema: type: integer - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Contact security: - bearerAuth: [] responses: '200': description: A list of serialized contacts 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. post: operationId: contacts_create description: LeafLink API for Marketplace contacts. tags: - contacts requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedContactRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedContact' 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. /contacts/{id}: get: operationId: contacts_retrieve description: Get a single Contact. summary: Get Contact parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this contact. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Contact security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedContact' 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. put: operationId: contacts_update description: LeafLink API for Marketplace contacts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this contact. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - contacts requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedContactRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedContact' 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: contacts_partial_update description: LeafLink API for Marketplace contacts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this contact. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - contacts requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedContactRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedContact' 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: contacts_destroy description: Perform a 'DELETE' on a contact. It will mark the specified contact as Deleted. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this contact. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - contacts 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. /content/brands/listing: get: operationId: content_brands_listing_list description: List brands and sponsorships for the Shop Brands page. summary: Shop Brands parameters: - in: query name: ancillary_type schema: type: string enum: - all - preferred - in: query name: badge schema: type: array items: type: string description: Filter by badge code explode: true style: form - in: query name: category schema: type: array items: type: string description: Filter by category slug (multiple values supported) - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: has_ordered_from schema: type: boolean description: Filter by brands that were ordered from previously - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: payment_method schema: type: array items: type: string enum: - direct_pay - flex_pay - payment_on_sell_through explode: true style: form - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Brand security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedBrandListingContentList' 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. /content/sponsored: get: operationId: content_sponsored_retrieve description: General purpose Sponsorship Content summary: Sponsorships parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: placement schema: type: array items: type: string enum: - buyer-dash-hero-1 - buyer-dash-hero-2 - buyer-dash-hero-3 - buyer-dash-hero-4 - buyer-dash-hero-5 - buyer-dash-hero-6 - buyer-dash-hero-7 - buyer-dash-hero-8 - buyer-dashboard-hero-banner-1 - buyer-dashboard-hero-banner-2 - buyer-dashboard-hero-banner-3 - buyer-dashboard-hero-banner-4 - buyer-dashboard-hero-banner-5 - buyer-dashboard-hero-banner-6 - buyer-dashboard-hero-banner-7 - buyer-dashboard-hero-banner-8 - deals-page-1 - deals-page-2 - deals-page-3 - deals-page-4 - discovery-left - discovery-right - order-submit-1 - order-submit-2 - order-submit-3 - order-submit-4 - product-spotlight-carousel - recommended-brands-recently-purchased - recommended-products-cart - recommended-products-order - recommended-products-pdm-alternative - recommended-products-pdp-alternative - recommended-products-shop-brands - recommended-products-shop-discover-products - recommended-products-shop-products - recommended-products-top-purchased - seller-dash-hero-1 - seller-dash-hero-2 - seller-dash-hero-3 - seller-dash-hero-4 - seller-dash-hero-5 - seller-dash-hero-6 - seller-dash-hero-7 - seller-dash-hero-8 - shop-brands-featured-brand - shop-brands-featured-brand-2 - shop-brands-featured-brand-3 - shop-brands-featured-brand-4 - shop-brands-featured-brand-5 - shop-brands-sidebar-3 - shop-brands-sidebar-4 - shop-brands-sidebar-bottom - shop-brands-sidebar-top - shop-brands-skyscraper-1 - shop-brands-skyscraper-2 - shop-brands-skyscraper-3 - shop-brands-skyscraper-4 - shop-products-1 - shop-products-2 - shop-products-3 - shop-products-4 - shop-products-5 description: The ID of an ad location (can be repeated) required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Dashboard security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SponsorshipsContent' 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. /customer_groups: get: operationId: customer_groups_list description: Unified API for Customer Group. summary: List Customer Groups parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: string enum: - active - archived description: Overall status of the company customer group. - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedCustomerGroupList' 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. post: operationId: customer_groups_create description: Unified API for Customer Group. summary: Create Customer Group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerGroupRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerGroup' 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. /customer_groups/{id}: get: operationId: customer_groups_retrieve description: Get a single Customer Group. summary: Get Customer Group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company customer group. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerGroup' 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: customer_groups_partial_update description: Unified API for Customer Group. summary: Update Customer Group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company customer group. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedCustomerGroupRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerGroup' 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: customer_groups_destroy description: Unified API for Customer Group. summary: Delete Customer Group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company customer group. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer Group 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. /customer_statuses: get: operationId: customer_statuses_list description: List multiple Company Customer Status. summary: List Company Customer Status parameters: - in: query name: company_slug schema: type: string - in: query name: description schema: type: string - in: query name: hex_color schema: type: string - in: query name: id schema: type: integer - in: query name: is_stock schema: type: boolean - in: query name: order schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: owner schema: type: integer - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: state schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer security: - bearerAuth: [] responses: '200': description: A list of serialized Company Customer Status 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. post: operationId: customer_statuses_create description: LeafLink API for Marketplace company customer status. tags: - customer_statuses requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedCompanyCustomerStatusRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedCompanyCustomerStatus' 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. /customer_statuses/{id}: get: operationId: customer_statuses_retrieve description: Get a single Company Customer Status. summary: Get Company Customer Status parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer status. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer security: - bearerAuth: [] responses: '200': description: A serialized Company Customer Status 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. put: operationId: customer_statuses_update description: LeafLink API for Marketplace company customer status. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer status. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customer_statuses requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedCompanyCustomerStatusRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCompanyCustomerStatus' 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: customer_statuses_partial_update description: LeafLink API for Marketplace company customer status. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer status. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customer_statuses requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedCompanyCustomerStatusRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCompanyCustomerStatus' 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: customer_statuses_destroy description: LeafLink API for Marketplace company customer status. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer status. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customer_statuses 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. /customers: get: operationId: customers_list description: List multiple Customers. summary: List Customers parameters: - in: query name: address schema: type: string - in: query name: address__in schema: type: string - in: query name: address__startswith schema: type: string - in: query name: archived schema: type: boolean - in: query name: brand schema: type: string - in: query name: brand__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: brand__startswith schema: type: string - in: query name: business_identifier schema: type: string - in: query name: business_identifier__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: business_identifier__startswith schema: type: string - in: query name: business_license_name schema: type: string - in: query name: business_license_name__in schema: type: string - in: query name: business_license_name__startswith schema: type: string - in: query name: company_slug schema: type: string - in: query name: created_on__gt schema: type: string format: date-time - in: query name: created_on__gte schema: type: string format: date-time - in: query name: created_on__lt schema: type: string format: date-time - in: query name: created_on__lte schema: type: string format: date-time - in: query name: dba schema: type: string - in: query name: dba__in schema: type: string - in: query name: dba__startswith schema: type: string - in: query name: delinquent schema: type: boolean - in: query name: discount_percent__gt schema: type: number - in: query name: discount_percent__gte schema: type: number - in: query name: discount_percent__lt schema: type: number - in: query name: discount_percent__lte schema: type: number - in: query name: ein schema: type: string - in: query name: ein__in schema: type: string - in: query name: ein__startswith schema: type: string - in: query name: email schema: type: string - in: query name: email__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: email__startswith schema: type: string - in: query name: ext_acct_id schema: type: string - in: query name: ext_acct_id__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: ext_acct_id__isnull schema: type: boolean - in: query name: ext_acct_id__startswith schema: type: string - in: query name: external_id schema: type: string - in: query name: external_id__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: external_id__startswith schema: type: string - in: query name: external_id_key schema: type: string description: Filter by external ID key (integration system name) - in: query name: external_id_unmapped schema: type: boolean - in: query name: external_id_values schema: type: string - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: id__in schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: is_archived schema: type: boolean - in: query name: leaflink_source schema: type: boolean - in: query name: license_inactive schema: type: boolean - in: query name: license_number schema: type: string - in: query name: license_type schema: type: string - in: query name: modified__gt schema: type: string format: date-time - in: query name: modified__gte schema: type: string format: date-time - in: query name: modified__lt schema: type: string format: date-time - in: query name: modified__lte schema: type: string format: date-time - in: query name: name schema: type: string - in: query name: name__in schema: type: string - in: query name: name__startswith schema: type: string - in: query name: next_contact_date__gt schema: type: string format: date - in: query name: next_contact_date__gte schema: type: string format: date - in: query name: next_contact_date__lt schema: type: string format: date - in: query name: next_contact_date__lte schema: type: string format: date - in: query name: nickname schema: type: string - in: query name: nickname__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: nickname__startswith schema: type: string - in: query name: old_license_number schema: type: string - in: query name: old_license_number__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: old_license_number__startswith schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: owner schema: type: integer - in: query name: owner__slug schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: partner schema: type: integer - in: query name: payment_term schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: phone schema: type: string - in: query name: phone__in schema: type: string - in: query name: phone__startswith schema: type: string - in: query name: price_schedule schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: search required: false in: query description: A search term. schema: type: string - in: query name: service_zone schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: state schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: status schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: tier schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: website schema: type: string - in: query name: website__in schema: type: string - in: query name: website__startswith schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer security: - bearerAuth: [] responses: '200': description: A list of serialized customers 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. post: operationId: customers_create description: LeafLink API for Marketplace customers. tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomer' 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. /customers/{id}: get: operationId: customers_retrieve description: Get a single Customer. summary: Get Customer parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Customer security: - bearerAuth: [] responses: '200': description: A serialized customer 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. put: operationId: customers_update description: LeafLink API for Marketplace customers. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomerRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomer' 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: customers_partial_update description: LeafLink API for Marketplace customers. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedCustomerRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomer' 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: customers_destroy description: For delete request parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers 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. /customers/{id}/corporate_address: post: operationId: customers_corporate_address_create description: Action route for interfacing with the corporate address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedAddressRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedAddress' 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: customers_corporate_address_partial_update description: Action route for interfacing with the corporate address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedAddressRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedAddress' 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: customers_corporate_address_destroy description: Action route for interfacing with the corporate address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers 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. /customers/{id}/delivery_address: post: operationId: customers_delivery_address_create description: Action route for interfacing with the delivery address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedAddressRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedAddress' 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: customers_delivery_address_partial_update description: Action route for interfacing with the delivery address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedAddressRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedAddress' 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: customers_delivery_address_destroy description: Action route for interfacing with the delivery address parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers 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. /customers/active_entries: get: operationId: customers_active_entries_list description: List multiple Company Active Entries. summary: List Company Active Entries parameters: - in: query name: author schema: type: integer - in: query name: author_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: brand schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: brand_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: company schema: type: integer - in: query name: company_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: company_slug schema: type: string - in: query name: contact schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: contact_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: created_on__gt schema: type: string format: date-time - in: query name: created_on__gte schema: type: string format: date-time - in: query name: created_on__lt schema: type: string format: date-time - in: query name: created_on__lte schema: type: string format: date-time - in: query name: customer schema: type: integer - in: query name: customer_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: date__gt schema: type: string format: date-time - in: query name: date__gte schema: type: string format: date-time - in: query name: date__lt schema: type: string format: date-time - in: query name: date__lte schema: type: string format: date-time - in: query name: delete schema: type: boolean - in: query name: entry schema: type: string - in: query name: entry__in schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: entry__startswith schema: type: string - in: query name: id schema: type: integer - in: query name: is_deleted schema: type: boolean - in: query name: modified__gt schema: type: string format: date-time - in: query name: modified__gte schema: type: string format: date-time - in: query name: modified__lt schema: type: string format: date-time - in: query name: modified__lte schema: type: string format: date-time - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: owner schema: type: integer - in: query name: owner_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: staff schema: type: integer - in: query name: staff_id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: type schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - ActiveEntry security: - bearerAuth: [] responses: '200': description: A list of serialized active entries 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. /customers/active_entries/{id}: get: operationId: customers_active_entries_retrieve description: Get a single Company Active Entry. summary: Get Active Entry parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company activity entry. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - ActiveEntry security: - bearerAuth: [] responses: '200': description: A serialized active entry 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: customers_active_entries_destroy description: Delete an Active Entry for a company parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company activity entry. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - customers 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. /dashboard/product_spotlight: get: operationId: dashboard_product_spotlight_list description: List new brands, products with deals, and sponsored products on the dashboard. summary: Featured Products parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFeaturedProductList' 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. /deliveries: get: operationId: deliveries_list description: Unified API product categories. parameters: - in: query name: buyer schema: type: string - in: query name: delivery_date schema: type: string format: date - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: order_invoice_number schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: pickup_date schema: type: string format: date - in: query name: requested_date schema: type: string format: date - name: search required: false in: query description: A search term. schema: type: string - in: query name: sort_by schema: type: array items: type: string enum: - -created_on - -display_delivery_date - -requested_pickup_date - created_on - display_delivery_date - requested_pickup_date description: Ordering explode: false style: form - in: query name: status schema: type: array items: type: string title: Status of L3Order enum: - assigned - created - delivered - planned - shipped - uploaded explode: true style: form - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - deliveries security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedL3OrderList' 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. post: operationId: deliveries_create description: Unified API product categories. tags: - deliveries requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedL3OrderRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedL3Order' 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. /deliveries/{id}: get: operationId: deliveries_retrieve description: Get a single Transport Order. summary: Get Transport Order parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this l3 order. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedL3Order' 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. /distribution-zones: get: operationId: distribution_zones_list description: List all Distribution Zones for a seller. summary: Distribution Zones defined by the seller parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - distribution-zones security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedDistributionZoneList' description: A list of Distribution Zones 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. post: operationId: distribution_zones_create description: Create a new Distribution Zone. summary: Create a Distribution Zone parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - distribution-zones requestBody: content: application/json: schema: $ref: '#/components/schemas/DistributionZoneCreateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/DistributionZone' description: The Distribution Zone created 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. /distribution-zones/{id}: get: operationId: distribution_zones_retrieve description: Retrieve a single Distribution Zone by ID. summary: Get a Distribution Zone parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the Distribution Zone. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - distribution-zones security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/DistributionZone' description: The Distribution Zone 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: distribution_zones_partial_update description: Update an existing Distribution Zone. summary: Update a Distribution Zone parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the Distribution Zone. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - distribution-zones requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedDistributionZoneUpdateRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/DistributionZone' description: The Distribution Zone updated 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: distribution_zones_destroy description: Delete an existing Distribution Zone. summary: Delete a Distribution Zone parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the Distribution Zone. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - distribution-zones 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. /express_menus: get: operationId: express_menus_list description: List multiple ExpressProductMenus. summary: List Express Product Menus parameters: - in: query name: brand schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: price_schedule schema: type: integer - in: query name: products schema: type: string description: Set to 'false' to avoid an unnecessary query for product IDs - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product security: - bearerAuth: [] responses: '200': description: A list of serialized express product menus 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. post: operationId: express_menus_create description: LeafLink API for Marketplace Express Product Menus. tags: - express_menus requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenuRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenu' 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. /express_menus/{id}: get: operationId: express_menus_retrieve description: LeafLink API for Marketplace Express Product Menus. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this express product menu. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - express_menus security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenu' 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. put: operationId: express_menus_update description: LeafLink API for Marketplace Express Product Menus. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this express product menu. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - express_menus requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenuRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenu' 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: express_menus_partial_update description: LeafLink API for Marketplace Express Product Menus. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this express product menu. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - express_menus requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedExpressProductMenuRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedExpressProductMenu' 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: express_menus_destroy description: LeafLink API for Marketplace Express Product Menus. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this express product menu. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - express_menus 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. /facilities: get: operationId: facilities_list description: List facilities for a company. summary: List Facilities parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - facilities security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFacilityList' description: A list of facilities. 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. post: operationId: facilities_create description: Create a new facility. summary: Create a Facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - facilities requestBody: content: application/json: schema: $ref: '#/components/schemas/FacilityCreateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Facility' description: The facility created. 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. /facilities/{id}: get: operationId: facilities_retrieve description: Retrieve a facility by ID. summary: Get a Facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the facility. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - facilities security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Facility' description: The facility. 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: facilities_partial_update description: Patch fields on an existing facility. summary: Patch a Facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the facility. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - facilities requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedFacilityPatchRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Facility' description: The updated facility. 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: facilities_destroy description: Archive an existing facility. summary: Archive a Facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: path name: pk schema: type: integer description: ID of the facility. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - facilities 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. /inventory-v2/debug/celery/tasks/{task_id}: get: operationId: inventory_v2_debug_celery_tasks_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. parameters: - in: path name: task_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/commands/{command_id}: get: operationId: inventory_v2_debug_commands_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. parameters: - in: path name: command_id schema: type: integer required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/compare: get: operationId: inventory_v2_debug_compare_retrieve description: GET mirror of ``compare-inventory``; shares its logic verbatim. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v1/inventory-item-audit-logs: get: operationId: inventory_v2_debug_v1_inventory_item_audit_logs_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v1/inventory-items: get: operationId: inventory_v2_debug_v1_inventory_items_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v1/ordered-products: get: operationId: inventory_v2_debug_v1_ordered_products_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v1/product-audit-logs: get: operationId: inventory_v2_debug_v1_product_audit_logs_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v2/allocations: get: operationId: inventory_v2_debug_v2_allocations_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v2/commands: get: operationId: inventory_v2_debug_v2_commands_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v2/events: get: operationId: inventory_v2_debug_v2_events_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v2/measurements: get: operationId: inventory_v2_debug_v2_measurements_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory-v2/debug/v2/reservations: get: operationId: inventory_v2_debug_v2_reservations_retrieve description: Read-only drift-debugging endpoints. Dev/staging/local only. tags: - inventory-v2 security: - bearerAuth: [] responses: '200': 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. /inventory/buyers/{buyer_id}/allocations: get: operationId: inventory_buyers_allocations_list description: Return all inventory allocations associated with the given buyer. summary: List allocations for a buyer parameters: - in: path name: buyer_id schema: type: integer description: The buyer ID to retrieve allocations for required: true - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Allocation' description: List of allocation items 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. /inventory/commands/{id}/status: get: operationId: inventory_commands_status_retrieve description: Return the execution status of a previously submitted inventory command. summary: Get command status parameters: - in: path name: id schema: type: integer required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-command security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CommandStatusResponse' description: Command status (Pending | Success | Failed) 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. '404': description: Command not found 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. /inventory/commands/archive: post: operationId: inventory_commands_archive_create description: Queue an archive command (remove from active circulation). Returns 202 with command_id. summary: Submit archive command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/ArchiveRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/compare-inventory: post: operationId: inventory_commands_compare_inventory_create description: 'POST /inventory/commands/compare-inventory Staff-only endpoint for drift investigation. Compares V1 vs V2 inventory state for a given scope. At least one of seller_id, product_id, facility_id, or batch_id is required. Read-only — writes no events. Seller requests default to summary mode and return a seller-level accuracy verdict plus all drifted product summaries. Diagnostic mode returns the legacy JSON array, restricted to scopes that have drifted (V1 vs V2 delta exceeds DRIFT_THRESHOLD on on_hand or reserved). Each entry carries a ``known_issues`` list naming recognised V1 bugs that explain the drift. Pass ``ignore_known_issues=true`` to exclude entries that match any known issue. Pass ``ignore_product_ids=[...]`` to exclude specific products from the scan.' tags: - inventory security: - bearerAuth: [] responses: '200': 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. /inventory/commands/destroy: post: operationId: inventory_commands_destroy_create description: Queue a destroy command (remove inventory). Returns 202 with command_id. summary: Submit destroy command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/DestroyRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/fulfillment: post: operationId: inventory_commands_fulfillment_create description: Queue a fulfillment command (ship inventory for an order). Returns 202 with command_id. summary: Submit fulfillment command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/FulfillmentRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/hold: post: operationId: inventory_commands_hold_create description: Queue a hold command (place inventory on hold). Returns 202 with command_id. summary: Submit hold command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/HoldRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/initialize-history: post: operationId: inventory_commands_initialize_history_create description: 'POST /inventory/commands/initialize-history Staff-only endpoint to trigger proactive V2 item history initialization for a seller''s entire product catalog. Body: {"seller_id": }' tags: - inventory security: - bearerAuth: [] responses: '200': 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. /inventory/commands/initialize-product-streams: post: operationId: inventory_commands_initialize_product_streams_create description: 'POST /inventory/commands/initialize-product-streams Initialize all inventory streams for a product. View fetches Django data via _get_legacy_streams_for_product and passes to command service.' tags: - inventory security: - bearerAuth: [] responses: '200': 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. /inventory/commands/initialize-streams-for-seller: post: operationId: inventory_commands_initialize_streams_for_seller_create description: 'POST /inventory/commands/initialize-streams Staff-only endpoint to trigger proactive V2 stream initialization for a seller''s entire product catalog. Dispatches a background Celery task on the low-priority initialization queue. Body: {"seller_id": }' tags: - inventory security: - bearerAuth: [] responses: '200': 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. /inventory/commands/putaway: post: operationId: inventory_commands_putaway_create description: Queue a putaway command (add inventory to a facility). Returns 202 with command_id for status polling. summary: Submit putaway command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/PutawayRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/rebuild-projections: post: operationId: inventory_commands_rebuild_projections_create description: Look up event streams matching the supplied seller_ids, product_ids, facility_ids, and/or batch_ids filters and queue an update_projection_task for each (stream × registered projection). summary: Rebuild projections for matching streams tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/RebuildProjectionsRequestRequest' security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/RebuildProjectionsResponse' description: Streams resolved and projection-update tasks queued 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. '400': description: Validation error 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. /inventory/commands/reconcile: post: operationId: inventory_commands_reconcile_create description: Queue a reconcile command (set inventory to a quantity). Returns 202 with command_id. summary: Submit reconcile command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/ReconcileRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/transfer: post: operationId: inventory_commands_transfer_create description: Queue a transfer command (move inventory between items). Returns 202 with command_id. summary: Submit transfer command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/unarchive: post: operationId: inventory_commands_unarchive_create description: Queue an unarchive command (return to active circulation). Returns 202 with command_id. summary: Submit unarchive command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/UnarchiveRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/unfulfillment: post: operationId: inventory_commands_unfulfillment_create description: Queue an unfulfillment command (reverse shipment). Returns 202 with command_id. summary: Submit unfulfillment command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/UnfulfillmentRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/unhold: post: operationId: inventory_commands_unhold_create description: Queue an unhold command (release from hold). Returns 202 with command_id. summary: Submit unhold command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/UnholdRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/commands/unreserve: post: operationId: inventory_commands_unreserve_create description: Queue an unreserve command (release reserved inventory). Returns 202 with command_id. summary: Submit unreserve command tags: - inventory-command requestBody: content: application/json: schema: $ref: '#/components/schemas/UnreserveRequestRequest' required: true security: - bearerAuth: [] responses: '202': content: application/json: schema: $ref: '#/components/schemas/CommandAcceptedResponse' description: Command accepted 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. '400': description: Validation error 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. /inventory/groups/{group_id}/allocations: get: operationId: inventory_groups_allocations_list description: Return all inventory allocations associated with the given customer group. summary: List allocations for a group parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: group_id schema: type: integer description: The customer group ID to retrieve allocations for required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Allocation' description: List of allocation items 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. /inventory/measurements/by-batch: get: operationId: inventory_measurements_by_batch_retrieve description: Inventory measurements grouped by batch. Optional filter by batch_id. summary: List measurements by batch parameters: - in: query name: batch_id schema: type: string description: Comma-separated batch IDs to filter by - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/BatchMeasurementResponse' description: List of measurements per batch 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. /inventory/measurements/by-facility: get: operationId: inventory_measurements_by_facility_retrieve description: Inventory measurements grouped by facility. Optional filter by facility_id. summary: List measurements by facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: facility_id schema: type: string description: Comma-separated facility IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/FacilityMeasurementResponse' description: List of measurements per facility 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. /inventory/measurements/by-facility-and-batch: get: operationId: inventory_measurements_by_facility_and_batch_retrieve description: Inventory measurements grouped by facility and batch. Optional filter by facility_id, batch_id. summary: List measurements by facility and batch parameters: - in: query name: batch_id schema: type: string description: Comma-separated batch IDs to filter by - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: facility_id schema: type: string description: Comma-separated facility IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/FacilityBatchMeasurementResponse' description: List of measurements per facility and batch 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. /inventory/measurements/by-product: get: operationId: inventory_measurements_by_product_retrieve description: Inventory measurements grouped by product. Optional filter by product_id. summary: List measurements by product parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: product_id schema: type: string description: Comma-separated product IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductMeasurementResponse' description: List of measurements per product 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. /inventory/measurements/by-product-and-batch: get: operationId: inventory_measurements_by_product_and_batch_retrieve description: Inventory measurements grouped by product and batch. Optional filter by product_id, batch_id. summary: List measurements by product and batch parameters: - in: query name: batch_id schema: type: string description: Comma-separated batch IDs to filter by - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: product_id schema: type: string description: Comma-separated product IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductBatchMeasurementResponse' description: List of measurements per product and batch 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. /inventory/measurements/by-product-and-facility: get: operationId: inventory_measurements_by_product_and_facility_retrieve description: Inventory measurements grouped by product and facility. Optional filter by product_id, facility_id. summary: List measurements by product and facility parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: facility_id schema: type: string description: Comma-separated facility IDs to filter by - in: query name: product_id schema: type: string description: Comma-separated product IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductFacilityMeasurementResponse' description: List of measurements per product and facility 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. /inventory/measurements/by-product-facility-and-batch: get: operationId: inventory_measurements_by_product_facility_and_batch_retrieve description: Inventory measurements grouped by product, facility, and batch. Optional filter by product_id, facility_id, batch_id. summary: List measurements by product, facility, and batch parameters: - in: query name: batch_id schema: type: string description: Comma-separated batch IDs to filter by - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: facility_id schema: type: string description: Comma-separated facility IDs to filter by - in: query name: product_id schema: type: string description: Comma-separated product IDs to filter by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductFacilityBatchMeasurementResponse' description: List of measurements per product, facility, and batch 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. /inventory/orders/{order_id}/reservations: get: operationId: inventory_orders_reservations_list description: Return all inventory reservations associated with the given order. summary: List reservations for an order parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: order_id schema: type: integer description: The order ID to retrieve reservations for required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - inventory-query security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Reservation' description: List of reservation items 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. /notification/preferences: get: operationId: notification_preferences_list description: List Notification Preferences Groups. summary: List Notification Preferences Groups parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Notification Preferences security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedNotificationPreferencesList' 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. /notification/preferences/{id}: get: operationId: notification_preferences_retrieve description: Unified Notification Preferences view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification preference group. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - notification security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/NotificationPreferences' 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. /packages: get: operationId: packages_list description: Lists Traceability packages (requires source_production_batch_numbers); lab PDFs are client-side. summary: List Packages parameters: - in: query name: assigned schema: type: boolean description: 'Filter by assignment: true=assigned only, false=unassigned only; omit=all.' - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: source_production_batch_numbers schema: type: string description: METRC production batch number(s), comma-separated. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - package security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedPackageList' description: A list of packages 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. '500': description: 'Traceability package list failed (non-success HTTP or error payload). Body: {"detail": string}.' 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. post: operationId: packages_create description: Bulk assign packages to products via traceability service. summary: Assign Packages to Products parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - package requestBody: content: application/json: schema: $ref: '#/components/schemas/PackageAssignRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PackageAssignResponse' description: Assigned packages (same format as list) 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. '400': description: 'Assignment payload invalid (serializer), or traceability bulk update failed. Body: {"detail": string}.' 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. /payments: get: operationId: payments_list description: ViewSet for handling requests related to order payments. parameters: - in: query name: created_date_from schema: type: string format: date - in: query name: created_date_to schema: type: string format: date - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - payments security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedOrderPaymentList' 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. post: operationId: payments_create description: ViewSet for handling requests related to order payments. tags: - payments requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderPaymentRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderPayment' 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. /payments/{id}: get: operationId: payments_retrieve description: ViewSet for handling requests related to order payments. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this order payment. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - payments security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderPayment' 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. /poms/orders/approval: post: operationId: poms_orders_approval_create description: 'Handle the ''APPROVAL'' endpoint for a POMS Order. See the CartOrderApprovalAction choices for supported actions that can be performed.' tags: - poms requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedPomsOrderApprovalRequestDataRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedPomsOrderApprovalRequestData' 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. /pricing/custom-menus: get: operationId: pricing_custom_menus_list description: List multiple Custom Menus. summary: List Custom Menus parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Pricing security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedCustomMenuList' 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. /pricing/custom-menus/{id}: get: operationId: pricing_custom_menus_retrieve description: Get a single Custom Menu. summary: Get Custom Menu parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this price schedule. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Pricing security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCustomMenu' 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. /product-assigned-to-buyer: get: operationId: product_assigned_to_buyer_list description: List all product assignments for a seller (optionally filtered by product_ids). summary: List Product Assignments by Seller parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: product_ids schema: type: string description: Comma-separated list of product IDs to filter by - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - product-assigned-to-buyer security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductAssignmentWithItemsList' description: A list of product assignments 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. put: operationId: product_assigned_to_buyer_update description: "Update product assignments for multiple products.\n Creates, updates, or deletes buyer and group assignments.\n\ \ " summary: Update Product Assignments parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - product-assigned-to-buyer requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductAssignmentUpdateRequest' required: true security: - bearerAuth: [] responses: '200': description: Product assignments updated successfully 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. /product-assignments: get: operationId: product_assignments_list description: "List all products for a seller with their product assignments (buyer/group assignments).\n Products\ \ without assignments will have empty assignments arrays.\n " summary: List Products with Product Assignments parameters: - in: query name: archived schema: type: boolean description: Filter by archived status - in: query name: brand schema: type: string description: Filter by brand ID(s). Comma-separated values supported. - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: include_children schema: type: string description: Comma-separated list of child fields to include (e.g., 'images', 'volume_discounts', 'strains') - in: query name: listing_state schema: type: string description: Filter by listing state (e.g., 'Internal', 'Available'). Comma-separated values supported. - in: query name: ordering schema: type: string description: Ordering field (e.g., 'display_name', '-display_name') - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: product_line schema: type: string description: Filter by product line ID(s). Comma-separated values supported. - in: query name: search schema: type: string description: Search term to filter the list by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - product-assignment-products security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductAssignmentProductList' description: A list of products with product assignments 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. /product_categories: get: operationId: product_categories_list description: List multiple product categories. summary: List Product Categories parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Category security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedProductCategoryList' 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. /product_categories/{id}: get: operationId: product_categories_retrieve description: Get a single product category. summary: Get a Product Category parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product category. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Category security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductCategory' 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. /product_dosage_units: get: operationId: product_dosage_units_list description: List all Product Dosage Units summary: List Product Dosage Units parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Dosage Unit security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductDosageUnitList' 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. /product_dosage_units/{id}: get: operationId: product_dosage_units_retrieve description: Get a Product Dosage Unit by ID summary: Get a Product Dosage Unit parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product dosage unit. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Dosage Unit security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductDosageUnit' 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. /product_grow_operation_types: get: operationId: product_grow_operation_types_list description: List Grow Operation Types. summary: List Grow Operation Types parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Grow Operation Type security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Choice' 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. /product_images: get: operationId: product_images_list description: List multiple Product Images. summary: List Product Images parameters: - in: query name: company schema: type: integer - in: query name: company_slug schema: type: string - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: product schema: type: integer - in: query name: product__id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Image security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductImageList' 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. post: operationId: product_images_create description: LeafLink API for Marketplace product images. summary: Create Product Image tags: - Product Image requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UnifiedProductImageRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UnifiedProductImageRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductImage' 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. /product_images/{id}: get: operationId: product_images_retrieve description: Get a single Product Image. summary: Get Product Image parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product image. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Image security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductImage' 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: product_images_destroy description: LeafLink API for Marketplace product images. summary: Delete Product Image parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product image. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Image security: - tokenAuth: [] - 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. /product_images/{id}/clone: post: operationId: product_images_clone_create description: Clone a Product Image via the CloneProductImageService service. summary: Clone Product Image parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product image. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Image requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UnifiedCloneProductImageRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UnifiedCloneProductImageRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedCloneProductImage' 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. /product_images/bulk_create: post: operationId: product_images_bulk_create_create description: LeafLink API for Marketplace product images. summary: Bulk Create Product Images tags: - Product Image requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UnifiedProductBulkCreateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UnifiedProductBulkCreateRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductBulkCreate' 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. /product_lines: get: operationId: product_lines_list description: List multiple Product Lines. summary: List Product Lines parameters: - in: query name: brand schema: type: integer - in: query name: company schema: type: integer - in: query name: company_slug schema: type: string - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Line security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductLineList' 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. post: operationId: product_lines_create description: LeafLink API for Marketplace product lines. summary: Create Product Line tags: - Product Line requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductLineCreateRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductLineCreate' 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. /product_lines/{id}: get: operationId: product_lines_retrieve description: Get a single Product Line. summary: Get Product Line parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product line. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Line security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductLine' 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: product_lines_partial_update description: LeafLink API for Marketplace product lines. summary: Update Product Line parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product line. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Line requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedProductLineCreateRequest' security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductLineCreate' 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: product_lines_destroy description: LeafLink API for Marketplace product lines. summary: Delete Product Line parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product line. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Line security: - tokenAuth: [] - 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. /product_listing_states: get: operationId: product_listing_states_list description: List Listing States. summary: List Listing States parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Listing State security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Choice' 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. /product_promotions: get: operationId: product_promotions_list description: List multiple product promotions. summary: List Product Promotions parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Promotion security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedProductPromotionList' 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. post: operationId: product_promotions_create description: Create a product promotion. summary: Create a Product Promotion tags: - Product Promotion requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductPromotionRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ProductPromotion' 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. /product_promotions/{id}: get: operationId: product_promotions_retrieve description: Get a single product promotion. summary: Get a Product Promotion parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product promotion. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Promotion security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductPromotion' 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. put: operationId: product_promotions_update description: API endpoint to create, view, and edit ProductPromotions for a company. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product promotion. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - product_promotions requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductPromotionRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductPromotion' 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: product_promotions_partial_update description: Update a product promotion. summary: Update a Product Promotion parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product promotion. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Promotion requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedProductPromotionRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductPromotion' 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: product_promotions_destroy description: API endpoint to create, view, and edit ProductPromotions for a company. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product promotion. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - product_promotions 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. /product_specifications: get: operationId: product_specifications_list description: List all Product Specifications summary: List Product Specifications parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Specification security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductSpecificationList' 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. /product_specifications/{id}: get: operationId: product_specifications_retrieve description: Get a Product Specification by ID summary: Get a Product Specification parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product data. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Specification security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductSpecification' 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. /product_subcategories: get: operationId: product_subcategories_list description: List multiple product subcategories. summary: List Product Subcategories parameters: - in: query name: category_id schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: subcategory_id schema: type: integer - in: query name: subcategory_name schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Subcategory security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductSubCategoryList' 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. /product_subcategories/{id}: get: operationId: product_subcategories_retrieve description: Get a single product subcategory. summary: Get a Product Subcategory parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product sub category. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Subcategory security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductSubCategory' 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. /product_templates: get: operationId: product_templates_list description: List multiple product templates. summary: List Product Templates parameters: - in: query name: company_id schema: type: integer required: true - in: query name: name schema: type: string - in: query name: order_by schema: type: array items: type: string enum: - -name - name description: Sort by the field explode: false style: form - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Template security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductTemplateList' 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. post: operationId: product_templates_create description: Create a new product template. summary: Create Product Template parameters: - in: query name: company_id schema: type: integer required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Template requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductTemplateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductTemplate' 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. /product_templates/{id}: get: operationId: product_templates_retrieve description: Retrieve a single product template. summary: Retrieve Product Template parameters: - in: query name: company_id schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product template. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Template security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductTemplate' 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: product_templates_partial_update description: Update an existing product template. summary: Update Product Template parameters: - in: query name: company_id schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product template. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Template requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedProductTemplateRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductTemplate' 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: product_templates_destroy description: Delete an existing product template. summary: Delete Product Template parameters: - in: query name: company_id schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this product template. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product Template 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. /products: get: operationId: products_list description: List multiple Products. summary: List Products parameters: - in: query name: archived schema: type: boolean - in: query name: base_units_per_unit__isnull schema: type: boolean - in: query name: batch_associated__isnull schema: type: boolean - in: query name: brand schema: type: integer - in: query name: buyer schema: type: integer - in: query name: category schema: type: integer - in: query name: company schema: type: integer - in: query name: company_slug schema: type: string - in: query name: created_on__gt schema: type: string format: date-time - in: query name: created_on__gte schema: type: string format: date-time - in: query name: created_on__lt schema: type: string format: date-time - in: query name: created_on__lte schema: type: string format: date-time - in: query name: display_name schema: type: string - in: query name: extern_sts_ids schema: type: array items: type: number description: Multiple values may be separated by commas. explode: false style: form - in: query name: external_id_key schema: type: string description: Filter by external ID key (integration system name) - in: query name: external_id_unmapped schema: type: boolean - in: query name: external_id_values schema: type: string - in: query name: external_ids schema: type: string - in: query name: has_children schema: type: boolean - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: last_edit__gt schema: type: string format: date-time - in: query name: last_edit__gte schema: type: string format: date-time - in: query name: last_edit__lt schema: type: string format: date-time - in: query name: last_edit__lte schema: type: string format: date-time - in: query name: license schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: license__isnull schema: type: boolean - in: query name: license__type schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: listing_state schema: type: string - in: query name: modified__gt schema: type: string format: date-time - in: query name: modified__gte schema: type: string format: date-time - in: query name: modified__lt schema: type: string format: date-time - in: query name: modified__lte schema: type: string format: date-time - in: query name: name schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: parent schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: parent__isnull schema: type: boolean - in: query name: product_line schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: reconcile_inventory schema: type: boolean - in: query name: s2s_connected schema: type: boolean - name: search required: false in: query description: A search term. schema: type: string - in: query name: seller_internal_id schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: sku schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: strains schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: sub_category schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: sub_category__isnull schema: type: boolean - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product security: - bearerAuth: [] responses: '200': description: A list of serialized products 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. 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. /products/{id}: get: operationId: products_retrieve description: Get a single Product. summary: Get Product 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: - Product security: - bearerAuth: [] responses: '200': description: A serialized product 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. 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. /products/{id}/audit_log: get: operationId: products_audit_log_retrieve description: "List paginated audit log entries for a product, including product edits, \n bulk operations, and\ \ inventory item changes." summary: Get Product Audit Log parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this product. required: true - in: query name: page schema: type: integer description: Page number - in: query name: page_size schema: type: integer description: Page size - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedProductAuditLogResponse' 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. '404': description: Product not found 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. /products/bulk/update: post: operationId: products_bulk_update description: Update Multiple Products. summary: Bulk Product Update tags: - Product requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductBulkUpdateRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductBulkUpdateResponse' examples: BulkProductUpdate: value: updated: 2 expected: 4 errors: wholesale_price: - message: The price must be a positive number. products: - id: 1 name: Nifty Product display_name: A Nifty Product sale_price: - message: The sale price must be less than the wholesale price. products: - id: 2 name: Widget display_name: A Widget summary: Bulk Product Update description: Success. Returns the number of products updated and the number products expected to be updated. 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. '400': description: Bad Request 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. '408': description: Timeout Error 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. /products/recommended: get: operationId: products_recommended_list description: List product recommendations. summary: Recommended Products parameters: - in: query name: ad_count schema: type: integer description: The number of ads to request - in: query name: brand_id schema: type: string description: The brand to restrict recommendations to. - in: query name: category schema: type: array items: type: integer description: Filter by category id explode: true style: form - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: object_id schema: type: array items: type: integer description: One or more Object IDs - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: placement schema: type: string enum: - buyer-dash-hero-1 - buyer-dash-hero-2 - buyer-dash-hero-3 - buyer-dash-hero-4 - buyer-dash-hero-5 - buyer-dash-hero-6 - buyer-dash-hero-7 - buyer-dash-hero-8 - buyer-dashboard-hero-banner-1 - buyer-dashboard-hero-banner-2 - buyer-dashboard-hero-banner-3 - buyer-dashboard-hero-banner-4 - buyer-dashboard-hero-banner-5 - buyer-dashboard-hero-banner-6 - buyer-dashboard-hero-banner-7 - buyer-dashboard-hero-banner-8 - deals-page-1 - deals-page-2 - deals-page-3 - deals-page-4 - discovery-left - discovery-right - order-submit-1 - order-submit-2 - order-submit-3 - order-submit-4 - product-spotlight-carousel - recommended-brands-recently-purchased - recommended-products-cart - recommended-products-order - recommended-products-pdm-alternative - recommended-products-pdp-alternative - recommended-products-shop-brands - recommended-products-shop-discover-products - recommended-products-shop-products - recommended-products-top-purchased - seller-dash-hero-1 - seller-dash-hero-2 - seller-dash-hero-3 - seller-dash-hero-4 - seller-dash-hero-5 - seller-dash-hero-6 - seller-dash-hero-7 - seller-dash-hero-8 - shop-brands-featured-brand - shop-brands-featured-brand-2 - shop-brands-featured-brand-3 - shop-brands-featured-brand-4 - shop-brands-featured-brand-5 - shop-brands-sidebar-3 - shop-brands-sidebar-4 - shop-brands-sidebar-bottom - shop-brands-sidebar-top - shop-brands-skyscraper-1 - shop-brands-skyscraper-2 - shop-brands-skyscraper-3 - shop-brands-skyscraper-4 - shop-products-1 - shop-products-2 - shop-products-3 - shop-products-4 - shop-products-5 description: The ID of an ad location required: true - in: query name: product_count schema: type: integer description: The number of products to request - name: search required: false in: query description: A search term. schema: type: string - in: query name: subcategory schema: type: string description: The product sub-category id to restrict recommendations to. - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedRecommendedProductList' 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. /products_mvp: get: operationId: products_mvp_list description: List multiple Products. summary: List Products parameters: - in: query name: archived schema: type: boolean - in: query name: base_units_per_unit__isnull schema: type: boolean - in: query name: batch_associated__isnull schema: type: boolean - in: query name: brand schema: type: integer - in: query name: buyer schema: type: integer - in: query name: category schema: type: integer - in: query name: company schema: type: integer - in: query name: company_slug schema: type: string - in: query name: created_on__gt schema: type: string format: date-time - in: query name: created_on__gte schema: type: string format: date-time - in: query name: created_on__lt schema: type: string format: date-time - in: query name: created_on__lte schema: type: string format: date-time - in: query name: display_name schema: type: string - in: query name: extern_sts_ids schema: type: array items: type: number description: Multiple values may be separated by commas. explode: false style: form - in: query name: external_id_key schema: type: string description: Filter by external ID key (integration system name) - in: query name: external_id_unmapped schema: type: boolean - in: query name: external_id_values schema: type: string - in: query name: has_children schema: type: boolean - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: last_edit__gt schema: type: string format: date-time - in: query name: last_edit__gte schema: type: string format: date-time - in: query name: last_edit__lt schema: type: string format: date-time - in: query name: last_edit__lte schema: type: string format: date-time - in: query name: license schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: license__isnull schema: type: boolean - in: query name: license__type schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: listing_state schema: type: string - in: query name: modified__gt schema: type: string format: date-time - in: query name: modified__gte schema: type: string format: date-time - in: query name: modified__lt schema: type: string format: date-time - in: query name: modified__lte schema: type: string format: date-time - in: query name: name schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: parent schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: parent__isnull schema: type: boolean - in: query name: product_line schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: reconcile_inventory schema: type: boolean - in: query name: s2s_connected schema: type: boolean - name: search required: false in: query description: A search term. schema: type: string - in: query name: seller_internal_id schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: sku schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: strains schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: sub_category schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - in: query name: sub_category__isnull schema: type: boolean - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product MVP security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedProductMVPList' 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. post: operationId: products_mvp_create description: LeafLink API for Marketplace products. summary: Create Product tags: - Product MVP requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVPRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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. /products_mvp/{id}: get: operationId: products_mvp_retrieve description: Get a single Product. summary: Get Product 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: - Product MVP security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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_mvp_partial_update description: LeafLink API for Marketplace products. summary: Update Product 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: - Product MVP requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUnifiedProductMVPRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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. /products_mvp/{id}/clone: get: operationId: products_mvp_clone_retrieve description: Clone a Product. summary: Clone Product 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: - Product MVP security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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. post: operationId: products_mvp_clone_create description: Clone a Product. summary: Clone Product 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: - Product MVP requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVPRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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. /products_mvp/{template_id}/add_from_template: get: operationId: products_mvp_add_from_template_retrieve description: Add a Product from a Template. summary: Add Product from Template parameters: - in: path name: template_id schema: type: string pattern: ^[\d]+$ required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product MVP security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVPFromTemplate' 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. post: operationId: products_mvp_add_from_template_create description: Add a Product from a Template. summary: Add Product from Template parameters: - in: path name: template_id schema: type: string pattern: ^[\d]+$ required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Product MVP requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVPRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedProductMVP' 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. /sales_invoices: get: operationId: sales_invoices_list parameters: - in: query name: created_date_from schema: type: string format: date - in: query name: created_date_to schema: type: string format: date - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - sales_invoices security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedOrderAsSalesInvoiceList' 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. /sales_invoices/{id}: get: operationId: sales_invoices_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this order. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - sales_invoices security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderAsSalesInvoice' 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. /settings/companies/buyer_notifications: get: operationId: settings_companies_buyer_notifications_list description: Get buyer notification settings. parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - settings security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedBuyerNotificationSettingList' 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. post: operationId: settings_companies_buyer_notifications_create description: Update buyer notification settings. tags: - settings requestBody: content: application/json: schema: $ref: '#/components/schemas/BuyerNotificationSettingRequest' security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/BuyerNotificationSetting' 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. /settings/companies/buyer_notifications/{id}: get: operationId: settings_companies_buyer_notifications_retrieve description: Unified API Buyer Notification Settings. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - settings security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BuyerNotificationSetting' 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. /splits: get: operationId: splits_retrieve description: Get split treatments for a company summary: Get split treatments parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: split_name schema: type: array items: type: string enum: - ads_moloco_shop_brands_sidebar_banners - bme_enable_crm_customers - bme_enable_order_actions - brands-products-perf - buyer_settings_store_requests_vue - can_access_company_group_features - cart__optimized_cart_query - ce_pod__buyer_metrc_onboarding - code_freeze_temp - collab_pod__payments_in_crm - collab_pod__sales_rep_email_actions - com_pod__cart_payment_cta - com_pod__cart_payment_option - com_pod__reverse_factor - commerce__accept_payments_payment_events - cop_pod__bank_linking - cop_pod__payments_exploration_dashboard_widget - cop_pod__terms_and_conditions - custom_menus__edit_product_redirect - enable_logistics_permission_to_all_users - fire_pod__delinquent_lockdown - fire_pod__direct_pay_enabled_states - fire_pod__enable_post_weekly_sum_view - fire_pod__mp_auto_pausing - fire_pod__mp_auto_pausing_update - fire_pod__order_adjustments_event_consumer - fire_pod__post_package_services - fire_pod__post_settings - force_segment_reporting - gro_pod__order_summary_invitations - gro_pod__printed_menu - inbound_shipments_create - int_pod__order_pdf_report - inte_pod__bulk_import_from_metrc - integrations_pod__license_sync_sf_case_creation - inventory_negative_available_quantity_logging - inventory_pod__inventory_batch_support - inventory_pod__inventory_warehouse_support - inventory_v2_company_rollout - live_inventory_indicator - logistics_pod__enable_customers_to_select_transport_partner - logistics_pod__submit_order_via_csv_upload - manage_license__add_integration__buyer - manage_licenses__new_metrc_flow - messaging_notifications - michigan_affiliated_orders_enabled - npr_pod__integrations_seller - order_summary_ancillary_enhancements - order_summary_receipt_log - orders_internal_approvals - pause_inactive_license_companies - plat_arch_pod__unified_hijacking - post_automated_payments__calculation - post_sts_unit_conversion - replenishment_catalog_page - ret_pod__order_minimum - ret_pod__split_orders - retention_pod__buyer_reports - saas_pod__internal_product_id - seed_to_sale__buyer_nav - seed_to_sale_coa_download - settings__tax_schedules - sgo_orders_debug_logging - sips_pod__mp_license_service_api - spliff_pod__collab_notification - ssr_iframe - supply_chain_delivered_status - trace_pod__search_by_assigned_packages - traceability__biotrack_buyer_onboarding - traceability__biotrack_seller_attach_manifest - traceability_pod__automated_metrc_license_validation - traceability_pod__biotrack_new_york - traceability_pod__experiment__reconcile_inventory - traceability_pod__integration_settings - traceability_pod__v2_batches - traceability_pod__v2_batches_orders_and_menus - traceability_pod__v2_batches_source_label - traceability_pod__v2_inventory - transport_pod__ma_next_day_delivery - transport_pod__shipping_set_order_payments - vue_buyer_notification_settings - vue_inventory_product_add_edit_page description: The names of the splits - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - SplitIO security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SplitTreatment' description: Split treatments 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. '400': description: Invalid request 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. /states: get: operationId: states_list description: List states. summary: List States parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: logistics_enabled schema: type: boolean - in: path name: logistics_enabled schema: type: boolean description: If set to 'true' endpoint will return only States that have at least one seller with enabled logistics. required: true - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - States security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedStateList' 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. /states/{id}: get: operationId: states_retrieve description: State view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this state. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - states security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/State-unified-upstream-marketplace' 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. /strain_classifications: get: operationId: strain_classifications_list description: List multiple Strain Classifications. summary: List Strain Clasifications parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Strain security: - bearerAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Choice' 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. /strains: get: operationId: strains_list description: List multiple Strains. summary: List Strains parameters: - in: query name: company schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: company__isnull schema: type: boolean - in: query name: company_slug schema: type: string - in: query name: id schema: type: array items: type: integer description: Multiple values may be separated by commas. explode: false style: form - in: query name: name schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: strain_classification schema: type: array items: type: string description: Multiple values may be separated by commas. explode: false style: form - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Strain security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedStrainList' 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. /strains/{id}: get: operationId: strains_retrieve description: Get a single Strain. summary: Get Strain parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this strain. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Strain security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedStrain' 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. /taxes/tax_schedules: get: operationId: taxes_tax_schedules_list description: Get tax schedules for company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - taxes security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedTaxScheduleList' 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. post: operationId: taxes_tax_schedules_create description: Create a new TaxSchedule. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - taxes requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateInputRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateUpdateSuccessResponse' 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. /taxes/tax_schedules/{id}: get: operationId: taxes_tax_schedules_retrieve description: Get tax schedule by ID for company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tax schedule. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - taxes security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedTaxSchedule' 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: taxes_tax_schedules_partial_update description: Update a TaxSchedule by marking it as archived and creating a new one. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tax schedule. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - taxes requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUpdateInputRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateUpdateSuccessResponse' 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: taxes_tax_schedules_destroy description: Delete a TaxSchedule... well, mark it as archived. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tax schedule. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - taxes 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. /traceability/actions/refresh_products_packages: patch: operationId: traceability_actions_refresh_products_packages_partial_update description: Reconcile inventory for products, utilizes marketplace celery tasks + traceability service data. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTraceabilityRefreshProductsPackagesRequest' security: - bearerAuth: [] responses: '200': 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. /traceability/actions/refresh_resources: get: operationId: traceability_actions_refresh_resources_retrieve description: Perform refresh for specified resource types and optional datetime. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: end_date schema: type: string format: date description: Resource refresh end date - in: query name: start_date schema: type: string format: date description: Resource refresh start date - in: query name: types schema: type: string description: Comma-separated list of resource types to refresh required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': 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. /traceability/companies: post: operationId: traceability_companies_create description: Create a new company in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/CompanyCreateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CompanyWriteSuccessResponse' 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. /traceability/companies/{id}: get: operationId: traceability_companies_retrieve description: Get company by ID. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of requested company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityCompany' 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: traceability_companies_partial_update description: Update a company in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of requested company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCompanyUpdateRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompanyWriteSuccessResponse' 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. /traceability/company_customers: get: operationId: traceability_company_customers_list description: Get company customers. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedTraceabilityCompanyCustomerList' 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. /traceability/company_customers/{id}: get: operationId: traceability_company_customers_retrieve description: Get company customer by ID. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company customer. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedTraceabilityCompanyCustomer' 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. /traceability/company_licenses/: post: operationId: traceability_company_licenses_create description: Get company licenses parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/LicenseApiKeyRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityLicenses' 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. /traceability/company_setting/{id}: delete: operationId: traceability_company_setting_destroy description: Delete a company's integration. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of integration to modify required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: type: object additionalProperties: {} 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. /traceability/drivers: get: operationId: traceability_drivers_list description: Get all drivers for company parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: search schema: type: string description: Search term to filter the list by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityDriverList' 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. post: operationId: traceability_drivers_create description: Create a new driver in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/TraceabilityDriverCreateUpdateInputRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityDriver' 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. /traceability/drivers/{external_id}: patch: operationId: traceability_drivers_partial_update description: Update a driver in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: external_id schema: type: string description: Vendor external ID of object to be updated required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTraceabilityDriverCreateUpdateInputRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityDriver' 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. /traceability/items: get: operationId: traceability_items_list description: Get all items from the traceability service for a company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: include_strain_data schema: type: boolean description: Boolean to indicate whether strain data should be included - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: search schema: type: string description: Search term to filter the list by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityItemList' 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. /traceability/orders_by_package_labels: get: operationId: traceability_orders_by_package_labels_list description: Unified API Orders by Package Labels. parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedTraceabilityPackageOrdersList' 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. /traceability/orders_by_package_labels/{id}: get: operationId: traceability_orders_by_package_labels_retrieve description: Unified API Orders by Package Labels. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this attached package. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedTraceabilityPackageOrders' 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. /traceability/packages: get: operationId: traceability_packages_list description: Get company packages parameters: - in: query name: assigned schema: type: boolean description: Filter by Traceability.common_packages that are assigned/unassigned products - in: query name: cbd_max schema: type: number format: double description: Filter by Traceability.common_packages with a CBD value less than or equal to the given value - in: query name: cbd_min schema: type: number format: double description: Filter by Traceability.common_packages with a CBD value greater than or equal to the given value - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: hide_attached_packages schema: type: boolean description: Filter out any Traceability.common_package that has already been assigned to an order line-item - in: query name: include_source_packages schema: type: boolean description: Indicate whether to include a list of source_package_labels in the response - in: query name: is_production_batch schema: type: boolean description: Filter Traceability.common_packages for packages that are production batches - in: query name: item schema: type: string description: Filter by Traceability.metrc_package.item_id (accepts comma-separated list) - in: query name: lab_testing_status schema: type: string description: Filter by Traceability.common_package.metrc_package.lab_testing_status (accepts comma-separated list) - in: query name: label schema: type: string description: Filter by Traceability.common_package.label (accepts comma-separated list) - in: query name: license_number schema: type: string description: Filter by Traceability.common_package.license_number (accepts comma-separated list) - in: query name: location schema: type: string description: Filter by Traceability.common_package.location_id (accepts comma-separated list) - in: query name: manifest_number schema: type: string description: Filter Traceability.common_package by packages associated with manifest - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: packaged_date schema: type: string description: Filter by Traceability.metrc_package.packaged_date (accepts comma-separated list) - in: query name: page schema: type: integer description: Page number for pagination (1-indexed) - in: query name: page_size schema: type: integer description: Number of results per page, hard-cap of 25 enforced, default 25 - in: query name: product_ids schema: type: string description: Filter Traceability.common_package by product_ids assigned to packages (accepts comma-separated list) - in: query name: production_batch_numbers schema: type: string description: Filter Traceability.common_packages for specific production batches - in: query name: search schema: type: string description: Search term to filter the list by - in: query name: source_package schema: type: string description: Filter Traceability.common_package by packages that are children of the given label - in: query name: status schema: type: string description: Filter by Traceability.common_package.status field - in: query name: template_id schema: type: string description: Filter Traceability.common_package by packages assigned to template - in: query name: thc_max schema: type: number format: double description: Filter by Traceability.common_packages with a THC value less than or equal to the given value - in: query name: thc_min schema: type: number format: double description: Filter by Traceability.common_packages with a THC value greater than or equal to the given value - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityPackageList' 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. /traceability/refresh_requests: get: operationId: traceability_refresh_requests_list description: Get all refresh_requests from the traceability service for a company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: refresh_date schema: type: string format: date description: Filter results by refresh_request.created_at - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: string description: Filter results by comma-separated list of refresh statuses - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityRefreshRequestList' 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. /traceability/templates: get: operationId: traceability_templates_list description: Get templates from the traceability service for company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: ll_order_id schema: type: integer description: Filter results by associated LL order ID - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: page schema: type: integer description: Page number for pagination (1-indexed) - in: query name: page_size schema: type: integer description: Number of results per page, hard-cap of 25 enforced, default 25 - in: query name: search schema: type: string description: Search term to filter the list by - in: query name: ship_date schema: type: string format: date-time description: Filter results by ship date - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityTemplateList' 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. post: operationId: traceability_templates_create description: Create a new Template in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/TemplateCreateRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/TemplateWriteSuccessResponse' 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. /traceability/templates/{id}: get: operationId: traceability_templates_retrieve description: Get template by ID for company. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of requested template required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityTemplateDetail' 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: traceability_templates_partial_update description: Update a template in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: integer description: ID of requested template required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTemplateUpdateRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TemplateWriteSuccessResponse' 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. /traceability/transfer_companies: get: operationId: traceability_transfer_companies_list description: Get origin/destination companies of a transfer + their associated license parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: from_shipper schema: type: string description: Filter by Traceability.transfer.shipper_facility_name|shipper_facility_license_number fields contain value - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: to_recipient schema: type: string description: Filter by Traceability.transfer.recipient_facility_name|recipient_facility_license_number fields contain value - in: query name: transfer_type schema: type: string description: Filter by Traceability.transfer.type field - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTransferCompanyList' 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. /traceability/transfers: get: operationId: traceability_transfers_list description: 'Get traceability transfer data. Note: resource_type fields will not be present in the payloads. They are just needed to help define polymorphic fields.' parameters: - in: query name: arrival_date schema: type: string format: date description: Filter by Traceability.transfer.arrival_date field - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: query name: company_ids schema: type: string description: Filter by Traceability.transfer.company.external_id (marketplace.company.id) field - in: query name: exclude_received schema: type: boolean description: Filter by Traceability.transfer.received_datetime field not None - in: query name: exclude_voided schema: type: boolean description: Filter by Traceability.transfer.status field not VOIDED - in: query name: external_ids schema: type: string description: Filter by Traceability..external_id field - in: query name: from_shipper schema: type: string description: Filter by Traceability.transfer.shipper_facility_name|shipper_facility_license_number fields contain value - in: query name: has_attached_orders schema: type: boolean description: Filter by transfers that are associated with orders in LL - in: query name: ids schema: type: string description: Traceability..id field - in: query name: include_package_data schema: type: boolean description: Include delivery packages in response - in: query name: max_count schema: type: integer description: Limit db count queries to {max_count} (performance optimization opt-in). - in: query name: metrc_ids schema: type: string description: Filter by Traceability..metrc_id field - in: query name: order_ids schema: type: string description: Filter transfers by Traceability.order_transfer.order_id list field - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: page schema: type: integer description: Page number for pagination (1-indexed) - in: query name: page_size schema: type: integer description: Number of results per page, hard-cap of 25 enforced, default 25 - in: query name: search schema: type: string description: Search term to filter the list by - in: query name: ship_date schema: type: string format: date-time description: Filter results by ship date - in: query name: sort_by schema: type: string description: Sort results by given field - in: query name: to_recipient schema: type: string description: Filter by Traceability.transfer.recipient_facility_name|recipient_facility_license_number fields contain value - in: query name: traceability_transfer_external_ids schema: type: string description: Filter by Traceability.transfer.metrc_id field - in: query name: transfer_status schema: type: string description: Filter by Traceability.transfer.status field - in: query name: transfer_type schema: type: string description: Filter by Traceability.transfer.type field - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityTransferList' 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. post: operationId: traceability_transfers_create description: Create a new manifest in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferCreateInputRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/PolymorphicCreateUpdateTransferResponse' 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. /traceability/transfers/{id}: patch: operationId: traceability_transfers_partial_update description: Update a transfer in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: id schema: type: string description: External ID of requested transfer required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTransferUpdateInputRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolymorphicCreateUpdateTransferResponse' 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. /traceability/vehicles: get: operationId: traceability_vehicles_list description: Get all vehicles parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: search schema: type: string description: Search term to filter the list by - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTraceabilityVehicleList' 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. post: operationId: traceability_vehicles_create description: Create a new vehicle in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/TraceabilityVehicleCreateUpdateInputRequest' required: true security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityVehicle' 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. /traceability/vehicles/{external_id}: patch: operationId: traceability_vehicles_partial_update description: Update a vehicle in the traceability service. parameters: - in: query name: company_id schema: type: integer description: The ID of the viewing company required: true - in: path name: external_id schema: type: string description: Vendor external ID of object to be updated required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - traceability requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTraceabilityVehicleCreateUpdateInputRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TraceabilityVehicle' 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. /transportation/companies: get: operationId: transportation_companies_list description: List all transport companies. summary: List Transport Companies parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: state_abbr schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTransportCompanyList' 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. /transportation/companies/{id}: get: operationId: transportation_companies_retrieve description: Transport Company view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this transport company. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransportCompany' 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. /transportation/drivers: get: operationId: transportation_drivers_list description: Get active drivers for given transport partner, by default returns only active drivers. summary: List Drivers parameters: - in: path name: include_inactive schema: {} description: If set to 'true' endpoint will return all Drivers, both active and inactive. required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedInternalDriverList' 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. post: operationId: transportation_drivers_create description: Create Driver summary: Create Driver parameters: - in: query name: email schema: type: string - in: query name: first_name schema: type: string - in: query name: last_name schema: type: string - in: query name: license_number schema: type: string - in: query name: metrc_employee_id schema: type: string - in: query name: phone schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport requestBody: content: application/json: schema: $ref: '#/components/schemas/InternalDriverRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/InternalDriver' 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. /transportation/drivers/{id}: get: operationId: transportation_drivers_retrieve description: Transport partner drivers view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this driver. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InternalDriver' 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: transportation_drivers_partial_update description: Transport partner drivers view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this driver. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedInternalDriverRequest' security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InternalDriver' 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. /transportation/orders: get: operationId: transportation_orders_list description: List multiple Transport Order. summary: List Transport Order parameters: - in: query name: buyer schema: type: string - in: query name: delivery_date schema: type: string format: date - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: order_invoice_number schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: pickup_date schema: type: string format: date - in: query name: requested_date schema: type: string format: date - name: search required: false in: query description: A search term. schema: type: string - in: query name: sort_by schema: type: array items: type: string enum: - -created_on - -display_delivery_date - -requested_pickup_date - created_on - display_delivery_date - requested_pickup_date description: Ordering explode: false style: form - in: query name: status schema: type: array items: type: string title: Status of L3Order enum: - assigned - created - delivered - planned - shipped - uploaded explode: true style: form - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedL3OrderList' 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. post: operationId: transportation_orders_create description: Unified API product categories. tags: - transportation requestBody: content: application/json: schema: $ref: '#/components/schemas/UnifiedL3OrderRequest' required: true security: - tokenAuth: [] - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnifiedL3Order' 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. /transportation/orders/{id}: get: operationId: transportation_orders_retrieve description: Get a single Transport Order. summary: Get Transport Order parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this l3 order. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedL3Order' 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. /transportation/partners: get: operationId: transportation_partners_list description: List all transport partners for all companies to which the requesting user has access. summary: List Company Transport Partner parameters: - in: query name: company_slug schema: type: string - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompanyTransportPartnerList' 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. post: operationId: transportation_partners_create description: Company transport partner view set. summary: Create Company Transport Partner tags: - Logistics Transport requestBody: content: application/json: schema: $ref: '#/components/schemas/CompanyTransportPartnerRequest' required: true security: - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CompanyTransportPartner' 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. /transportation/partners/{id}: get: operationId: transportation_partners_retrieve description: Company transport partner view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company transport partner. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompanyTransportPartner' 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: transportation_partners_partial_update description: Company transport partner view set. summary: Update Company Transport Partner parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company transport partner. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCompanyTransportPartnerRequest' security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompanyTransportPartner' 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. /transportation/vehicles: get: operationId: transportation_vehicles_list description: Get vehicles for given transport partner. summary: List Vehicles parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedVehicleList' 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. post: operationId: transportation_vehicles_create description: Create Vehicle summary: Create Vehicle parameters: - in: query name: has_air_conditioner schema: type: boolean - in: query name: license_number schema: type: string - in: query name: make schema: type: string - in: query name: model_name schema: type: string - in: query name: model_year schema: type: integer - in: query name: state_id schema: type: integer - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Logistics Transport requestBody: content: application/json: schema: $ref: '#/components/schemas/VehicleRequest' security: - tokenAuth: [] - bearerAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Vehicle' 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. /transportation/vehicles/{id}: get: operationId: transportation_vehicles_retrieve description: Transport partner vehicle view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this vehicle. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Vehicle' 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: transportation_vehicles_partial_update description: Transport partner vehicle view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this vehicle. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedVehicleRequest' security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Vehicle' 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: transportation_vehicles_destroy description: Transport partner vehicle view set. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this vehicle. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - transportation security: - tokenAuth: [] - 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. /unit_denominations: get: operationId: unit_denominations_list description: List all Unit Denominations summary: List Unit Denominations parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Unit Denomination security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedUnitDenominationList' 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. /unit_denominations/{id}: get: operationId: unit_denominations_retrieve description: Get a Unit Denomination by ID summary: Get a Unit Denomination parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this unit denomination. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Unit Denomination security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedUnitDenomination' 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. /units_of_measure: get: operationId: units_of_measure_list description: List all Unit of Measures summary: List Unit of Measures parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Unit of Measure security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedUnitOfMeasureList' 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. /units_of_measure/{id}: get: operationId: units_of_measure_retrieve description: Get a Unit of Measure by ID summary: Get a Unit of Measure parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this unit of measure. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Unit of Measure security: - tokenAuth: [] - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedUnitOfMeasure' 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. /vendor/{id}: get: operationId: vendor_retrieve description: Get a single vendor company profile. The licenses field contains only (non-archived) licenses. summary: Get Vendor Company Profile parameters: - in: query name: company_id schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this company. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - vendors security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedVendorCompany' 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. /vendors/recommended: get: operationId: vendors_recommended_list parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - vendors security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnifiedRecommendedCompanyList' 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. /vendors/recommended/{id}: get: operationId: vendors_recommended_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this company. required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - vendors security: - bearerAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnifiedRecommendedCompany' 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. /notification/preferences/user/{user_id}: get: summary: Get a user's notification preferences. description: Get a user's notification preferences. parameters: - in: path name: user_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Notification Preferences responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationPreferences-unified-upstream-notification-service' description: List of objects with notification preferences from a user. 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. '404': content: application/json: schema: $ref: '#/components/schemas/MultipleErrors' description: Preferences from User with ID not found. 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: summary: Update a user's notification preferences. description: Update a user's notification preferences. requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationPreferencesPayloadSchema' parameters: - in: path name: user_id schema: type: string required: true - name: LeafLink-Version description: '[API version docs](/api/getting-started/#versioning)' required: false in: header schema: type: string format: date tags: - Notification Preferences responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationPreferences-unified-upstream-notification-service' description: Updated notification preferences for the user. 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. '404': content: application/json: schema: $ref: '#/components/schemas/MultipleErrors' description: Preferences from User with ID not found. 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. components: schemas: BlankEnum: enum: - '' Buyer: type: object description: Used to serialize buyer data (a buyer is a company where `type` = `buyer`) properties: id: type: string format: uuid dba: type: string maxLength: 200 name: type: string nullable: true maxLength: 200 street_address: type: string nullable: true maxLength: 200 unit_number: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 state: type: string nullable: true licenses: type: array items: $ref: '#/components/schemas/License' zipcode: type: string nullable: true maxLength: 20 country: type: string nullable: true maxLength: 50 phone: type: string nullable: true maxLength: 100 marketplace_id: type: integer marketplace_slug: type: string nullable: true maxLength: 255 marketplace_dashboard_url: type: string readOnly: true has_signed_terms_and_conditions: type: string readOnly: true in_direct_enabled_state: type: string readOnly: true type: nullable: true oneOf: - $ref: '#/components/schemas/Type7a8Enum' - $ref: '#/components/schemas/NullEnum' url: type: string nullable: true maxLength: 200 legal_entity: $ref: '#/components/schemas/LegalEntity' status: $ref: '#/components/schemas/StatusEnum' b2b_enabled: type: boolean flexible_enabled: type: boolean image: type: string nullable: true maxLength: 100 timezone: type: string created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true excluded_from_automated_payments: type: boolean preferred_payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PreferredPaymentProgramEnum' - $ref: '#/components/schemas/NullEnum' default_flexible_payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum' default_flexible_payment_term: type: string readOnly: true available_terms: type: string readOnly: true exempted_from_term_validation: type: boolean collection_day_preference: nullable: true oneOf: - $ref: '#/components/schemas/CollectionDayPreferenceEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' excluded_from_funding_on_t: type: boolean cashback_rewards_enabled: type: boolean required: - available_terms - created_on - dba - default_flexible_payment_term - has_signed_terms_and_conditions - in_direct_enabled_state - marketplace_dashboard_url - modified - type BuyerRequest: type: object description: Used to serialize buyer data (a buyer is a company where `type` = `buyer`) properties: id: type: string format: uuid dba: type: string minLength: 1 maxLength: 200 name: type: string nullable: true maxLength: 200 street_address: type: string nullable: true maxLength: 200 unit_number: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 state: type: string minLength: 1 nullable: true licenses: type: array items: $ref: '#/components/schemas/LicenseRequest' zipcode: type: string nullable: true maxLength: 20 country: type: string nullable: true maxLength: 50 phone: type: string nullable: true maxLength: 100 marketplace_id: type: integer marketplace_slug: type: string nullable: true minLength: 1 maxLength: 255 type: nullable: true oneOf: - $ref: '#/components/schemas/Type7a8Enum' - $ref: '#/components/schemas/NullEnum' url: type: string nullable: true maxLength: 200 legal_entity: $ref: '#/components/schemas/LegalEntityRequest' legal_entity_id: type: string format: uuid writeOnly: true status: $ref: '#/components/schemas/StatusEnum' b2b_enabled: type: boolean flexible_enabled: type: boolean image: type: string nullable: true maxLength: 100 timezone: type: string minLength: 1 excluded_from_automated_payments: type: boolean preferred_payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PreferredPaymentProgramEnum' - $ref: '#/components/schemas/NullEnum' default_flexible_payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum' exempted_from_term_validation: type: boolean collection_day_preference: nullable: true oneOf: - $ref: '#/components/schemas/CollectionDayPreferenceEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' excluded_from_funding_on_t: type: boolean cashback_rewards_enabled: type: boolean required: - dba - type CollectionDayPreferenceEnum: enum: - monday - tuesday - wednesday - thursday - friday type: string Company: type: object description: Used to validate the company creation request. properties: id: type: string format: uuid dba: type: string maxLength: 200 legal_entity: $ref: '#/components/schemas/LegalEntity' has_linked_bank_account: type: boolean readOnly: true required: - dba - has_linked_bank_account CompanyCashbackStats: type: object description: Serializer for CompanyStats focusing on cashback-related statistics. properties: buyer_cashback_invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true buyer_cashback_potential_earnings: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true Contract: type: object description: Serializer for Contract properties: id: type: string format: uuid readOnly: true docusign_id: type: string nullable: true maxLength: 200 status: type: string default: active buyer: allOf: - $ref: '#/components/schemas/Buyer' readOnly: true seller: allOf: - $ref: '#/components/schemas/Seller' readOnly: true contract_stats: allOf: - $ref: '#/components/schemas/ContractStats' readOnly: true created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true default_payment_program: allOf: - $ref: '#/components/schemas/DefaultPaymentProgramEnum' default: do_not_process default_flexible_payment_strategy: $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' custom_direct_payment_term_type: type: string custom_reverse_factor_auto_assignment: type: boolean nullable: true required: - buyer - contract_stats - created_on - id - modified - seller ContractRequest: type: object description: Serializer for Contract properties: docusign_id: type: string nullable: true maxLength: 200 status: type: string default: active buyer_id: type: string format: uuid writeOnly: true seller_id: type: string format: uuid writeOnly: true default_payment_program: allOf: - $ref: '#/components/schemas/DefaultPaymentProgramEnum' default: do_not_process default_flexible_payment_strategy: $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' custom_direct_payment_term_type: type: string minLength: 1 custom_reverse_factor_auto_assignment: type: boolean nullable: true required: - buyer_id - seller_id ContractStats: type: object description: Serializer for CompanyStats properties: first_completed_invoice_date: type: string format: date-time nullable: true most_recent_eligible_invoice_date: type: string format: date-time nullable: true most_recent_assigned_invoice_date: type: string format: date-time nullable: true eligible_invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true eligible_invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true funded_invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true funded_invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true funded_invoice_percentage: type: number format: double maximum: 1000 minimum: -1000 exclusiveMaximum: true exclusiveMinimum: true nullable: true invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true ContractStatsRequest: type: object description: Serializer for CompanyStats properties: first_completed_invoice_date: type: string format: date-time nullable: true most_recent_eligible_invoice_date: type: string format: date-time nullable: true most_recent_assigned_invoice_date: type: string format: date-time nullable: true eligible_invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true eligible_invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true funded_invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true funded_invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true funded_invoice_percentage: type: number format: double maximum: 1000 minimum: -1000 exclusiveMaximum: true exclusiveMinimum: true nullable: true invoice_count: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true invoice_total: type: number format: double maximum: 10000000000 minimum: -10000000000 exclusiveMaximum: true exclusiveMinimum: true nullable: true DefaultFlexiblePaymentStrategyEnum: enum: - factored - reverse_factored type: string DefaultPaymentProgramEnum: enum: - do_not_process - flexible - direct - factoring - b2b type: string LegalEntity: type: object description: Serializer for LegalEntity properties: id: type: string format: uuid name: type: string maxLength: 200 street_address: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 zipcode: type: string nullable: true maxLength: 20 unit_number: type: string nullable: true maxLength: 200 state: type: string nullable: true country: type: string nullable: true maxLength: 50 lexis_nexis_id: type: string nullable: true maxLength: 100 rep_first_name: type: string nullable: true maxLength: 100 rep_last_name: type: string nullable: true maxLength: 100 rep_title: type: string nullable: true maxLength: 200 phone: type: string nullable: true maxLength: 100 required: - name LegalEntityRequest: type: object description: Serializer for LegalEntity properties: id: type: string format: uuid name: type: string minLength: 1 maxLength: 200 street_address: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 zipcode: type: string nullable: true maxLength: 20 unit_number: type: string nullable: true maxLength: 200 state: type: string minLength: 1 nullable: true country: type: string nullable: true maxLength: 50 lexis_nexis_id: type: string nullable: true maxLength: 100 rep_first_name: type: string nullable: true maxLength: 100 rep_last_name: type: string nullable: true maxLength: 100 rep_title: type: string nullable: true maxLength: 200 phone: type: string nullable: true maxLength: 100 required: - name License: type: object description: Licenses Serializer properties: id: type: string format: uuid readOnly: true number: type: string maxLength: 100 state: $ref: '#/components/schemas/State' verification_date: type: string format: date-time nullable: true description: Date the license was verified by Leaflink. Not the date the license was verified by Cannabiz API. verification_status: $ref: '#/components/schemas/VerificationStatusEnum' issued_date: type: string format: date-time nullable: true expiration_date: type: string format: date-time nullable: true type: nullable: true oneOf: - $ref: '#/components/schemas/LicenseTypeEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' required: - id - number - state LicenseRequest: type: object description: Serializer for License properties: id: type: string format: uuid type: nullable: true oneOf: - $ref: '#/components/schemas/LicenseTypeEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' number: type: string minLength: 1 maxLength: 100 state: type: string minLength: 1 nullable: true is_buyer_license: type: boolean nullable: true is_seller_license: type: boolean nullable: true required: - number LicenseTypeEnum: enum: - medical - combined - ancillary_2 - ancillary - adult_use - cannabis - medical_transporter - ancillary_logisitics type: string NullEnum: enum: - null PaginatedCompanyList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Company' PaginatedContractList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Contract' PaginatedLicenseList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/License' PatchedContractRequest: type: object description: Serializer for Contract properties: docusign_id: type: string nullable: true maxLength: 200 status: type: string default: active buyer_id: type: string format: uuid writeOnly: true seller_id: type: string format: uuid writeOnly: true default_payment_program: allOf: - $ref: '#/components/schemas/DefaultPaymentProgramEnum' default: do_not_process default_flexible_payment_strategy: $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' custom_direct_payment_term_type: type: string minLength: 1 custom_reverse_factor_auto_assignment: type: boolean nullable: true PreferredPaymentProgramEnum: enum: - do_not_process - flexible - direct type: string RecordInvoicePayment: type: object description: Creating a recorded payment on an Invoice properties: amount: type: string description: Quantity in USD payment_date: type: string format: date description: Date payment was made in YYYY-MM-DD payment_reason: type: string description: 'Reason payment was made. choices: [''invoice_purchase'', ''reversal'', ''adjustment'', ''principal'', ''extension_fee'', ''factor_fee'', ''direct_pay_fee'', ''direct_pay_fee_reversal'', ''direct_pay_fee_batch'', ''cashback_reward'', ''standard'', ''ach_error'', ''marketplace_payment'', ''other'', ''sell_through'']' payment_method: type: string description: The way the payment was made. choices:['ach', 'wire', 'money_order', 'cash_pickup', 'check', 'other'] check_number: type: string description: Check number if the method is check source_id: type: string description: The ID of this payment in your system required: - amount - payment_date - payment_method - payment_reason - source_id RecordInvoicePaymentRequest: type: object description: Creating a recorded payment on an Invoice properties: amount: type: string minLength: 1 description: Quantity in USD payment_date: type: string format: date description: Date payment was made in YYYY-MM-DD payment_reason: type: string minLength: 1 description: 'Reason payment was made. choices: [''invoice_purchase'', ''reversal'', ''adjustment'', ''principal'', ''extension_fee'', ''factor_fee'', ''direct_pay_fee'', ''direct_pay_fee_reversal'', ''direct_pay_fee_batch'', ''cashback_reward'', ''standard'', ''ach_error'', ''marketplace_payment'', ''other'', ''sell_through'']' payment_method: type: string minLength: 1 description: The way the payment was made. choices:['ach', 'wire', 'money_order', 'cash_pickup', 'check', 'other'] check_number: type: string minLength: 1 description: Check number if the method is check source_id: type: string minLength: 1 description: The ID of this payment in your system required: - amount - payment_date - payment_method - payment_reason - source_id Seller: type: object description: Used to serialize seller data (a seller is a company where `type` = `seller`) properties: id: type: string format: uuid dba: type: string maxLength: 200 name: type: string nullable: true maxLength: 200 street_address: type: string nullable: true maxLength: 200 unit_number: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 state: type: string nullable: true licenses: type: array items: $ref: '#/components/schemas/License' zipcode: type: string nullable: true maxLength: 20 country: type: string nullable: true maxLength: 50 phone: type: string nullable: true maxLength: 100 marketplace_id: type: integer marketplace_slug: type: string nullable: true maxLength: 255 marketplace_dashboard_url: type: string readOnly: true has_signed_terms_and_conditions: type: string readOnly: true in_direct_enabled_state: type: string readOnly: true type: nullable: true oneOf: - $ref: '#/components/schemas/Type7a8Enum' - $ref: '#/components/schemas/NullEnum' url: type: string nullable: true maxLength: 200 legal_entity: $ref: '#/components/schemas/LegalEntity' status: $ref: '#/components/schemas/StatusEnum' b2b_enabled: type: boolean flexible_enabled: type: boolean image: type: string nullable: true maxLength: 100 timezone: type: string created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true excluded_from_automated_payments: type: boolean preferred_payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PreferredPaymentProgramEnum' - $ref: '#/components/schemas/NullEnum' docusign_id: type: string format: uuid nullable: true brands: type: string readOnly: true marketplace_customers_url: type: string readOnly: true direct_payment_processing_rate: type: number format: double maximum: 100 minimum: -100 exclusiveMaximum: true exclusiveMinimum: true nullable: true default_flexible_payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum' default_flexible_payment_term: type: string readOnly: true collection_day_preference: nullable: true oneOf: - $ref: '#/components/schemas/CollectionDayPreferenceEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' excluded_from_funding_on_t: type: boolean required: - brands - created_on - dba - default_flexible_payment_term - has_signed_terms_and_conditions - in_direct_enabled_state - marketplace_customers_url - marketplace_dashboard_url - modified - type SellerRequest: type: object description: Used to serialize seller data (a seller is a company where `type` = `seller`) properties: id: type: string format: uuid dba: type: string minLength: 1 maxLength: 200 name: type: string nullable: true maxLength: 200 street_address: type: string nullable: true maxLength: 200 unit_number: type: string nullable: true maxLength: 200 city: type: string nullable: true maxLength: 100 state: type: string minLength: 1 nullable: true licenses: type: array items: $ref: '#/components/schemas/LicenseRequest' zipcode: type: string nullable: true maxLength: 20 country: type: string nullable: true maxLength: 50 phone: type: string nullable: true maxLength: 100 marketplace_id: type: integer marketplace_slug: type: string nullable: true minLength: 1 maxLength: 255 type: nullable: true oneOf: - $ref: '#/components/schemas/Type7a8Enum' - $ref: '#/components/schemas/NullEnum' url: type: string nullable: true maxLength: 200 legal_entity: $ref: '#/components/schemas/LegalEntityRequest' legal_entity_id: type: string format: uuid writeOnly: true status: $ref: '#/components/schemas/StatusEnum' b2b_enabled: type: boolean flexible_enabled: type: boolean image: type: string nullable: true maxLength: 100 timezone: type: string minLength: 1 excluded_from_automated_payments: type: boolean preferred_payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PreferredPaymentProgramEnum' - $ref: '#/components/schemas/NullEnum' docusign_id: type: string format: uuid nullable: true direct_payment_processing_rate: type: number format: double maximum: 100 minimum: -100 exclusiveMaximum: true exclusiveMinimum: true nullable: true default_flexible_payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/DefaultFlexiblePaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum' reviewed_eligible_flexible_buyers: type: array items: type: string format: uuid writeOnly: true collection_day_preference: nullable: true oneOf: - $ref: '#/components/schemas/CollectionDayPreferenceEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' excluded_from_funding_on_t: type: boolean required: - dba - type State: type: object description: State Serializer properties: id: type: string readOnly: true name: type: string maxLength: 100 required: - id - name StatusEnum: enum: - not_onboarded - onboarded - paused - offboarded type: string Type7a8Enum: enum: - seller - buyer type: string VerificationStatusEnum: enum: - active - pending - applied - expired - inactive - not_found - invalid_format - not_verified type: string AdPlacement: type: object description: Serializer for ll.ads.data_models.AdPlacement properties: id: type: string style: type: string provider: type: string required: - id - provider - style Address: type: object description: 'Serializer for Address models via the internal API. This includes but is not limited to delivery and corporate addresses for Companies.' properties: address: type: string description: Address maxLength: 400 unit_number: type: string title: 'Unit #' description: 'Unit #' maxLength: 400 city: type: string description: City maxLength: 400 county: type: string description: County maxLength: 400 state: type: string zipcode: type: string description: Zipcode maxLength: 7 required: - address - city - state - zipcode AddressInputRequest: type: object description: Nested serializer for the address payload required on facility creation. properties: address: type: string minLength: 1 city: type: string minLength: 1 state: type: string minLength: 1 description: State abbreviation e.g. 'CA' zipcode: type: string minLength: 1 maxLength: 7 unit_number: type: string default: '' county: type: string default: '' lat: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,6})?$ nullable: true long: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,6})?$ nullable: true required: - address - city - state - zipcode AddressRequest: type: object description: 'Serializer for Address models via the internal API. This includes but is not limited to delivery and corporate addresses for Companies.' properties: address: type: string minLength: 1 description: Address maxLength: 400 unit_number: type: string title: 'Unit #' description: 'Unit #' maxLength: 400 city: type: string minLength: 1 description: City maxLength: 400 county: type: string description: County maxLength: 400 state: type: string minLength: 1 zipcode: type: string minLength: 1 description: Zipcode maxLength: 7 required: - address - city - state - zipcode Allocation: type: object description: Serializes an ``AllocationItem`` for the API response. properties: product_id: type: integer facility_id: type: integer batch_id: type: integer quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ group_ids: type: array items: type: integer buyer_ids: type: array items: type: integer created_at: type: string format: date-time required: - batch_id - buyer_ids - created_at - facility_id - group_ids - product_id - quantity ArchiveRequestRequest: type: object description: Request body for POST .../commands/archive. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity - reason Author: type: object description: Author serializer properties: id: type: integer company: allOf: - $ref: '#/components/schemas/DiscussionCompany' readOnly: true user: type: integer name: type: string readOnly: true email: type: string readOnly: true required: - company - email - id - name - user AuthorRequest: type: object description: Author serializer properties: id: type: integer user: type: integer required: - id - user Badge: type: object description: Serializer for Badges. properties: id: type: integer readOnly: true name: type: string maxLength: 128 code: type: string maxLength: 32 self_identify: type: boolean description: This badge can be added or removed by an external user. required: - code - id - name BatchCreateRequest: type: object description: Serializer for creating a batch. company_id is injected by the view. properties: company_id: type: integer number: type: string minLength: 1 maxLength: 100 source_type: allOf: - $ref: '#/components/schemas/SourceTypeEnum' default: production_batch product_ids: type: array items: type: integer required: - company_id - number BatchListPaginatedResponse: type: object properties: count: type: integer next: type: string format: uri nullable: true previous: type: string format: uri nullable: true results: type: array items: $ref: '#/components/schemas/UnifiedBatch' meta: allOf: - $ref: '#/components/schemas/BatchMetaPayload' nullable: true required: - count - next - previous - results BatchMeasurementResponse: type: object description: Response shape for GET .../measurements/by-batch. properties: batch_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - batch_id - measurements - updated_at BatchMetaPayload: type: object properties: active_batch_count: type: integer inactive_batch_count: type: integer low_inventory_batch_count: type: integer required: - active_batch_count - inactive_batch_count - low_inventory_batch_count BatchUpdateRequest: type: object description: Serializer for updating a batch (PUT, full replace). id and company_id are injected by the view. properties: id: type: integer company_id: type: integer number: type: string minLength: 1 maxLength: 100 status: type: string minLength: 1 maxLength: 20 harvest_date: type: string format: date nullable: true expiration_date: type: string format: date nullable: true sku: type: string nullable: true maxLength: 100 terpenes: type: array items: $ref: '#/components/schemas/TerpeneRequest' is_assigned: type: boolean append_thc: type: boolean supplier: type: string nullable: true maxLength: 100 pricing_strategies: type: array items: $ref: '#/components/schemas/PricingStrategyInputRequest' product_ids: type: array items: type: integer required: - append_thc - company_id - id - is_assigned - status - terpenes BiotrackDeliveryPackage: type: object description: BioTrack-specific DeliveryPackage fields serializer. properties: resource_type: type: string readOnly: true common_delivery_package_id: type: integer description: type: string nullable: true session_time: type: integer stop_number: type: integer transaction_id: type: integer required: - common_delivery_package_id - description - resource_type - session_time - stop_number - transaction_id BiotrackDriver: type: object properties: resource_type: type: string readOnly: true birth_date: type: string format: date hire_date: type: string format: date email: type: string state_issued: type: string nullable: true transaction_id: type: integer required: - birth_date - email - hire_date - resource_type - state_issued - transaction_id BiotrackTransfer: type: object properties: resource_type: type: string readOnly: true required: - resource_type BiotrackVehicle: type: object properties: resource_type: type: string readOnly: true name: type: string color: type: string vin: type: string year: type: string transaction_id: type: integer required: - color - name - resource_type - transaction_id - vin - year BrandListingContent: type: object properties: sponsorships: $ref: '#/components/schemas/SponsorshipPayload' collection: type: array items: $ref: '#/components/schemas/BrandResource' required: - collection - sponsorships BrandResource: type: object description: Serializer for Brand resource. properties: resource_id: type: integer resource_name: type: string name: type: string title: Brand Name description: Name of the Brand maxLength: 400 description: type: string nullable: true description: An overview of the brand image: type: string format: uri owner: $ref: '#/components/schemas/CompanyResource' product_categories: type: array items: type: string readOnly: true badges: type: array items: $ref: '#/components/schemas/Badge' readOnly: true social_equity_programs: type: array items: type: string readOnly: true sponsored: type: boolean readOnly: true tagline: type: string nullable: true readOnly: true company_s2s_integration_type: type: string required: - badges - company_s2s_integration_type - image - name - owner - product_categories - resource_id - resource_name - social_equity_programs - sponsored - tagline BuyerNotificationSetting: type: object description: Buyer Notification Setting Serializer for managing email notifications. properties: order_accepted: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true order_rejected: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true order_fulfilled: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true order_shipped: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true order_complete: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true order_detail_changed: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true flower_available: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEvent' nullable: true BuyerNotificationSettingEvent: type: object properties: users: type: array items: $ref: '#/components/schemas/User' nullable: true BuyerNotificationSettingEventRequest: type: object properties: users: type: array items: $ref: '#/components/schemas/UserRequest' nullable: true BuyerNotificationSettingRequest: type: object description: Buyer Notification Setting Serializer for managing email notifications. properties: order_accepted: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true order_rejected: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true order_fulfilled: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true order_shipped: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true order_complete: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true order_detail_changed: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true flower_available: allOf: - $ref: '#/components/schemas/BuyerNotificationSettingEventRequest' nullable: true BuyerOrder: type: object description: Order serializer (buyer side). properties: id: type: string readOnly: true description: Order number generated by LeafLink short_id: type: string readOnly: true status: allOf: - $ref: '#/components/schemas/BuyerOrderStatusEnum' readOnly: true description: Order status type: type: string readOnly: true description: Classification of the license-type associated to the order buyer: $ref: '#/components/schemas/NestedCompany' seller: allOf: - $ref: '#/components/schemas/NestedOrderSeller' readOnly: true source: type: string readOnly: true created_by: type: object additionalProperties: {} readOnly: true created_on: type: string format: date-time readOnly: true last_edited_on: type: string format: date-time readOnly: true description: Date and time that the order was last modified currency: type: string readOnly: true line_items: type: array items: $ref: '#/components/schemas/NestedOrderedProduct' readOnly: true subtotal: type: number format: decimal description: Money amount rounded to two decimal places readOnly: true shipping_charge: type: number format: decimal description: Money amount rounded to two decimal places readOnly: true discount: type: number format: decimal description: Money amount rounded to two decimal places readOnly: true tax: type: number format: decimal description: Tax amount applied to the order readOnly: true total: type: number format: decimal description: The total amount of the order readOnly: true payable_to: type: object additionalProperties: {} readOnly: true payment_term: type: string readOnly: true payment_due_date: type: string format: date-time nullable: true description: Date that the Payment is due ship_date: type: string format: date-time nullable: true description: Date the Order is shipped shipping_details: type: string nullable: true description: Shipping details for an Order maxLength: 2000 is_delivered: type: boolean readOnly: true delivered_date: type: string format: date nullable: true notes: type: string nullable: true title: Order Notes description: Additional notes for an Order maxLength: 2000 sales_reps: type: array items: type: string readOnly: true delivery_address: type: object additionalProperties: {} readOnly: true required: - buyer - created_by - created_on - currency - delivery_address - discount - id - is_delivered - last_edited_on - line_items - payable_to - payment_term - sales_reps - seller - shipping_charge - short_id - source - status - subtotal - tax - total - type BuyerOrderStatusEnum: enum: - submitted - accepted - fulfilled - shipped - delivered - rejected - cancelled - backorder - complete - combined - draft type: string Choice: type: object description: Unified Strain Classification serializer. properties: value: type: string display_value: type: string required: - display_value - value CommandAcceptedResponse: type: object description: Response body for 202 Accepted when a command is queued. properties: command_id: type: integer description: Persisted command ID for status polling required: - command_id CommandStatusResponse: type: object description: Response body for GET .../commands//status. properties: command_id: type: integer task_id: type: string nullable: true result_status: allOf: - $ref: '#/components/schemas/ResultStatusEnum' description: Pending | Success | Failed result_metadata: type: object additionalProperties: type: string nullable: true description: Error/details when Failed result_on: type: string format: date-time nullable: true command_type: type: string description: Command type name required: - command_id - command_type - result_metadata - result_on - result_status - task_id CompanyApiKeyRequest: type: object properties: integration_id: type: integer nullable: true api_key: type: string minLength: 1 license_ids: type: array items: type: integer required: - api_key - license_ids CompanyCreateRequest: type: object properties: enable_seed_to_sale: type: boolean enable_hide_attached_packages: type: boolean enable_license_verification: type: boolean nullable: true enable_search_by_product_id: type: boolean api_configs: type: array items: $ref: '#/components/schemas/CompanyApiKeyRequest' included_location_ids: type: array items: type: integer excluded_lab_test_states: type: array items: type: string minLength: 1 required: - api_configs - enable_hide_attached_packages - enable_seed_to_sale - excluded_lab_test_states CompanyLicense: type: object description: Unified serializer for License models. properties: id: type: integer readOnly: true description: id for license number: type: string title: License Number description: License Number maxLength: 100 type: $ref: '#/components/schemas/CompanyLicenseType' display_type: type: string readOnly: true description: Display type classification: type: string readOnly: true description: Classification required: - classification - display_type - id - number - type CompanyLicenseType: type: object description: Unified serializer for LicenseType models. properties: id: type: integer readOnly: true type: type: string description: License Type maxLength: 100 display_type: type: string description: Type for display in the Leaflink frontend maxLength: 100 classification: type: string title: License Classification Type description: License Classification Type maxLength: 100 state: type: integer nullable: true require_ein: type: boolean description: EIN is required to register under this license type. has_medical_line_items: type: boolean description: This license type can sell medical line items. active_for_registration: type: boolean description: This license type is available for current registrations. description: type: string nullable: true description: Description or Notes maxLength: 5000 pre_2018_CA: type: boolean description: pre-2018 CA license. post_2018_CA: type: boolean description: post-2018 CA license. created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true state_abbr: type: string readOnly: true required: - classification - created_on - display_type - id - modified - state_abbr - type CompanyRequest: type: object description: API v2 serializer for the Company model. properties: address: type: string minLength: 1 announcement: type: string nullable: true description: Company Announcement maxLength: 2000 business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 business_license_name: type: string nullable: true description: Business License Name maxLength: 400 buyer: type: boolean title: Is a Buyer description: Company buys on LeafLink city: type: string minLength: 1 dba: type: string minLength: 1 description: DBA of company maxLength: 400 description: type: string has_accting: type: boolean title: Enable Accounting Service integration description: When true can access Accounting Services hide_attached_packages: type: boolean title: Hide attached packages? description: Hide seed to sale packages that are mapped to a LeafLink resource? image: type: string format: binary nullable: true name: type: string minLength: 1 description: Name of Company (Note this is not the same as Brand) maxLength: 400 seller: type: boolean title: Is a Seller description: Company sells on LeafLink slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ state: type: string minLength: 1 sts_enabled: type: boolean zipcode: type: string minLength: 1 available_languages: type: array items: {} default_language: type: array items: {} enable_post: type: boolean title: Enable LL PoST description: Whether this company has opted in to Payment on Sell Through default_payment_on_sell_through_payment_term: $ref: '#/components/schemas/PaymentTermRequest' is_payment_on_sell_through_default: type: boolean title: Default Payment on Sell-Through description: Is Payment on Sellthrough the default payment method always_share_sell_through_data: type: boolean title: Global override for companies_buyersellerpreferences.sell_through_data_shared description: Enable sell-through data sharing for all sellers in a buyer's CRM required: - address - available_languages - city - dba - default_language - default_payment_on_sell_through_payment_term - name - sts_enabled - zipcode CompanyResource: type: object description: Serializer for Company resource. properties: resource_id: type: integer resource_name: type: string name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ enable_vendor_menu: type: boolean readOnly: true required: - enable_vendor_menu - name - resource_id - resource_name CompanyTransportPartner: type: object description: Seriazlier for Company Transport Partner Model. properties: id: type: integer readOnly: true company: allOf: - $ref: '#/components/schemas/Company-unified-upstream-marketplace' readOnly: true transport_company: allOf: - $ref: '#/components/schemas/TransportCompany' readOnly: true required: - company - id - transport_company CompanyTransportPartnerRequest: type: object description: Seriazlier for Company Transport Partner Model. properties: transport_company_id: type: integer writeOnly: true company_id: type: integer writeOnly: true required: - transport_company_id CompanyWriteSuccessResponse: type: object properties: company_id: type: integer required: - company_id ComplianceLicense: type: object description: Serializer for License models via the v2 API properties: id: type: integer readOnly: true description: id for license number: type: string title: License Number description: License Number maxLength: 100 type: type: string readOnly: true description: Type display_type: type: string readOnly: true description: Display type classification: type: string readOnly: true description: Classification required: - classification - display_type - id - number - type ComplianceLicenseRequest: type: object description: Serializer for License models via the v2 API properties: number: type: string minLength: 1 title: License Number description: License Number maxLength: 100 required: - number Country: type: object description: "Serializer for Country models via the internal API\n\nNote:\n The code -> iso_code is alias is intentional" properties: id: type: integer readOnly: true abbr: type: string maxLength: 3 iso_code: type: string name: type: string maxLength: 50 required: - abbr - id - iso_code - name CountryRequest: type: object description: "Serializer for Country models via the internal API\n\nNote:\n The code -> iso_code is alias is intentional" properties: abbr: type: string minLength: 1 maxLength: 3 iso_code: type: string minLength: 1 name: type: string minLength: 1 maxLength: 50 required: - abbr - iso_code - name CreateInputRequest: type: object properties: name: type: string minLength: 1 tax_type: type: integer tax_rate: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ unit_type: type: integer product_category_ids: type: array items: type: integer required: - name - product_category_ids - tax_rate - tax_type - unit_type CreateUpdateSuccessResponse: type: object properties: id: type: integer required: - id CustomMenuItem: 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 description: ISO currency code. Defaults to the seller's currency. required: - amount - id 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 CustomerPaymentOptionSerializerV2: type: object description: External serializer class for Customers payment options. properties: id: type: integer is_default: type: boolean default: false payment_method: $ref: '#/components/schemas/ShortPaymentMethod' payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PaymentProgramEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/PaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' payment_term: $ref: '#/components/schemas/ShortPaymentTerm' CustomerPaymentOptionSerializerV2Request: type: object description: External serializer class for Customers payment options. properties: id: type: integer is_default: type: boolean default: false payment_method: $ref: '#/components/schemas/ShortPaymentMethodRequest' payment_method_id: type: integer writeOnly: true payment_program: nullable: true oneOf: - $ref: '#/components/schemas/PaymentProgramEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' payment_strategy: nullable: true oneOf: - $ref: '#/components/schemas/PaymentStrategyEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' payment_term: $ref: '#/components/schemas/ShortPaymentTermRequest' payment_term_id: type: integer writeOnly: true required: - payment_method_id - payment_term_id DestroyRequestRequest: type: object description: Request body for POST .../commands/destroy. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity - reason DiscussionCompany: type: object description: Company serializer properties: id: type: integer name: type: string nullable: true image_url: type: string nullable: true readOnly: true required: - id - image_url DiscussionCompanyRequest: type: object description: Company serializer properties: id: type: integer name: type: string nullable: true minLength: 1 required: - id DistributionZone: type: object description: 'Serializer for a Distribution Zone. `DistributionZone` replaces the Django App''s `zones_zone` where `zone_type=facility`.' properties: id: type: integer is_active: type: boolean name: type: string facilities: type: array items: $ref: '#/components/schemas/Facility' zip_codes: type: array items: $ref: '#/components/schemas/ZipCode' required: - facilities - id - is_active - name DistributionZoneCreateRequest: type: object description: 'Serializer to create a Distribution Zone. `DistributionZone` replaces the Django App''s `zones_zone` where `zone_type=facility`.' properties: owner_id: type: integer is_active: type: boolean name: type: string minLength: 1 facilities: type: array items: $ref: '#/components/schemas/FacilityRequest' zip_codes: type: array items: $ref: '#/components/schemas/ZipCodeRequest' required: - facilities - is_active - name - owner_id - zip_codes Driver: type: object description: serializer for Driver Model. properties: id: type: integer readOnly: true first_name: type: string title: First Name of Driver description: First Name maxLength: 100 last_name: type: string description: Last Name of Driver maxLength: 100 metrc_employee_id: type: string description: METRC Employee ID for Driver maxLength: 100 license_number: type: string description: License Number of Driver maxLength: 15 phone: type: string description: Phone Number of Driver maxLength: 15 is_active: type: boolean title: Active description: Is an active driver? transport_company_id: type: integer description: Transport company driver is associated to. readOnly: true required: - first_name - id - last_name - license_number - metrc_employee_id - phone - transport_company_id DriverRequest: type: object description: serializer for Driver Model. properties: first_name: type: string minLength: 1 title: First Name of Driver description: First Name maxLength: 100 last_name: type: string minLength: 1 description: Last Name of Driver maxLength: 100 metrc_employee_id: type: string minLength: 1 description: METRC Employee ID for Driver maxLength: 100 license_number: type: string minLength: 1 description: License Number of Driver maxLength: 15 phone: type: string minLength: 1 description: Phone Number of Driver maxLength: 15 is_active: type: boolean title: Active description: Is an active driver? required: - first_name - last_name - license_number - metrc_employee_id - phone Facility: type: object description: Serializer for a Facility. properties: id: type: integer name: type: string description: Name of the facility required: - id - name FacilityBatchMeasurementResponse: type: object description: Response shape for GET .../measurements/by-facility-and-batch. properties: facility_id: type: integer batch_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - batch_id - facility_id - measurements - updated_at FacilityCreateRequest: type: object description: Serializer for creating a facility. properties: company_id: type: integer name: type: string minLength: 1 maxLength: 100 description: type: string default: '' address: allOf: - $ref: '#/components/schemas/AddressInputRequest' nullable: true external_id: type: integer nullable: true is_archived: type: boolean default: false required: - company_id - name FacilityMeasurementResponse: type: object description: Response shape for GET .../measurements/by-facility. properties: facility_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - facility_id - measurements - updated_at FacilityRequest: type: object description: Serializer for a Facility. properties: id: type: integer name: type: string minLength: 1 description: Name of the facility required: - id - name FeaturedBrand: type: object description: Serializer for Product Spotlight brands properties: id: type: integer readOnly: true name: type: string title: Brand Name description: Name of the Brand maxLength: 400 image: type: string format: uri required: - id - image - name FeaturedProduct: type: object description: Serializer for Product Spotlight featured products properties: id: type: integer readOnly: true name: type: string title: Product description: Product Name maxLength: 400 company_id: type: string company_name: type: string enable_vendor_menu: type: boolean slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ image: type: string format: uri featured: type: boolean description: This product is featured for it's brand. spotlight_badges: type: array items: $ref: '#/components/schemas/SpotlightBadgesEnum' readOnly: true display_price: type: string readOnly: true display_unit_price: type: string readOnly: true display_price_unit: type: string readOnly: true unit_price: type: string readOnly: true base_unit_price: type: string readOnly: true sale_or_deal_price: type: number format: double discount_percent: oneOf: - type: integer - type: number format: double readOnly: true minimum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ description: Minimum Units per Order brand: $ref: '#/components/schemas/FeaturedBrand' sponsorship: allOf: - $ref: '#/components/schemas/Sponsorship' nullable: true readOnly: true pricing: type: object properties: wholesale_price: type: object properties: amount: type: number currency: type: string required: - amount - currency sale_price: type: object nullable: true properties: amount: type: number currency: type: string required: - amount - currency base_price: type: object properties: amount: type: number currency: type: string required: - amount - currency retail_price: type: object properties: amount: type: number currency: type: string required: - amount - currency effective_price: type: object properties: amount: type: number currency: type: string required: - amount - currency base_unit_price: type: object nullable: true properties: amount: type: number currency: type: string required: - amount - currency price_per_unit: type: object properties: amount: type: number currency: type: string required: - amount - currency required: - wholesale_price - sale_price - base_price - retail_price - effective_price - base_unit_price - price_per_unit readOnly: true sub_category: allOf: - $ref: '#/components/schemas/SubCategory' readOnly: true sold_in_bulk: type: boolean readOnly: true unit_multiplier: type: integer maximum: 2147483647 minimum: 1 description: How many individual units are sold when checking out by Unit of Measure display_min_order: oneOf: - type: number format: double - type: integer readOnly: true display_max_order: type: number format: double nullable: true readOnly: true required: - base_unit_price - brand - company_id - company_name - discount_percent - display_max_order - display_min_order - display_price - display_price_unit - display_unit_price - enable_vendor_menu - id - image - name - pricing - sale_or_deal_price - slug - sold_in_bulk - sponsorship - spotlight_badges - sub_category - unit_price FieldEnum: enum: - maximum_order - product_line_id - minimum_order - brand_id - retail_price - wholesale_price - listing_state - show_quantity - sale_price type: string FulfillmentRequestRequest: type: object description: Request body for POST .../commands/fulfillment. properties: product_id: type: integer minimum: 1 order_id: type: integer minimum: 1 order_product_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - created_by - order_id - order_product_id - product_id - quantity GrowTypeEnum: enum: - greenhouse - indoor - light-deprivation - sun type: string HoldRequestRequest: type: object description: Request body for POST .../commands/hold. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity - reason InternalCompanyAPIConfig: type: object description: Internal serializer for traceability API config. properties: integration_id: type: integer api_key: type: string readOnly: true username: type: string readOnly: true ubi: type: string readOnly: true licenses: type: array items: $ref: '#/components/schemas/InternalCompanyLicense' readOnly: true required: - api_key - integration_id - licenses - ubi - username InternalCompanyLicense: type: object description: Serializer for the Company License model. properties: id: type: integer readOnly: true company_license_id: type: integer readOnly: true number: type: string readOnly: true type: $ref: '#/components/schemas/InternalLicenseTypeResponse' issue_date: type: string format: date readOnly: true expiration_date: type: string format: date readOnly: true public: type: boolean description: Decides whether retailers are allowed to see this license archived: type: boolean document: type: string format: uri required: - company_license_id - document - expiration_date - id - issue_date - number - type InternalDriver: type: object description: Internal serializer for Driver Model. properties: id: type: integer readOnly: true first_name: type: string title: First Name of Driver description: First Name maxLength: 100 last_name: type: string description: Last Name of Driver maxLength: 100 metrc_employee_id: type: string description: METRC Employee ID for Driver maxLength: 100 license_number: type: string description: License Number of Driver maxLength: 15 phone: type: string description: Phone Number of Driver maxLength: 15 is_active: type: boolean title: Active description: Is an active driver? transport_company: allOf: - $ref: '#/components/schemas/InternalTransportCompany' readOnly: true required: - first_name - id - last_name - license_number - metrc_employee_id - phone - transport_company InternalDriverRequest: type: object description: Internal serializer for Driver Model. properties: first_name: type: string minLength: 1 title: First Name of Driver description: First Name maxLength: 100 last_name: type: string minLength: 1 description: Last Name of Driver maxLength: 100 metrc_employee_id: type: string minLength: 1 description: METRC Employee ID for Driver maxLength: 100 license_number: type: string minLength: 1 description: License Number of Driver maxLength: 15 phone: type: string minLength: 1 description: Phone Number of Driver maxLength: 15 is_active: type: boolean title: Active description: Is an active driver? required: - first_name - last_name - license_number - metrc_employee_id - phone InternalLicenseTypeResponse: type: object description: Internal serializer for LicenseTypes filtered by state. properties: id: type: integer readOnly: true type: type: string description: License Type maxLength: 100 display_type: type: string description: Type for display in the Leaflink frontend maxLength: 100 type_code: allOf: - $ref: '#/components/schemas/TypeCodeEnum' description: License Type shorthand code. classification: type: string title: License Classification Type description: License Classification Type maxLength: 100 has_medical_line_items: type: boolean description: This license type can sell medical line items. state: type: string readOnly: true required: - classification - display_type - id - state - type InternalLogisticsCompany: type: object description: Internal serializer for the Company model to be used by L3 endpoints. properties: id: type: integer readOnly: true display_name: type: string licenses: type: array items: $ref: '#/components/schemas/ComplianceLicense' readOnly: true delivery_address: allOf: - $ref: '#/components/schemas/Address' readOnly: true corporate_address: allOf: - $ref: '#/components/schemas/Address' readOnly: true required: - corporate_address - delivery_address - display_name - id - licenses InternalLogisticsCompanyRequest: type: object description: Internal serializer for the Company model to be used by L3 endpoints. properties: display_name: type: string minLength: 1 required: - display_name InternalTransportCompany: type: object description: Internal serializer for TransportCompany Model. properties: id: type: integer readOnly: true name: type: string nullable: true title: Transport Company description: Name maxLength: 255 medical_license_number: type: string nullable: true description: Medical License Number of Transport Company maxLength: 100 adult_use_license_number: type: string nullable: true description: Adult-Use License Number of Transport Company maxLength: 100 required: - id InternalTransportCompanyRequest: type: object description: Internal serializer for TransportCompany Model. properties: name: type: string nullable: true title: Transport Company description: Name maxLength: 255 medical_license_number: type: string nullable: true description: Medical License Number of Transport Company maxLength: 100 adult_use_license_number: type: string nullable: true description: Adult-Use License Number of Transport Company maxLength: 100 InternalVehicle: type: object description: Internal serializer for Vehicle Model. properties: id: type: integer readOnly: true make: type: string nullable: true title: Vehicle Make description: Vehicle Make maxLength: 255 model_year: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Model Year model_name: type: string nullable: true description: Vehicle Model Name maxLength: 255 license_number: type: string nullable: true description: License Number of Vehicle maxLength: 15 capacity: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Capacity has_air_conditioner: type: boolean description: Vehicle Has Air Conditioner required: - id InternalVehicleRequest: type: object description: Internal serializer for Vehicle Model. properties: make: type: string nullable: true title: Vehicle Make description: Vehicle Make maxLength: 255 model_year: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Model Year model_name: type: string nullable: true description: Vehicle Model Name maxLength: 255 license_number: type: string nullable: true description: License Number of Vehicle maxLength: 15 capacity: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Capacity has_air_conditioner: type: boolean description: Vehicle Has Air Conditioner InventoryManagementEnum: enum: - inherited - managed - unlimited type: string LicenseApiKeyRequest: type: object properties: api_key: type: string minLength: 1 required: - api_key LicenseCreateUpdateRequest: type: object properties: number: type: string minLength: 1 start_date: type: string format: date nullable: true end_date: type: string format: date type_id: type: integer required: - end_date - number - start_date - type_id LicenseTypeInternalResponse: type: object description: Serializer for LicenseType models via the internal API properties: active_for_registration: type: boolean description: This license type is available for current registrations. classification: type: string title: License Classification Type description: License Classification Type maxLength: 100 created_on: type: string format: date-time readOnly: true description: type: string nullable: true description: Description or Notes maxLength: 5000 display_type: type: string description: Type for display in the Leaflink frontend maxLength: 100 has_medical_line_items: type: boolean description: This license type can sell medical line items. id: type: integer readOnly: true modified: type: string format: date-time readOnly: true post_2018_CA: type: boolean description: post-2018 CA license. pre_2018_CA: type: boolean description: pre-2018 CA license. require_ein: type: boolean description: EIN is required to register under this license type. state_id: type: integer nullable: true readOnly: true type: type: string description: License Type maxLength: 100 required: - classification - created_on - display_type - id - modified - state_id - type LicensesCreateUpdateResponse: type: object description: Serializer for returning a list of created or updated license IDs. properties: license_ids: type: array items: type: integer required: - license_ids LightCompany: type: object description: Company serializer contains only basic fields. properties: id: type: integer readOnly: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ required: - id - name ListingStateEnum: enum: - Available - Archived - Sample - Backorder - Internal - Unavailable type: string MeasurementData: type: object description: Nested measurement quantities; field names match MeasurementData. properties: on_hand_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ available_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reserved_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ allocated_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ held_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ archived_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ required: - allocated_quantity - archived_quantity - available_quantity - held_quantity - on_hand_quantity - reserved_quantity Message: type: object description: Discussion Message serializer properties: id: type: integer readOnly: true message: type: string created_on: type: string format: date-time readOnly: true read_by_sender: type: string format: date-time readOnly: true read_by_recipient: type: string format: date-time readOnly: true author: allOf: - $ref: '#/components/schemas/Author' readOnly: true required: - author - created_on - id - message - read_by_recipient - read_by_sender MessageRequest: type: object description: Discussion Message serializer properties: message: type: string minLength: 1 required: - message MetrcDelivery: type: object description: Metrc-specific transfer fields serializer. properties: delivery_received_package_count: type: integer received_datetime: type: string format: date-time nullable: true estimated_departure_date_time: type: string format: date-time nullable: true estimated_arrival_time: type: string format: date-time nullable: true recipient_facility_name: type: string nullable: true shipment_type_name: type: string nullable: true rejected_packages_returned: type: boolean nullable: true gross_weight: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true gross_weight_unit_of_weight_name: type: string nullable: true required: - delivery_received_package_count - gross_weight - gross_weight_unit_of_weight_name - recipient_facility_name - rejected_packages_returned - shipment_type_name MetrcDeliveryPackage: type: object description: Metrc-specific DeliveryPackage fields serializer. properties: resource_type: type: string readOnly: true item_metrc_id: type: integer product_category_name: type: string nullable: true item_name: type: string nullable: true item_unit_volume: type: integer nullable: true item_unit_volume_unit_of_measure_name: type: string nullable: true item_unit_weight: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true item_unit_weight_unit_of_measure_name: type: string nullable: true item_serving_size: type: string nullable: true item_unit_quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true item_unit_quantity_unit_of_measure_name: type: string nullable: true source_package_label: type: string product_name: type: string nullable: true production_batch_number: type: integer nullable: true shipped_unit_of_measure_name: type: string nullable: true gross_unit_of_weight_name: type: string nullable: true received_unit_of_measure_name: type: string nullable: true is_wholesale: type: boolean nullable: true shipper_wholesale_price: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true receiver_wholesale_price: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true required: - gross_unit_of_weight_name - is_wholesale - item_metrc_id - item_name - item_serving_size - item_unit_quantity - item_unit_quantity_unit_of_measure_name - item_unit_volume - item_unit_volume_unit_of_measure_name - item_unit_weight - item_unit_weight_unit_of_measure_name - product_category_name - product_name - production_batch_number - received_unit_of_measure_name - receiver_wholesale_price - resource_type - shipped_unit_of_measure_name - shipper_wholesale_price - source_package_label MetrcDriver: type: object properties: resource_type: type: string readOnly: true common_driver_id: type: integer drivers_license_number: type: string employee_id: type: string required: - common_driver_id - drivers_license_number - employee_id - resource_type MetrcLocation: type: object description: Metrc specific location fields from the Traceability.metrc_location table. properties: common_location_id: type: integer description: ID of the common_location in the Traceability Service metrc_type_id: type: integer type_name: type: string for_harvests: type: boolean default: false for_packages: type: boolean default: false for_plant_batches: type: boolean default: false for_plants: type: boolean default: false required: - common_location_id - metrc_type_id - type_name MetrcPackage: type: object description: Metrc package fields from the Traceability.metrc_package table. properties: common_package_id: type: integer external_last_modified_at: type: string format: date-time item_id: type: integer item: $ref: '#/components/schemas/TraceabilityItem' has_lab_test_document: type: boolean item_from_facility_license_number: type: string item_from_facility_name: type: string note: type: string packaged_date: type: string format: date production_batch_number: type: string nullable: true received_date_time: type: string nullable: true received_from_facility_license_number: type: string nullable: true received_from_facility_name: type: string nullable: true received_from_manifest_number: type: string nullable: true result_cbc: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_cbg: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_cbga: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_cbn: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_delta10: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_delta8: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_thcv: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_thcva: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_total_thc: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ source_package_labels: type: array items: type: string source_production_batch_numbers: type: string nullable: true type: type: string nullable: true unit_of_measure: type: string nullable: true use_item_level_lab_result: type: boolean default: false required: - common_package_id - external_last_modified_at - has_lab_test_document - item - item_from_facility_license_number - item_from_facility_name - item_id - note - packaged_date - production_batch_number - received_date_time - received_from_facility_license_number - received_from_facility_name - received_from_manifest_number - result_cbc - result_cbg - result_cbga - result_cbn - result_delta10 - result_delta8 - result_thcv - result_thcva - result_total_thc - source_package_labels - source_production_batch_numbers - type - unit_of_measure MetrcTransfer: type: object description: Metrc-specific transfer fields serializer. properties: resource_type: type: string readOnly: true metrc_delivery_id: type: integer recipient_facility_name: type: string nullable: true shipment_type_name: type: string nullable: true shipment_license_type: type: string nullable: true shipment_transaction_type: type: string nullable: true received_datetime: type: string format: date-time nullable: true required: - resource_type MetrcVehicle: type: object properties: resource_type: type: string readOnly: true required: - resource_type NestedCompany: type: object description: Company serializer to use as a nested value. properties: id: type: integer readOnly: true name: type: string readOnly: true address: type: string readOnly: true unit_number: type: string readOnly: true city: type: string readOnly: true state: type: string readOnly: true zip: type: string readOnly: true phone: type: string nullable: true description: Phone Number of Company maxLength: 400 licenses: type: array items: $ref: '#/components/schemas/NestedLicense' readOnly: true slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ required: - address - city - id - licenses - name - state - unit_number - zip NestedLicense: type: object description: License serializer to use as a nested value. properties: id: type: integer readOnly: true number: type: string title: License Number description: License Number maxLength: 100 type: type: string classification: type: string required: - classification - id - number - type NestedOrderSeller: type: object description: Serializer for seller info on a buyer order. properties: id: type: integer readOnly: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 enable_seller_menu: type: boolean title: Seller opted into vendor menu description: This seller company has enabled the vendor menu for their company licenses: type: array items: $ref: '#/components/schemas/NestedLicense' readOnly: true required: - id - licenses - name NestedOrderedProduct: type: object description: Ordered Product serializer to use as a nested value. properties: product: $ref: '#/components/schemas/NestedProduct' quantity: type: number format: double readOnly: true sold_by: type: string readOnly: true price: type: number format: double readOnly: true total: type: number format: decimal description: Money amount rounded to two decimal places discount_info: type: object additionalProperties: {} nullable: true description: Information about discounts that were applied to this product. required: - price - product - quantity - sold_by - total NestedProduct: type: object description: Product serializer to use as a nested value. properties: id: type: integer readOnly: true sku: type: string nullable: true title: Customer SKU description: Stock Keeping Unit. A unique identifier for a Product, alternative to id. maxLength: 255 name: type: string title: Product description: Product Name maxLength: 400 brand: type: object additionalProperties: {} readOnly: true unit_of_measure: type: string unit_denomination: type: string base_unit_of_measure: type: string nullable: true readOnly: true base_units_per_unit: type: integer nullable: true readOnly: true sold_in_multiples: type: boolean readOnly: true units_per_case: type: integer nullable: true readOnly: true category: $ref: '#/components/schemas/ProductCategory' sub_category: $ref: '#/components/schemas/ProductSubCategory' is_ancillary: type: boolean required: - base_unit_of_measure - base_units_per_unit - brand - category - id - is_ancillary - name - sold_in_multiples - sub_category - units_per_case NotificationPreferences: type: object description: Schema for notification preferences payload. properties: name: type: string maxLength: 255 display_description: type: string maxLength: 255 items: type: array items: $ref: '#/components/schemas/NotificationTopic' readOnly: true required: - display_description - items - name NotificationTopic: type: object description: Serializer for NotificationTopic model. properties: name: type: string maxLength: 255 default_value: type: boolean description: type: string maxLength: 255 available_medium: type: array items: type: string readOnly: true required: - available_medium - default_value - description - name OrderPaymentUnifiedCustomer: type: object description: Serializer for company data focusing on name and ID. properties: name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 id: type: integer readOnly: true required: - id - name OrderPaymentUnifiedCustomerRequest: type: object description: Serializer for company data focusing on name and ID. properties: name: type: string minLength: 1 description: Name of Company (Note this is not the same as Brand) maxLength: 400 required: - name PackageAssignRequest: type: object description: Serializer for bulk assigning packages to products. properties: assignments: type: array items: $ref: '#/components/schemas/PackageAssignmentInputRequest' required: - assignments PackageAssignResponse: type: object description: Response serializer for assign packages - returns assigned packages. properties: results: type: array items: $ref: '#/components/schemas/UnifiedPackage' readOnly: true count: type: integer readOnly: true required: - count - results PackageAssignmentInputRequest: type: object description: Serializer for a single package-to-product assignment. properties: package_id: type: integer product_id: type: integer nullable: true required: - package_id - product_id PaginatedBrandListingContentList: type: object properties: count: type: integer example: 420 next: type: string nullable: true format: uri previous: type: string nullable: true format: uri content: $ref: '#/components/schemas/BrandListingContent' PaginatedBuyerNotificationSettingList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/BuyerNotificationSetting' PaginatedCompanyLicenseList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/CompanyLicense' PaginatedCompanyTransportPartnerList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/CompanyTransportPartner' PaginatedDistributionZoneList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/DistributionZone' PaginatedFacilityList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Facility' PaginatedFeaturedProductList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/FeaturedProduct' PaginatedInternalDriverList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/InternalDriver' PaginatedLicenseTypeInternalResponseList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/LicenseTypeInternalResponse' PaginatedMessageList: type: object properties: count: type: integer example: 420 next: type: string nullable: true format: uri previous: type: string nullable: true format: uri current_page: type: integer results: type: array items: $ref: '#/components/schemas/Message' PaginatedNotificationPreferencesList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/NotificationPreferences' PaginatedProductAuditLogResponse: type: object properties: count: type: integer description: Total number of entries next: type: string format: uri nullable: true description: URL to the next page previous: type: string format: uri nullable: true description: URL to the previous page results: type: array items: $ref: '#/components/schemas/ProductAuditLogEntry' required: - count - next - previous - results PaginatedProductCategoryList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/ProductCategory' PaginatedProductPromotionList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/ProductPromotion' PaginatedRecommendedProductList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/RecommendedProduct' PaginatedStateList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/State-unified-upstream-marketplace' PaginatedTraceabilityDriverList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityDriver' PaginatedTraceabilityItemList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityItem' PaginatedTraceabilityPackageList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityPackage' PaginatedTraceabilityRefreshRequestList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityRefreshRequest' PaginatedTraceabilityTemplateList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityTemplate' PaginatedTraceabilityTransferList: type: object properties: count: type: integer description: Total number of items matching the query max_count: type: integer nullable: true description: Maximum count limit, if applicable next: type: string nullable: true description: URL to the next page of results prev: type: string nullable: true description: URL to the previous page of results results: type: array items: $ref: '#/components/schemas/TraceabilityTransfer' required: - count - results PaginatedTraceabilityVehicleList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TraceabilityVehicle' PaginatedTransferCompanyList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TransferCompany' PaginatedTransportCompanyList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/TransportCompany' PaginatedUnifiedBuyerProductImageList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedBuyerProductImage' PaginatedUnifiedChatsList: type: object properties: count: type: integer example: 420 next: type: string nullable: true format: uri previous: type: string nullable: true format: uri current_page: type: integer results: type: array items: $ref: '#/components/schemas/UnifiedChats' PaginatedUnifiedCustomMenuList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedCustomMenu' PaginatedUnifiedCustomerGroupList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedCustomerGroup' PaginatedUnifiedL3OrderList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/UnifiedL3Order' PaginatedUnifiedMessagingFindSellerList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedMessagingFindSeller' PaginatedUnifiedOrderAsSalesInvoiceList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedOrderAsSalesInvoice' PaginatedUnifiedOrderPaymentList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedOrderPayment' PaginatedUnifiedPackageList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedPackage' PaginatedUnifiedProductAssignmentProductList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentProduct' PaginatedUnifiedProductAssignmentWithItemsList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentWithItems' PaginatedUnifiedProductDosageUnitList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductDosageUnit' PaginatedUnifiedProductImageList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductImage' PaginatedUnifiedProductLineList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductLine' PaginatedUnifiedProductMVPList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductMVP' PaginatedUnifiedProductSpecificationList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductSpecification' PaginatedUnifiedProductSubCategoryList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductSubCategory' PaginatedUnifiedProductTemplateList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedProductTemplate' PaginatedUnifiedRecommendedBrandList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedRecommendedBrand' PaginatedUnifiedRecommendedCompanyList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedRecommendedCompany' PaginatedUnifiedStrainList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedStrain' PaginatedUnifiedTaxScheduleList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedTaxSchedule' PaginatedUnifiedTraceabilityCompanyCustomerList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedTraceabilityCompanyCustomer' PaginatedUnifiedTraceabilityPackageOrdersList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedTraceabilityPackageOrders' PaginatedUnifiedUnitDenominationList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedUnitDenomination' PaginatedUnifiedUnitOfMeasureList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/UnifiedUnitOfMeasure' PaginatedVehicleList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/Vehicle' PatchedBulkChatUpdateRequest: type: object description: Chat status serializer properties: status: allOf: - $ref: '#/components/schemas/ChatStatusEnum' writeOnly: true chats: type: array items: type: integer writeOnly: true PatchedCompanyTransportPartnerRequest: type: object description: Seriazlier for Company Transport Partner Model. properties: transport_company_id: type: integer writeOnly: true company_id: type: integer writeOnly: true PatchedCompanyUpdateRequest: type: object properties: enable_seed_to_sale: type: boolean enable_hide_attached_packages: type: boolean enable_license_verification: type: boolean nullable: true enable_search_by_product_id: type: boolean api_configs: type: array items: $ref: '#/components/schemas/CompanyApiKeyRequest' included_location_ids: type: array items: type: integer excluded_lab_test_states: type: array items: type: string minLength: 1 PatchedDistributionZoneUpdateRequest: type: object description: 'Serializer to update a Distribution Zone. `DistributionZone` replaces the Django App''s `zones_zone` where `zone_type=facility`.' properties: id: type: integer owner_id: type: integer is_active: type: boolean name: type: string minLength: 1 facilities: type: array items: $ref: '#/components/schemas/FacilityRequest' zip_codes: type: array items: $ref: '#/components/schemas/ZipCodeRequest' PatchedFacilityPatchRequest: type: object description: Serializer for patching a facility. properties: name: type: string minLength: 1 maxLength: 100 description: type: string address_id: type: integer nullable: true external_id: type: integer nullable: true is_archived: type: boolean nullable: true PatchedInternalDriverRequest: type: object description: Internal serializer for Driver Model. properties: first_name: type: string minLength: 1 title: First Name of Driver description: First Name maxLength: 100 last_name: type: string minLength: 1 description: Last Name of Driver maxLength: 100 metrc_employee_id: type: string minLength: 1 description: METRC Employee ID for Driver maxLength: 100 license_number: type: string minLength: 1 description: License Number of Driver maxLength: 15 phone: type: string minLength: 1 description: Phone Number of Driver maxLength: 15 is_active: type: boolean title: Active description: Is an active driver? PatchedMessageReadRequest: type: object description: Discussion Message read serializer properties: read_by_sender_company: type: boolean read_by_recipient_company: type: boolean PatchedProductPromotionRequest: type: object properties: moloco_id: type: string minLength: 1 status: $ref: '#/components/schemas/PromotionStatusEnum' period: allOf: - $ref: '#/components/schemas/PeriodEnum' default: Weekly start_date: type: string format: date end_date: type: string format: date nullable: true max_cpc: type: object properties: amount: type: number currency: type: string max_budget: type: object properties: amount: type: number currency: type: string budget_per_period: type: object properties: amount: type: number currency: type: string approver_email: type: string format: email nullable: true minLength: 1 brand_id: type: integer writeOnly: true company_id: type: integer writeOnly: true billing_company_id: type: integer writeOnly: true products: type: array items: type: integer PatchedTemplateUpdateRequest: type: object properties: estimated_departure_datetime: type: string nullable: true minLength: 1 estimated_arrival_datetime: type: string nullable: true minLength: 1 shipment_type_name: type: string nullable: true minLength: 1 ll_order_id: type: integer nullable: true package_labels: type: array items: type: string minLength: 1 nullable: true packages: type: object additionalProperties: type: array items: type: string minLength: 1 nullable: true driver_id: type: integer nullable: true vehicle_id: type: integer nullable: true turn_by_turn_directions: type: string nullable: true minLength: 1 PatchedTraceabilityDriverCreateUpdateInputRequest: type: object properties: name: type: string minLength: 1 drivers_license_number: type: string nullable: true minLength: 1 birth_date: type: string format: date hire_date: type: string format: date email: type: string minLength: 1 state_issued: type: string nullable: true minLength: 1 PatchedTraceabilityRefreshProductsPackagesRequest: type: object properties: product_ids: type: array items: type: integer PatchedTraceabilityVehicleCreateUpdateInputRequest: type: object properties: license_plate_number: type: string minLength: 1 make: type: string minLength: 1 model: type: string minLength: 1 name: type: string minLength: 1 color: type: string minLength: 1 vin: type: string minLength: 1 year: type: string minLength: 1 PatchedTransferUpdateInputRequest: type: object properties: ll_order_id: type: integer ll_order_number: type: string minLength: 1 buyer_external_id: type: string minLength: 1 turn_by_turn_directions: type: string minLength: 1 estimated_arrival_datetime: type: string minLength: 1 estimated_departure_datetime: type: string minLength: 1 driver_id: type: integer vehicle_id: type: integer packages: type: array items: $ref: '#/components/schemas/TransferCreateUpdatePackageRequest' type: type: string minLength: 1 status: type: string minLength: 1 PatchedUnifiedAddressRequest: type: object description: Inherits AddressSerializer but sets the FK relation on the resource Model properties: address: type: string minLength: 1 description: Address maxLength: 400 unit_number: type: string title: 'Unit #' description: 'Unit #' maxLength: 400 city: type: string minLength: 1 description: City maxLength: 400 county: type: string description: County maxLength: 400 state: type: string minLength: 1 zipcode: type: string minLength: 1 description: Zipcode maxLength: 7 PatchedUnifiedBatchRequest: type: object description: Serializer for Batch - read/response only. properties: supplier: type: string nullable: true maxLength: 100 harvest_date: type: string format: date nullable: true expiration_date: type: string format: date nullable: true sku: type: string nullable: true maxLength: 100 status: type: string minLength: 1 maxLength: 20 append_thc: type: boolean default: false terpenes: type: array items: $ref: '#/components/schemas/TerpeneRequest' is_assigned: type: boolean default: false unit_of_measure: type: string nullable: true maxLength: 32 lab_test_unit_of_measure: type: string nullable: true maxLength: 32 item_name: type: string nullable: true item_category: type: string nullable: true total_thc: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true result_cbd: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true lab_result_file_id: type: integer nullable: true PatchedUnifiedChatsRequest: type: object description: Unified Chats serializer properties: topic: type: string minLength: 1 sender_company: $ref: '#/components/schemas/DiscussionCompanyRequest' recipient_company: $ref: '#/components/schemas/DiscussionCompanyRequest' creator: type: integer nullable: true description: Discussion Creator first_message: allOf: - $ref: '#/components/schemas/MessageRequest' writeOnly: true product_id: type: integer writeOnly: true nullable: true PatchedUnifiedCompanyCustomerStatusRequest: type: object description: Unified serializer for the CompanyCustomerStatus model. properties: state: type: string minLength: 1 title: Customer Status description: Customer Status State maxLength: 40 order: type: integer maximum: 2147483647 minimum: 1 title: Sort Order description: Sort order, lower is first. description: type: string nullable: true description: Description of status maxLength: 1500 owner: type: integer nullable: true title: Company description: The Company that created the custom status. is_stock: type: boolean title: Is a LeafLink Stock Status description: Is this a stock LeafLink status? hex_color: type: string nullable: true description: Hex color for customer status pattern: ^#[0-9a-fA-F]{6}$ maxLength: 40 PatchedUnifiedContactRequest: type: object description: Unified Contact serializer properties: owner: type: integer first_name: type: string minLength: 1 maxLength: 30 last_name: type: string maxLength: 30 email: type: string format: email nullable: true title: Email address maxLength: 255 secondary_email: type: string format: email nullable: true title: Secondary email address maxLength: 255 role: type: string nullable: true title: Position description: Position or role at company maxLength: 400 description: type: string nullable: true description: An overview of the contact maxLength: 1500 phone: type: string nullable: true description: Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 phone_extension: type: string nullable: true maxLength: 20 secondary_phone: type: string nullable: true description: Secondary Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 secondary_phone_extension: type: string nullable: true maxLength: 20 delete: type: boolean title: Contact deleted description: Is this Contact marked as deleted? PatchedUnifiedCustomerGroupRequest: type: object description: Serializer for Customer Group. properties: name: type: string minLength: 1 description: Name of the Customer Group. maxLength: 256 description: type: string nullable: true description: Description of the Customer Group. maxLength: 512 customers: type: array items: type: integer description: List of customer IDs associated with this customer group status: allOf: - $ref: '#/components/schemas/UnifiedCustomerGroupStatusEnum' description: Overall status of the company customer group. PatchedUnifiedCustomerRequest: type: object description: UnifiedCustomerSerializer inherits existing v2 CompanyCustomerSerializer for validations properties: managers: type: array items: type: integer phone: type: string nullable: true minLength: 1 phone_extension: type: string nullable: true minLength: 1 email: type: string format: email nullable: true title: Email address maxLength: 255 website: type: string nullable: true minLength: 1 next_contact_date: type: string format: date nullable: true tier: nullable: true title: Company customer tier description: Company customer tier minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/TierEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' name: type: string minLength: 1 license_number: type: string minLength: 1 old_license_number: type: string nullable: true title: Old License Number (stored after a transfer) description: Old License Number (stored after a transfer) maxLength: 100 is_license_inactive: type: boolean default: false description: License inactive or transferred for this customer business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 directions: type: string nullable: true description: (Driving) Directions to the Customer location for deliveries maxLength: 6000 delivery_preferences: type: string nullable: true minLength: 1 shipping_charge: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Additional Shipping Charge brand: type: string nullable: true title: Brand Name description: Known Brand name of Company or Parent Company maxLength: 400 business_license_name: type: string nullable: true minLength: 1 description: type: string nullable: true minLength: 1 notes: type: string nullable: true description: Other information on customer maxLength: 3000 is_archived: type: boolean default: false description: Is the customer a relevent part of your CRM is_delinquent: type: boolean default: false description: Is this account delinquent on billing discount_percent: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,4})?$ description: Discount percent for orders of company customer external_ids: type: object additionalProperties: type: string description: External IDs mapped by integration name owner_id: type: integer description: Owner ID for customer partner_id: type: integer description: Partner ID for customer price_schedule_id: type: integer description: Price schedule ID for the customer service_zone_id: type: integer writeOnly: true description: Service zone ID for the customer status_id: type: integer writeOnly: true description: Status ID for the customer PatchedUnifiedExpressProductMenuRequest: type: object properties: brand: type: integer title: Express Menu Brand price_schedule: type: integer title: Public Menu Price Schedule products: type: array items: type: integer title: Public Menu Products title: Public Menu Products PatchedUnifiedProductLineCreateRequest: type: object description: Serializer for creating product lines. properties: name: type: string minLength: 1 title: Product Line description: Name of Product Line maxLength: 100 brand_id: type: integer writeOnly: true description: Brand ID for the product line menu_position: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product Line Menu Position description: The position of ordering product_ids: type: array items: type: integer writeOnly: true description: List of product IDs associated with this product line PatchedUnifiedProductMVPRequest: type: object description: Unified Product serializer. properties: sku: type: string nullable: true minLength: 1 title: Customer SKU description: Stock Keeping Unit. A unique identifier for a Product, alternative to id. maxLength: 255 seller_id: type: integer writeOnly: true description: Company who is selling the Product brand_id: type: integer writeOnly: true description: Brand ID for the product product_line_id: type: integer writeOnly: true description: Product Line ID of product name: type: string minLength: 1 title: Product description: Product Name maxLength: 400 license_id: type: integer writeOnly: true nullable: true description: License ID for the product category_id: type: integer writeOnly: true description: Product category ID for the product sub_category_id: type: integer writeOnly: true description: Product sub-category ID for the product unit_of_measure_id: type: integer writeOnly: true description: Base unit of measure ID for this product unit_denomination_id: type: integer writeOnly: true description: The ID of amount of individual products in one sale unit listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. description: type: string minLength: 1 description: Brand Description maxLength: 7000 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace strains: type: array items: type: integer title: Strains of a product title: Strains of a product description: The cannabis strains associated with this product strain_classification: oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' is_medical_line_item: type: boolean description: Is this a medical line item? grow_type: description: The type of grow operation for the flower product oneOf: - $ref: '#/components/schemas/GrowTypeEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product threshold: allOf: - $ref: '#/components/schemas/ThresholdRequest' nullable: true description: Threshold configuration for inventory alerts product_specification_items: type: array items: $ref: '#/components/schemas/UnifiedProductSpecificationItemRequest' varieties: type: array items: $ref: '#/components/schemas/UnifiedSubProductMVPRequest' 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 nullable: true 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. PatchedUnifiedProductTemplateRequest: type: object description: 'Base serializer class to rename created_on and modified fields to follow new naming standard of created_date and modified_date' properties: template_name: type: string minLength: 1 description: Template Name maxLength: 400 listing_state: nullable: true oneOf: - $ref: '#/components/schemas/ListingStateEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' inventory_management: title: Product Inventory Management description: The state that determines how inventory is handled for the Product oneOf: - $ref: '#/components/schemas/InventoryManagementEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' unit_of_measure: type: integer nullable: true description: Unit of measure sell_in_unit_of_measure: type: integer nullable: true description: Unit of measure that buyers see sell_in_multiples: type: boolean default: false unit_multiplier: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many individual units are sold when checking out by Unit of Measure unit_denomination: type: integer nullable: true description: The denomination of unit for the Product. base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product template retail_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Manufacturer's Suggested Retail Price (MSRP) wholesale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Max Wholesale Price sale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Sale Price minimum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Minimum Units per Order maximum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Maximum Units per Order description: type: string nullable: true description: Brand Description maxLength: 7000 category: type: integer nullable: true sub_category: type: integer nullable: true description: The sub-category of the Product (e.g. Bulk Flower, Live Resin, etc) seller: type: integer title: Manufacturer description: Company who is selling the Product brand: type: integer nullable: true description: Brand of product product_line: type: integer nullable: true description: Product Line of product strain_classification: nullable: true oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' license: type: integer nullable: true SHOW_QUANTITY: type: boolean nullable: true title: Show Product quantity description: Show Product Quantity AVAILABLE_FOR_SAMPLES: type: boolean nullable: true description: This product is available for samples threshold_value: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product threshold value description: When Product inventory reaches below this value, take various actions threshold_action: allOf: - $ref: '#/components/schemas/ThresholdActionEnum' title: Product threshold action description: Action to take when Product inventory reaches below a specified value is_medical_line_item: type: boolean description: Is this a medical line item? allow_fractional_quantities: type: boolean nullable: true description: This product quantity can contain decimal places PatchedUpdateInputRequest: type: object properties: name: type: string nullable: true minLength: 1 tax_type: type: integer nullable: true tax_rate: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ nullable: true unit_type: type: integer nullable: true product_category_ids: type: array items: type: integer nullable: true PatchedVehicleRequest: type: object description: Internal serializer for Vehicle Model. properties: make: type: string nullable: true title: Vehicle Make description: Vehicle Make maxLength: 255 model_year: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Model Year model_name: type: string nullable: true description: Vehicle Model Name maxLength: 255 license_number: type: string nullable: true description: License Number of Vehicle maxLength: 15 capacity: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Capacity has_air_conditioner: type: boolean description: Vehicle Has Air Conditioner PaymentMethod: type: object description: Serialize payment method. properties: id: type: integer readOnly: true created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true method: type: string title: Payment Method Name description: Name of the Payment Method maxLength: 80 description: type: string title: Payment Method Description description: Description of the Payment Method maxLength: 400 required: - created_on - description - id - method - modified PaymentMethodRequest: type: object description: Serialize payment method. properties: method: type: string minLength: 1 title: Payment Method Name description: Name of the Payment Method maxLength: 80 description: type: string minLength: 1 title: Payment Method Description description: Description of the Payment Method maxLength: 400 required: - description - method PaymentProgramEnum: enum: - direct - flexible type: string PaymentStrategyEnum: enum: - direct - factored - reverse_factored type: string PaymentTerm: type: object description: Serialize payment term. properties: id: type: integer readOnly: true created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true term: type: string title: Payment Term Name description: Name of the Payment Term maxLength: 80 description: type: string title: Payment Term description description: Description of the Payment Term maxLength: 400 days: type: integer required: - created_on - days - description - id - modified - term PaymentTermRequest: type: object description: Serialize payment term. properties: term: type: string minLength: 1 title: Payment Term Name description: Name of the Payment Term maxLength: 80 description: type: string minLength: 1 title: Payment Term description description: Description of the Payment Term maxLength: 400 days: type: integer required: - days - description - term PaymentTypeEnum: enum: - other - cash - check - credit - trade - ach - wire - cashier - leaflink_direct_payment - leaflink_flexible_payment - leaflink_financial type: string PeriodEnum: enum: - Daily - Weekly - Monthly type: string PolymorphicCreateUpdateTransferResponse: oneOf: - $ref: '#/components/schemas/TraceabilityTransfer' discriminator: propertyName: resource_type mapping: TraceabilityTransfer: '#/components/schemas/TraceabilityTransfer' PolymorphicDeliveryPackageVendorFields: oneOf: - $ref: '#/components/schemas/MetrcDeliveryPackage' - $ref: '#/components/schemas/BiotrackDeliveryPackage' discriminator: propertyName: resource_type mapping: MetrcDeliveryPackageFields: '#/components/schemas/MetrcDeliveryPackage' BiotrackDeliveryPackageFields: '#/components/schemas/BiotrackDeliveryPackage' PolymorphicDriverVendorFields: oneOf: - $ref: '#/components/schemas/MetrcDriver' - $ref: '#/components/schemas/BiotrackDriver' discriminator: propertyName: resource_type mapping: MetrcDriverFields: '#/components/schemas/MetrcDriver' BiotrackDriverFields: '#/components/schemas/BiotrackDriver' PolymorphicTransferVendorFields: oneOf: - $ref: '#/components/schemas/MetrcTransfer' - $ref: '#/components/schemas/BiotrackTransfer' discriminator: propertyName: resource_type mapping: MetrcTransferFields: '#/components/schemas/MetrcTransfer' BiotrackTransferFields: '#/components/schemas/BiotrackTransfer' PolymorphicVehicleVendorFields: oneOf: - $ref: '#/components/schemas/MetrcVehicle' - $ref: '#/components/schemas/BiotrackVehicle' discriminator: propertyName: resource_type mapping: MetrcVehicleFields: '#/components/schemas/MetrcVehicle' BiotrackVehicleFields: '#/components/schemas/BiotrackVehicle' PricingStrategyInputRequest: type: object description: Serializer for pricing strategy input (nested in batch update). properties: product_id: type: integer price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ customer_group_id: type: integer nullable: true required: - price - product_id ProductAuditLogEntry: type: object description: Polymorphic serializer for product audit log entries. properties: log_type: type: string readOnly: true created_on: type: string format: date-time nullable: true readOnly: true editor: type: object additionalProperties: {} nullable: true readOnly: true source: type: string readOnly: true source_detail: type: string readOnly: true source_data: type: object additionalProperties: {} nullable: true readOnly: true changed_fields: type: object additionalProperties: {} readOnly: true product: type: object additionalProperties: {} nullable: true readOnly: true inventory_item: type: object additionalProperties: {} nullable: true readOnly: true required: - changed_fields - created_on - editor - inventory_item - log_type - product - source - source_data - source_detail ProductBatchMeasurementResponse: type: object description: Response shape for GET .../measurements/by-product-and-batch. properties: product_id: type: integer batch_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - batch_id - measurements - product_id - updated_at ProductBulkUpdateResponse: type: object properties: updated: type: integer expected: type: integer errors: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ProductBulkUpdateResponseErrorDetail' required: - errors - expected - updated ProductBulkUpdateResponseErrorDetail: type: object properties: products: type: array items: $ref: '#/components/schemas/ProductBulkUpdateResponseProduct' message: type: string required: - message - products ProductBulkUpdateResponseProduct: type: object properties: id: type: integer name: type: string display_name: type: string required: - display_name - id - name ProductCategory: type: object description: Product category serializer. properties: id: type: integer readOnly: true name: type: string title: Category description: Name of Category maxLength: 40 slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ description: type: string title: Body description: Brand Description maxLength: 400 required: - description - id - name - slug ProductFacilityBatchMeasurementResponse: type: object description: Response shape for GET .../measurements/by-product-facility-and-batch. properties: product_id: type: integer facility_id: type: integer batch_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - batch_id - facility_id - measurements - product_id - updated_at ProductFacilityMeasurementResponse: type: object description: Response shape for GET .../measurements/by-product-and-facility. properties: product_id: type: integer facility_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - facility_id - measurements - product_id - updated_at ProductMeasurementResponse: type: object description: Response shape for GET .../measurements/by-product. properties: product_id: type: integer measurements: $ref: '#/components/schemas/MeasurementData' updated_at: type: string format: date-time required: - measurements - product_id - updated_at ProductPromotion: type: object properties: id: type: integer readOnly: true moloco_id: type: string status: $ref: '#/components/schemas/PromotionStatusEnum' period: allOf: - $ref: '#/components/schemas/PeriodEnum' default: Weekly start_date: type: string format: date end_date: type: string format: date nullable: true max_cpc: type: object properties: amount: type: number currency: type: string max_budget: type: object properties: amount: type: number currency: type: string budget_per_period: type: object properties: amount: type: number currency: type: string approver_email: type: string format: email nullable: true brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true company: allOf: - $ref: '#/components/schemas/UnifiedCompany' readOnly: true billing_company: allOf: - $ref: '#/components/schemas/UnifiedCompany' readOnly: true products: type: array items: type: integer required: - billing_company - brand - budget_per_period - company - id - max_budget - max_cpc - products - start_date - status ProductPromotionRequest: type: object properties: moloco_id: type: string minLength: 1 status: $ref: '#/components/schemas/PromotionStatusEnum' period: allOf: - $ref: '#/components/schemas/PeriodEnum' default: Weekly start_date: type: string format: date end_date: type: string format: date nullable: true max_cpc: type: object properties: amount: type: number currency: type: string max_budget: type: object properties: amount: type: number currency: type: string budget_per_period: type: object properties: amount: type: number currency: type: string approver_email: type: string format: email nullable: true minLength: 1 brand_id: type: integer writeOnly: true company_id: type: integer writeOnly: true billing_company_id: type: integer writeOnly: true products: type: array items: type: integer required: - brand_id - budget_per_period - company_id - max_budget - max_cpc - products - start_date - status ProductSubCategory: type: object description: Product subcategory serializer. properties: id: type: integer readOnly: true name: type: string description: Name of Sub-Category maxLength: 40 slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ description: type: string title: Body description: Description of Sub-Category maxLength: 400 category: type: integer description: The parent category of this sub-category required: - category - id - name - slug PutawayRequestRequest: type: object description: Request body for POST .../commands/putaway. properties: product_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 created_by: type: integer minimum: 0 description: User ID the command is on behalf of (e.g. company staff). metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity RebuildProjectionsRequestRequest: type: object description: 'Request body for POST .../commands/rebuild-projections. Accepts any combination of seller_ids, product_ids, facility_ids, and batch_ids. At least one filter list must be non-empty. seller_ids are expanded to their products at the view layer (Django ORM) before stream lookup.' properties: seller_ids: type: array items: type: integer minimum: 1 product_ids: type: array items: type: integer minimum: 1 facility_ids: type: array items: type: integer minimum: 1 batch_ids: type: array items: type: integer minimum: 1 RebuildProjectionsResponse: type: object description: Response body for POST .../commands/rebuild-projections. properties: stream_count: type: integer tasks_queued: type: integer streams: type: array items: $ref: '#/components/schemas/RebuildProjectionsStream' required: - stream_count - streams - tasks_queued RebuildProjectionsStream: type: object description: Single stream identifier in the rebuild-projections response. properties: product_id: type: integer facility_id: type: integer batch_id: type: integer required: - batch_id - facility_id - product_id RecommendedProduct: type: object description: Serializer for Recommended Products properties: id: type: integer readOnly: true name: type: string title: Product description: Product Name maxLength: 400 company_id: type: string company_name: type: string enable_vendor_menu: type: boolean slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ image: type: string format: uri featured: type: boolean description: This product is featured for it's brand. spotlight_badges: type: array items: $ref: '#/components/schemas/SpotlightBadgesEnum' readOnly: true display_price: type: string readOnly: true display_unit_price: type: string readOnly: true display_price_unit: type: string readOnly: true unit_price: type: string readOnly: true base_unit_price: type: string readOnly: true sale_or_deal_price: type: number format: double discount_percent: oneOf: - type: integer - type: number format: double readOnly: true minimum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ description: Minimum Units per Order brand: $ref: '#/components/schemas/FeaturedBrand' sponsorship: allOf: - $ref: '#/components/schemas/Sponsorship' nullable: true readOnly: true pricing: type: object properties: wholesale_price: type: object properties: amount: type: number currency: type: string required: - amount - currency sale_price: type: object nullable: true properties: amount: type: number currency: type: string required: - amount - currency base_price: type: object properties: amount: type: number currency: type: string required: - amount - currency retail_price: type: object properties: amount: type: number currency: type: string required: - amount - currency effective_price: type: object properties: amount: type: number currency: type: string required: - amount - currency base_unit_price: type: object nullable: true properties: amount: type: number currency: type: string required: - amount - currency price_per_unit: type: object properties: amount: type: number currency: type: string required: - amount - currency required: - wholesale_price - sale_price - base_price - retail_price - effective_price - base_unit_price - price_per_unit readOnly: true sub_category: allOf: - $ref: '#/components/schemas/SubCategory' readOnly: true sold_in_bulk: type: boolean readOnly: true unit_multiplier: type: integer maximum: 2147483647 minimum: 1 description: How many individual units are sold when checking out by Unit of Measure display_min_order: oneOf: - type: number format: double - type: integer readOnly: true display_max_order: type: number format: double nullable: true readOnly: true score: type: number format: double readOnly: true is_on_purchase_list: type: boolean required: - base_unit_price - brand - company_id - company_name - discount_percent - display_max_order - display_min_order - display_price - display_price_unit - display_unit_price - enable_vendor_menu - id - image - is_on_purchase_list - name - pricing - sale_or_deal_price - score - slug - sold_in_bulk - sponsorship - spotlight_badges - sub_category - unit_price ReconcileRequestRequest: type: object description: Request body for POST .../commands/reconcile. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 to_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - reason - to_quantity Reservation: type: object description: Serializes a ``ReservationItem`` for the API response. properties: product_id: type: integer facility_id: type: integer batch_id: type: integer quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ allocated_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ fulfilled_quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ order_id: type: integer nullable: true created_at: type: string format: date-time required: - allocated_quantity - batch_id - created_at - facility_id - fulfilled_quantity - order_id - product_id - quantity ResultStatusEnum: enum: - Pending - Success - Failed type: string SelectorEnum: enum: - product_line - product type: string ServiceZone: type: object description: Serializer for the ServiceZone model. properties: id: type: integer readOnly: true name: type: string title: Service Zone Name description: Service Zone Name maxLength: 300 description: type: string nullable: true description: Detailed description of the service zone. maxLength: 1500 company: type: integer required: - company - id - name ServiceZoneRequest: type: object description: Serializer for the ServiceZone model. properties: name: type: string minLength: 1 title: Service Zone Name description: Service Zone Name maxLength: 300 description: type: string nullable: true description: Detailed description of the service zone. maxLength: 1500 company: type: integer required: - company - name ShortPaymentMethod: type: object description: Short serializer for payment methods. properties: id: type: integer readOnly: true method: type: string title: Payment Method Name description: Name of the Payment Method maxLength: 80 required: - id - method ShortPaymentMethodRequest: type: object description: Short serializer for payment methods. properties: method: type: string minLength: 1 title: Payment Method Name description: Name of the Payment Method maxLength: 80 required: - method ShortPaymentTerm: type: object description: Short serializer for payment terms. properties: id: type: integer readOnly: true term: type: string title: Payment Term Name description: Name of the Payment Term maxLength: 80 days: type: integer code: type: string nullable: true title: Payment Term (code) description: Term of Payment (code) maxLength: 20 required: - days - id - term ShortPaymentTermRequest: type: object description: Short serializer for payment terms. properties: term: type: string minLength: 1 title: Payment Term Name description: Name of the Payment Term maxLength: 80 days: type: integer code: type: string nullable: true title: Payment Term (code) description: Term of Payment (code) maxLength: 20 required: - days - term SkyscraperBrand: type: object description: Serializer for Brand resource. properties: id: type: string name: type: string image_url: type: string format: uri company_name: type: string company_id: type: string enable_vendor_menu: type: boolean required: - company_id - company_name - enable_vendor_menu - id - image_url - name SkyscraperSponsorshipContent: type: object description: Serializer for an individual Skyscraper style sponsorship result. properties: ad_id: type: string campaign_id: type: string creative: type: object additionalProperties: {} readOnly: true creative_id: type: string custom_text: type: string page_load_id: type: string placement_name: type: string products: type: array items: $ref: '#/components/schemas/SkyscraperSponsorshipItem' readOnly: true provider_id: type: string target_company_id: type: integer target_user_id: type: integer banner: type: object additionalProperties: {} brand: allOf: - $ref: '#/components/schemas/SkyscraperBrand' nullable: true required: - ad_id - banner - brand - campaign_id - creative - creative_id - custom_text - page_load_id - placement_name - products - provider_id - target_company_id - target_user_id SkyscraperSponsorshipItem: type: object description: Serializer for ll.ads.data_models.SkyscraperSponsorshipItem properties: id: type: string impression_url: type: string format: uri click_url: type: string format: uri display_price: type: string image_url: type: string format: uri name: type: string required: - click_url - display_price - id - image_url - impression_url - name SourceTypeEnum: enum: - production_batch - source_label type: string SplitNameEnum: enum: - commerce__accept_payments_payment_events - fire_pod__mp_auto_pausing - fire_pod__mp_auto_pausing_update - traceability_pod__automated_metrc_license_validation - cop_pod__bank_linking - traceability_pod__biotrack_new_york - bme_enable_crm_customers - bme_enable_order_actions - brands-products-perf - inte_pod__bulk_import_from_metrc - traceability__biotrack_buyer_onboarding - ce_pod__buyer_metrc_onboarding - buyer_settings_store_requests_vue - retention_pod__buyer_reports - can_access_company_group_features - ret_pod__split_orders - cart__optimized_cart_query - com_pod__cart_payment_cta - com_pod__cart_payment_option - com_pod__reverse_factor - code_freeze_temp - custom_menus__edit_product_redirect - spliff_pod__collab_notification - fire_pod__delinquent_lockdown - fire_pod__direct_pay_enabled_states - fire_pod__post_settings - logistics_pod__enable_customers_to_select_transport_partner - enable_logistics_permission_to_all_users - force_segment_reporting - ret_pod__order_minimum - inbound_shipments_create - traceability_pod__integration_settings - npr_pod__integrations_seller - orders_internal_approvals - saas_pod__internal_product_id - inventory_pod__inventory_batch_support - inventory_negative_available_quantity_logging - traceability_pod__v2_inventory - inventory_v2_company_rollout - inventory_pod__inventory_warehouse_support - integrations_pod__license_sync_sf_case_creation - live_inventory_indicator - manage_license__add_integration__buyer - michigan_affiliated_orders_enabled - messaging_notifications - fire_pod__order_adjustments_event_consumer - int_pod__order_pdf_report - order_summary_ancillary_enhancements - gro_pod__order_summary_invitations - order_summary_receipt_log - pause_inactive_license_companies - cop_pod__payments_exploration_dashboard_widget - collab_pod__payments_in_crm - post_automated_payments__calculation - fire_pod__enable_post_weekly_sum_view - fire_pod__post_package_services - post_sts_unit_conversion - gro_pod__printed_menu - replenishment_catalog_page - seed_to_sale_coa_download - traceability_pod__experiment__reconcile_inventory - collab_pod__sales_rep_email_actions - trace_pod__search_by_assigned_packages - seed_to_sale__buyer_nav - traceability__biotrack_seller_attach_manifest - sgo_orders_debug_logging - manage_licenses__new_metrc_flow - settings__tax_schedules - sips_pod__mp_license_service_api - ssr_iframe - logistics_pod__submit_order_via_csv_upload - supply_chain_delivered_status - cop_pod__terms_and_conditions - traceability_pod__v2_batches - traceability_pod__v2_batches_orders_and_menus - traceability_pod__v2_batches_source_label - transport_pod__shipping_set_order_payments - transport_pod__ma_next_day_delivery - plat_arch_pod__unified_hijacking - ads_moloco_shop_brands_sidebar_banners - vue_buyer_notification_settings - vue_inventory_product_add_edit_page type: string SplitTreatment: type: object description: 'Serializer for Split.io overrides request Shape of the request is { ''commerce__accept_payments_payment_events'': ''on'', ''fire_pod__mp_auto_pausing'': ''on'' }' properties: commerce__accept_payments_payment_events: type: string fire_pod__mp_auto_pausing: type: string fire_pod__mp_auto_pausing_update: type: string traceability_pod__automated_metrc_license_validation: type: string cop_pod__bank_linking: type: string traceability_pod__biotrack_new_york: type: string bme_enable_crm_customers: type: string bme_enable_order_actions: type: string brands-products-perf: type: string inte_pod__bulk_import_from_metrc: type: string traceability__biotrack_buyer_onboarding: type: string ce_pod__buyer_metrc_onboarding: type: string buyer_settings_store_requests_vue: type: string retention_pod__buyer_reports: type: string can_access_company_group_features: type: string ret_pod__split_orders: type: string cart__optimized_cart_query: type: string com_pod__cart_payment_cta: type: string com_pod__cart_payment_option: type: string com_pod__reverse_factor: type: string code_freeze_temp: type: string custom_menus__edit_product_redirect: type: string spliff_pod__collab_notification: type: string fire_pod__delinquent_lockdown: type: string fire_pod__direct_pay_enabled_states: type: string fire_pod__post_settings: type: string logistics_pod__enable_customers_to_select_transport_partner: type: string enable_logistics_permission_to_all_users: type: string force_segment_reporting: type: string ret_pod__order_minimum: type: string inbound_shipments_create: type: string traceability_pod__integration_settings: type: string npr_pod__integrations_seller: type: string orders_internal_approvals: type: string saas_pod__internal_product_id: type: string inventory_pod__inventory_batch_support: type: string inventory_negative_available_quantity_logging: type: string traceability_pod__v2_inventory: type: string inventory_v2_company_rollout: type: string inventory_pod__inventory_warehouse_support: type: string integrations_pod__license_sync_sf_case_creation: type: string live_inventory_indicator: type: string manage_license__add_integration__buyer: type: string michigan_affiliated_orders_enabled: type: string messaging_notifications: type: string fire_pod__order_adjustments_event_consumer: type: string int_pod__order_pdf_report: type: string order_summary_ancillary_enhancements: type: string gro_pod__order_summary_invitations: type: string order_summary_receipt_log: type: string pause_inactive_license_companies: type: string cop_pod__payments_exploration_dashboard_widget: type: string collab_pod__payments_in_crm: type: string post_automated_payments__calculation: type: string fire_pod__enable_post_weekly_sum_view: type: string fire_pod__post_package_services: type: string post_sts_unit_conversion: type: string gro_pod__printed_menu: type: string replenishment_catalog_page: type: string seed_to_sale_coa_download: type: string traceability_pod__experiment__reconcile_inventory: type: string collab_pod__sales_rep_email_actions: type: string trace_pod__search_by_assigned_packages: type: string seed_to_sale__buyer_nav: type: string traceability__biotrack_seller_attach_manifest: type: string sgo_orders_debug_logging: type: string manage_licenses__new_metrc_flow: type: string settings__tax_schedules: type: string sips_pod__mp_license_service_api: type: string ssr_iframe: type: string logistics_pod__submit_order_via_csv_upload: type: string supply_chain_delivered_status: type: string cop_pod__terms_and_conditions: type: string traceability_pod__v2_batches: type: string traceability_pod__v2_batches_orders_and_menus: type: string traceability_pod__v2_batches_source_label: type: string transport_pod__shipping_set_order_payments: type: string transport_pod__ma_next_day_delivery: type: string plat_arch_pod__unified_hijacking: type: string ads_moloco_shop_brands_sidebar_banners: type: string vue_buyer_notification_settings: type: string vue_inventory_product_add_edit_page: type: string Sponsorship: type: object description: Serializer for ll.ads.data_models.Sponsorship properties: rank: type: integer provider_id: type: string ad_id: type: string campaign_id: type: string target_url: type: string click_url: type: string creative: type: object additionalProperties: {} impression_url: type: string items: type: array items: $ref: '#/components/schemas/SponsorshipItem' page_load_id: type: string placement: $ref: '#/components/schemas/AdPlacement' target_company_id: type: integer target_user_id: type: integer target_resource_id: type: string target_resource_name: type: string required: - ad_id - campaign_id - click_url - creative - impression_url - items - page_load_id - placement - provider_id - rank - target_company_id - target_resource_id - target_resource_name - target_url - target_user_id SponsorshipContent: type: object description: Serializer for an individual sponsorship result. properties: sponsorship: $ref: '#/components/schemas/Sponsorship' required: - sponsorship SponsorshipItem: type: object description: Serializer for ll.ads.data_models.SponsorshipItem properties: id: type: string impression_url: type: string format: uri click_url: type: string format: uri required: - click_url - id - impression_url SponsorshipPayload: type: object description: "Serializer for sponsorship content.\n\n\"sponsorships\": {\n \"banners\": [\n {\"sponsorship\"\ : {}},\n {\"sponsorship\": {}},\n …\n ],\n \"listing\": [\n {\"resource\": {}, \"sponsorship\"\ : {}},\n {\"resource\": {}, \"sponsorship\": {}},\n …\n ],\n \"skyscrapers\": [\n {\"brand\"\ : {}, \"banner\": {}, \"products\": [], ...},\n {\"brand\": {}, \"banner\": {}, \"products\": [], ...}\n \ \ ]\n}" properties: banners: type: array items: $ref: '#/components/schemas/SponsorshipContent' listing: type: array items: $ref: '#/components/schemas/SponsorshipResource' skyscrapers: type: array items: $ref: '#/components/schemas/SkyscraperSponsorshipContent' required: - banners - listing - skyscrapers SponsorshipResource: type: object description: Serializer for an individual sponsorship with Brand details. properties: sponsorship: $ref: '#/components/schemas/Sponsorship' resource: $ref: '#/components/schemas/BrandResource' required: - resource - sponsorship SponsorshipsContent: type: object properties: content: $ref: '#/components/schemas/_SponsorshipsContent' required: - content SpotlightBadgesEnum: enum: - deal - new - sponsored type: string StateRequest: type: object description: Serializer for State models via the internal API properties: abbr: type: string minLength: 1 maxLength: 2 name: type: string minLength: 1 maxLength: 100 country: $ref: '#/components/schemas/CountryRequest' required: - abbr - country - name StrainClassificationEnum: enum: - sativa - indica - hybrid - 11-cbd - high-cbd - sativa-hybrid - indica-hybrid - 21-cbd - thc - na type: string SubCategory: type: object properties: id: type: integer name: type: string base_unit_of_measure: type: string nullable: true base_unit_of_measure_short_name: type: string nullable: true required: - base_unit_of_measure - base_unit_of_measure_short_name - id - name TemplateCreateRequest: type: object properties: estimated_departure_datetime: type: string nullable: true minLength: 1 estimated_arrival_datetime: type: string nullable: true minLength: 1 shipment_type_name: type: string nullable: true minLength: 1 ll_order_id: type: integer nullable: true package_labels: type: array items: type: string minLength: 1 nullable: true packages: type: object additionalProperties: type: array items: type: string minLength: 1 nullable: true driver_id: type: integer nullable: true vehicle_id: type: integer nullable: true turn_by_turn_directions: type: string nullable: true minLength: 1 license_number: type: string nullable: true minLength: 1 destination_company_id: type: integer nullable: true destination_license_number: type: string nullable: true minLength: 1 required: - destination_company_id TemplateWriteSuccessResponse: type: object properties: template_id: type: integer required: - template_id Terpene: type: object description: Serializer for Terpene (nested in Batch) properties: name: type: string percentage: type: string format: decimal pattern: ^-?\d{0,4}(?:\.\d{0,2})?$ required: - name - percentage TerpeneRequest: type: object description: Serializer for Terpene (nested in Batch) properties: name: type: string minLength: 1 percentage: type: string format: decimal pattern: ^-?\d{0,4}(?:\.\d{0,2})?$ required: - name - percentage Threshold: type: object properties: regular_value: type: integer minimum: 0 nullable: true description: When Product inventory reaches below this value, take various actions regular_action: allOf: - $ref: '#/components/schemas/ProductThresholdActionEnum' nullable: true default: default description: Action to take when Product inventory reaches below a specified value reverse_value: type: integer minimum: 0 nullable: true description: When Product inventory reaches above this value, take various actions reverse_action: allOf: - $ref: '#/components/schemas/ProductReverseThresholdActionEnum' nullable: true default: default description: Action to take when inventory reaches above a specified value ThresholdActionEnum: enum: - default - backorder - unavailable - internal type: string ThresholdRequest: type: object properties: regular_value: type: integer minimum: 0 nullable: true description: When Product inventory reaches below this value, take various actions regular_action: allOf: - $ref: '#/components/schemas/ProductThresholdActionEnum' nullable: true default: default description: Action to take when Product inventory reaches below a specified value reverse_value: type: integer minimum: 0 nullable: true description: When Product inventory reaches above this value, take various actions reverse_action: allOf: - $ref: '#/components/schemas/ProductReverseThresholdActionEnum' nullable: true default: default description: Action to take when inventory reaches above a specified value TierEnum: enum: - 1 - 2 - 3 type: integer TraceabilityCompany: type: object properties: enable_seed_to_sale: type: boolean enable_lab_test_result_sync: type: boolean enable_transfer_manifest: type: boolean enable_sales_data: type: boolean enable_hide_attached_packages: type: boolean enable_license_verification: type: boolean nullable: true enable_search_by_product_id: type: boolean integration_type: type: string nullable: true is_live: type: boolean excluded_lab_test_states: type: array items: type: string included_locations: type: array items: $ref: '#/components/schemas/TraceabilityCompanyIncludedLocation' integration_ids: type: array items: type: integer api_configs: type: array items: $ref: '#/components/schemas/InternalCompanyAPIConfig' required: - api_configs - enable_hide_attached_packages - enable_lab_test_result_sync - enable_sales_data - enable_seed_to_sale - enable_transfer_manifest - excluded_lab_test_states - included_locations - integration_ids - integration_type - is_live TraceabilityCompanyIncludedLocation: type: object properties: id: type: integer external_id: type: string license_number: type: string name: type: string required: - external_id - id - license_number - name TraceabilityDelivery: type: object description: 'Serializer for traceability Deliveries. Uses CommonDelivery + vendor-specific data. Metrc will return one instance and BioTrack will have none as there is no use-case for delivery data at the time.' properties: company_id: type: string license_number: type: string delivery_package_count: type: integer recipient_facility_license_number: type: string nullable: true id: type: integer nullable: true reference_id: type: string transfer_external_id: type: string vendor_type: type: string actual_departure_datetime: type: string format: date-time nullable: true actual_arrival_datetime: type: string format: date-time nullable: true vendor_fields: $ref: '#/components/schemas/MetrcDelivery' required: - company_id - delivery_package_count - license_number - recipient_facility_license_number - reference_id - transfer_external_id - vendor_fields - vendor_type TraceabilityDeliveryPackage: type: object description: Serializer for traceability DeliveryPackages. properties: id: type: integer nullable: true company_id: type: string license_number: type: string package_label: type: string shipment_package_state: type: string nullable: true shipped_quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true received_quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true delivery_reference_id: type: string package_external_id: type: string transfer_external_id: type: string vendor_type: type: string vendor_fields: $ref: '#/components/schemas/PolymorphicDeliveryPackageVendorFields' required: - company_id - delivery_reference_id - license_number - package_external_id - package_label - received_quantity - shipment_package_state - shipped_quantity - transfer_external_id - vendor_fields - vendor_type TraceabilityDriver: type: object properties: id: type: integer company_id: type: integer external_id: type: string vendor_type: type: string license_number: type: string resource_type: type: string readOnly: true name: type: string drivers_license_number: type: string nullable: true is_active: type: boolean vendor_fields: $ref: '#/components/schemas/PolymorphicDriverVendorFields' required: - company_id - drivers_license_number - external_id - id - is_active - license_number - name - resource_type - vendor_fields - vendor_type TraceabilityDriverCreateUpdateInputRequest: type: object properties: name: type: string minLength: 1 drivers_license_number: type: string nullable: true minLength: 1 birth_date: type: string format: date hire_date: type: string format: date email: type: string minLength: 1 state_issued: type: string nullable: true minLength: 1 required: - birth_date - drivers_license_number - email - hire_date - name - state_issued TraceabilityItem: type: object properties: id: type: integer metrc_id: type: integer name: type: string description: type: string ingredients: type: string category_name: type: string category_type: type: string quantity_type: type: string unit_of_measure_name: type: string serving_size: type: string used: type: boolean imported_from_package: type: boolean nullable: true strain_name: type: string nullable: true strain: allOf: - $ref: '#/components/schemas/TraceabilityStrain' nullable: true metrc_strain_id: type: integer nullable: true doses: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ nullable: true unit_cbd_percent: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ nullable: true unit_cbd_content: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ nullable: true unit_cbd_content_unit_of_measure_name: type: string nullable: true unit_thc_percent: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ nullable: true unit_thc_content: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ nullable: true unit_thc_content_unit_of_measure_name: type: string nullable: true unit_volume: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true unit_volume_unit_of_measure_name: type: string nullable: true unit_weight: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,3})?$ nullable: true unit_weight_unit_of_measure_name: type: string nullable: true unit_quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true unit_quantity_unit_of_measure_name: type: string nullable: true required: - category_name - category_type - description - doses - id - imported_from_package - ingredients - metrc_id - metrc_strain_id - name - quantity_type - serving_size - strain - strain_name - unit_cbd_content - unit_cbd_content_unit_of_measure_name - unit_cbd_percent - unit_of_measure_name - unit_quantity - unit_quantity_unit_of_measure_name - unit_thc_content - unit_thc_content_unit_of_measure_name - unit_thc_percent - unit_volume - unit_volume_unit_of_measure_name - unit_weight - unit_weight_unit_of_measure_name - used TraceabilityLicense: type: object properties: number: type: string type: type: string start_date: type: string end_date: type: string required: - end_date - number - start_date - type TraceabilityLicenses: type: object properties: errors: type: array items: type: string licenses: type: array items: $ref: '#/components/schemas/TraceabilityLicense' required: - errors - licenses TraceabilityLocation: type: object description: Location object from the Traceability.common_location and Traceability.(vendor)_location tables. properties: id: type: integer description: ID of the location in the Traceability Service company_id: type: integer description: ID of the company in the Traceability Service external_id: type: string description: ID of the location in the vendor's system vendor_type: type: string label: type: string license_number: type: string name: type: string status: type: string is_excluded: type: boolean default: false vendor_fields: $ref: '#/components/schemas/MetrcLocation' required: - company_id - external_id - id - label - license_number - name - status - vendor_fields - vendor_type TraceabilityOrder: type: object properties: order_number: type: string order_seller_number: type: string readOnly: true seller: $ref: '#/components/schemas/LightCompany' required: - order_number - order_seller_number - seller TraceabilityPackage: type: object description: Traceability package fields from the Traceability.common_package and Traceability.metrc_package tables. properties: id: type: integer description: ID of the package in the Traceability Service external_id: type: string description: ID of the package in the vendor's system label: type: string license_number: type: string status: type: string quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true vendor_type: type: string description: Name of vendor's system (Biotrack, Metrc, ... vendor_fields: $ref: '#/components/schemas/MetrcPackage' location_id: type: integer location: $ref: '#/components/schemas/TraceabilityLocation' in_transit: type: boolean nullable: true is_testing_sample: type: boolean nullable: true lab_test_unit_of_measure: type: string nullable: true lab_testing_status: type: string nullable: true ll_product_ids: type: array items: type: integer result_cbd: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_cbda: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_thc: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ result_thca: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ required: - external_id - id - in_transit - is_testing_sample - lab_test_unit_of_measure - lab_testing_status - label - license_number - ll_product_ids - location - location_id - quantity - result_cbd - result_cbda - result_thc - result_thca - status - vendor_fields - vendor_type TraceabilityRefreshRequest: type: object properties: created_at: type: string errors: type: array items: type: string id: type: integer refresh_type: type: string resource_types: type: array items: type: string status: type: string required: - created_at - errors - id - refresh_type - resource_types - status TraceabilityStrain: type: object properties: company_id: type: integer metrc_id: type: integer license_number: type: string name: type: string is_active: type: boolean indica_percentage: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ sativa_percentage: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ thc_level: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true cbd_level: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true testing_status: type: string nullable: true required: - cbd_level - company_id - indica_percentage - is_active - license_number - metrc_id - name - sativa_percentage - testing_status - thc_level TraceabilityTemplate: type: object properties: actual_arrival_datetime: type: string nullable: true actual_departure_datetime: type: string nullable: true company_id: type: integer delivery_count: type: integer estimated_arrival_datetime: type: string nullable: true estimated_departure_datetime: type: string nullable: true id: type: integer last_modified_datetime: type: string nullable: true license_number: type: string manifest_number: type: string metrc_delivery_id: type: integer metrc_id: type: integer name: type: string nullable: true package_count: type: integer received_datetime: type: string nullable: true recipient_facility_license_number: type: string nullable: true recipient_facility_name: type: string nullable: true shipment_license_type: type: string nullable: true shipment_transaction_type: type: string nullable: true shipment_type_name: type: string nullable: true shipper_facility_license_number: type: string shipper_facility_name: type: string driver: allOf: - $ref: '#/components/schemas/TraceabilityDriver' nullable: true vehicle: allOf: - $ref: '#/components/schemas/TraceabilityVehicle' nullable: true turn_by_turn_directions: type: string nullable: true required: - actual_arrival_datetime - actual_departure_datetime - company_id - delivery_count - estimated_arrival_datetime - estimated_departure_datetime - id - last_modified_datetime - license_number - manifest_number - metrc_delivery_id - metrc_id - name - package_count - received_datetime - recipient_facility_license_number - recipient_facility_name - shipment_license_type - shipment_transaction_type - shipment_type_name - shipper_facility_license_number - shipper_facility_name TraceabilityTemplateDetail: type: object properties: actual_arrival_datetime: type: string nullable: true actual_departure_datetime: type: string nullable: true company_id: type: integer delivery_count: type: integer estimated_arrival_datetime: type: string nullable: true estimated_departure_datetime: type: string nullable: true id: type: integer last_modified_datetime: type: string nullable: true license_number: type: string manifest_number: type: string metrc_delivery_id: type: integer metrc_id: type: integer name: type: string nullable: true package_count: type: integer received_datetime: type: string nullable: true recipient_facility_license_number: type: string nullable: true recipient_facility_name: type: string nullable: true shipment_license_type: type: string nullable: true shipment_transaction_type: type: string nullable: true shipment_type_name: type: string nullable: true shipper_facility_license_number: type: string shipper_facility_name: type: string driver: allOf: - $ref: '#/components/schemas/TraceabilityDriver' nullable: true vehicle: allOf: - $ref: '#/components/schemas/TraceabilityVehicle' nullable: true turn_by_turn_directions: type: string nullable: true required: - actual_arrival_datetime - actual_departure_datetime - company_id - delivery_count - driver - estimated_arrival_datetime - estimated_departure_datetime - id - last_modified_datetime - license_number - manifest_number - metrc_delivery_id - metrc_id - name - package_count - received_datetime - recipient_facility_license_number - recipient_facility_name - shipment_license_type - shipment_transaction_type - shipment_type_name - shipper_facility_license_number - shipper_facility_name - turn_by_turn_directions - vehicle TraceabilityTransfer: type: object description: Serializer for traceability transfers. Composed of CommonTransfer + vendor-specific transfer data. properties: id: type: integer nullable: true company_id: type: string license_number: type: string manifest_number: type: string package_count: type: integer delivery_count: type: integer type: type: string status: type: string shipper_facility_license_number: type: string nullable: true shipper_facility_name: type: string nullable: true recipient_facility_license_number: type: string nullable: true actual_departure_datetime: type: string format: date-time nullable: true actual_arrival_datetime: type: string format: date-time nullable: true estimated_departure_datetime: type: string format: date-time nullable: true estimated_arrival_datetime: type: string format: date-time nullable: true last_modified_datetime: type: string format: date-time nullable: true invoice_number: type: string nullable: true ll_order_ids: type: array items: type: integer driver_external_id: type: string nullable: true vehicle_external_id: type: string nullable: true orders: type: array items: $ref: '#/components/schemas/TraceabilityOrder' buyer: allOf: - $ref: '#/components/schemas/TraceabilityTransferBuyer' nullable: true resource_type: type: string readOnly: true external_id: type: string vendor_type: type: string vendor_fields: $ref: '#/components/schemas/PolymorphicTransferVendorFields' deliveries: type: array items: $ref: '#/components/schemas/TraceabilityDelivery' delivery_packages: type: array items: $ref: '#/components/schemas/TraceabilityDeliveryPackage' required: - buyer - company_id - deliveries - delivery_count - delivery_packages - external_id - license_number - manifest_number - package_count - resource_type - status - type - vendor_fields - vendor_type TraceabilityTransferBuyer: type: object properties: name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 required: - name TraceabilityVehicle: type: object properties: id: type: integer company_id: type: integer external_id: type: string vendor_type: type: string license_number: type: string resource_type: type: string readOnly: true make: type: string model: type: string license_plate_number: type: string is_active: type: boolean vendor_fields: $ref: '#/components/schemas/PolymorphicVehicleVendorFields' required: - company_id - external_id - id - is_active - license_number - license_plate_number - make - model - resource_type - vendor_fields - vendor_type TraceabilityVehicleCreateUpdateInputRequest: type: object properties: license_plate_number: type: string minLength: 1 make: type: string minLength: 1 model: type: string minLength: 1 name: type: string minLength: 1 color: type: string minLength: 1 vin: type: string minLength: 1 year: type: string minLength: 1 required: - color - license_plate_number - make - model - name - vin - year TransferCompany: type: object description: Name + license_number combination of a shipper or recipient from the Traceability.transfer table. properties: name: type: string license_number: type: string required: - license_number - name TransferCreateInputRequest: type: object properties: ll_order_id: type: integer ll_order_number: type: string minLength: 1 buyer_external_id: type: string minLength: 1 turn_by_turn_directions: type: string minLength: 1 estimated_arrival_datetime: type: string minLength: 1 estimated_departure_datetime: type: string minLength: 1 driver_id: type: integer vehicle_id: type: integer packages: type: array items: $ref: '#/components/schemas/TransferCreateUpdatePackageRequest' required: - buyer_external_id - driver_id - estimated_arrival_datetime - estimated_departure_datetime - ll_order_id - ll_order_number - packages - turn_by_turn_directions - vehicle_id TransferCreateUpdatePackageRequest: type: object properties: label: type: string minLength: 1 required: - label TransferRequestRequest: type: object description: Request body for POST .../commands/transfer. properties: from_product_id: type: integer minimum: 1 from_facility_id: type: integer minimum: 1 from_batch_id: type: integer minimum: 1 to_product_id: type: integer minimum: 1 to_facility_id: type: integer minimum: 1 to_batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - created_by - from_batch_id - from_facility_id - from_product_id - quantity - to_batch_id - to_facility_id - to_product_id TransportCompany: type: object description: Serializer for TransportCompany model properties: transport_company_id: type: integer readOnly: true name: type: string readOnly: true medical_license_number: type: string readOnly: true adult_use_license_number: type: string readOnly: true state: type: string readOnly: true required: - adult_use_license_number - medical_license_number - name - state - transport_company_id TypeCodeEnum: enum: - ADU - ANC - CAN - COM - MED - REC type: string TypeEnum: enum: - percentage_delta - delta - absolute type: string UnarchiveRequestRequest: type: object description: Request body for POST .../commands/unarchive. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity - reason UnfulfillmentRequestRequest: type: object description: Request body for POST .../commands/unfulfillment. properties: product_id: type: integer minimum: 1 order_id: type: integer minimum: 1 order_product_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - created_by - order_id - order_product_id - product_id - quantity UnholdRequestRequest: type: object description: Request body for POST .../commands/unhold. properties: product_id: type: integer minimum: 1 facility_id: type: integer minimum: 1 batch_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ reason: type: string minLength: 1 created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - batch_id - created_by - facility_id - product_id - quantity - reason UnifiedAddress: type: object description: Inherits AddressSerializer but sets the FK relation on the resource Model properties: address: type: string description: Address maxLength: 400 unit_number: type: string title: 'Unit #' description: 'Unit #' maxLength: 400 city: type: string description: City maxLength: 400 county: type: string description: County maxLength: 400 state: type: string zipcode: type: string description: Zipcode maxLength: 7 required: - address - city - state - zipcode UnifiedAddressRequest: type: object description: Inherits AddressSerializer but sets the FK relation on the resource Model properties: address: type: string minLength: 1 description: Address maxLength: 400 unit_number: type: string title: 'Unit #' description: 'Unit #' maxLength: 400 city: type: string minLength: 1 description: City maxLength: 400 county: type: string description: County maxLength: 400 state: type: string minLength: 1 zipcode: type: string minLength: 1 description: Zipcode maxLength: 7 required: - address - city - state - zipcode UnifiedBatch: type: object description: Serializer for Batch - read/response only. properties: id: type: integer readOnly: true nullable: true company_id: type: integer readOnly: true number: type: string readOnly: true maxLength: 100 source: type: string readOnly: true maxLength: 100 source_type: type: string readOnly: true maxLength: 32 supplier: type: string nullable: true maxLength: 100 harvest_date: type: string format: date nullable: true expiration_date: type: string format: date nullable: true sku: type: string nullable: true maxLength: 100 status: type: string maxLength: 20 append_thc: type: boolean default: false terpenes: type: array items: $ref: '#/components/schemas/Terpene' is_assigned: type: boolean default: false created_on: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true unit_of_measure: type: string nullable: true maxLength: 32 lab_test_unit_of_measure: type: string nullable: true maxLength: 32 item_name: type: string nullable: true item_category: type: string nullable: true total_thc: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true result_cbd: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ nullable: true lab_result_file_id: type: integer nullable: true display_sku: type: string readOnly: true required: - company_id - created_on - display_sku - id - modified - number - source - source_type - status 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 UnifiedBrandRequest: type: object properties: name: type: string minLength: 1 title: Brand Name description: Name of the Brand maxLength: 400 required: - name UnifiedBuyerProductImage: type: object description: Unified ProductImage 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 image: type: string format: uri description: The uploaded file, sent via multipart form data. Retrieved as a url link. product: type: integer description: The Product this image is attached to position: type: integer maximum: 5 minimum: 1 nullable: true title: Image ordering position description: The position of ordering required: - created_date - id - image - modified_date - product UnifiedChats: type: object description: Unified Chats serializer properties: id: type: integer readOnly: true topic: type: string status: allOf: - $ref: '#/components/schemas/ChatStatusEnum' readOnly: true sender_company: $ref: '#/components/schemas/DiscussionCompany' recipient_company: $ref: '#/components/schemas/DiscussionCompany' creator: type: integer nullable: true description: Discussion Creator latest_message: allOf: - $ref: '#/components/schemas/Message' readOnly: true required: - id - latest_message - recipient_company - sender_company - status - topic UnifiedChatsRequest: type: object description: Unified Chats serializer properties: topic: type: string minLength: 1 sender_company: $ref: '#/components/schemas/DiscussionCompanyRequest' recipient_company: $ref: '#/components/schemas/DiscussionCompanyRequest' creator: type: integer nullable: true description: Discussion Creator first_message: allOf: - $ref: '#/components/schemas/MessageRequest' writeOnly: true product_id: type: integer writeOnly: true nullable: true required: - first_message - recipient_company - sender_company - topic UnifiedCloneProductImage: type: object description: Unified Product Image serializer for cloning product images. 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 image: type: string format: uri readOnly: true description: The uploaded file, sent via multipart form data. Retrieved as a url link. product: type: integer description: The Product this image is attached to position: type: integer description: The position of the image in the product image gallery crop_x: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box X Position description: The X position of the image crop box crop_y: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Y Position description: The Y position of the image crop box crop_w: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Width description: The width of the image crop box crop_h: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Height description: The height of the image crop box required: - created_date - id - image - modified_date - position - product UnifiedCloneProductImageRequest: type: object description: Unified Product Image serializer for cloning product images. properties: product: type: integer description: The Product this image is attached to position: type: integer description: The position of the image in the product image gallery crop_x: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box X Position description: The X position of the image crop box crop_y: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Y Position description: The Y position of the image crop box crop_w: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Width description: The width of the image crop box crop_h: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Height description: The height of the image crop box required: - position - product UnifiedCompany: type: object properties: id: type: integer readOnly: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 required: - id - name UnifiedCompanyCustomerStatus: type: object description: Unified serializer for the CompanyCustomerStatus model. properties: id: type: integer readOnly: true state: type: string title: Customer Status description: Customer Status State maxLength: 40 order: type: integer maximum: 2147483647 minimum: 1 title: Sort Order description: Sort order, lower is first. description: type: string nullable: true description: Description of status maxLength: 1500 owner: type: integer nullable: true title: Company description: The Company that created the custom status. is_stock: type: boolean title: Is a LeafLink Stock Status description: Is this a stock LeafLink status? hex_color: type: string nullable: true description: Hex color for customer status pattern: ^#[0-9a-fA-F]{6}$ maxLength: 40 required: - id - state UnifiedCompanyCustomerStatusRequest: type: object description: Unified serializer for the CompanyCustomerStatus model. properties: state: type: string minLength: 1 title: Customer Status description: Customer Status State maxLength: 40 order: type: integer maximum: 2147483647 minimum: 1 title: Sort Order description: Sort order, lower is first. description: type: string nullable: true description: Description of status maxLength: 1500 owner: type: integer nullable: true title: Company description: The Company that created the custom status. is_stock: type: boolean title: Is a LeafLink Stock Status description: Is this a stock LeafLink status? hex_color: type: string nullable: true description: Hex color for customer status pattern: ^#[0-9a-fA-F]{6}$ maxLength: 40 required: - state UnifiedCompanyRequest: type: object properties: name: type: string minLength: 1 description: Name of Company (Note this is not the same as Brand) maxLength: 400 required: - name UnifiedContact: type: object description: Unified Contact 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 owner: type: integer first_name: type: string maxLength: 30 last_name: type: string maxLength: 30 email: type: string format: email nullable: true title: Email address maxLength: 255 secondary_email: type: string format: email nullable: true title: Secondary email address maxLength: 255 role: type: string nullable: true title: Position description: Position or role at company maxLength: 400 description: type: string nullable: true description: An overview of the contact maxLength: 1500 phone: type: string nullable: true description: Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 phone_extension: type: string nullable: true maxLength: 20 secondary_phone: type: string nullable: true description: Secondary Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 secondary_phone_extension: type: string nullable: true maxLength: 20 delete: type: boolean title: Contact deleted description: Is this Contact marked as deleted? required: - created_date - first_name - id - modified_date - owner UnifiedContactRequest: type: object description: Unified Contact serializer properties: owner: type: integer first_name: type: string minLength: 1 maxLength: 30 last_name: type: string maxLength: 30 email: type: string format: email nullable: true title: Email address maxLength: 255 secondary_email: type: string format: email nullable: true title: Secondary email address maxLength: 255 role: type: string nullable: true title: Position description: Position or role at company maxLength: 400 description: type: string nullable: true description: An overview of the contact maxLength: 1500 phone: type: string nullable: true description: Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 phone_extension: type: string nullable: true maxLength: 20 secondary_phone: type: string nullable: true description: Secondary Phone Number of Brand pattern: ^(\d{10})?$ maxLength: 400 secondary_phone_extension: type: string nullable: true maxLength: 20 delete: type: boolean title: Contact deleted description: Is this Contact marked as deleted? required: - first_name - owner UnifiedCustomMenu: type: object description: Unified Custom Menu (Price Schedule) 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 readOnly: true description: Custom Menu name products_count: type: integer nullable: true readOnly: true description: Number of products on this custom menu customers_count: type: integer nullable: true readOnly: true description: Number of customers assigned to this custom menu required: - created_date - customers_count - id - modified_date - name - products_count UnifiedCustomer: type: object description: UnifiedCustomerSerializer inherits existing v2 CompanyCustomerSerializer for validations 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 dba: type: string readOnly: true nullable: true managers: type: array items: type: integer phone: type: string nullable: true phone_extension: type: string nullable: true email: type: string format: email nullable: true title: Email address maxLength: 255 website: type: string nullable: true next_contact_date: type: string format: date nullable: true tier: nullable: true title: Company customer tier description: Company customer tier minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/TierEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' name: type: string nickname: type: string readOnly: true nullable: true license_number: type: string old_license_number: type: string nullable: true title: Old License Number (stored after a transfer) description: Old License Number (stored after a transfer) maxLength: 100 is_license_inactive: type: boolean default: false description: License inactive or transferred for this customer business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 ein: type: string readOnly: true nullable: true directions: type: string nullable: true description: (Driving) Directions to the Customer location for deliveries maxLength: 6000 delivery_preferences: type: string nullable: true currency: type: string readOnly: true shipping_charge: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Additional Shipping Charge brand: type: string nullable: true title: Brand Name description: Known Brand name of Company or Parent Company maxLength: 400 business_license_name: type: string nullable: true description: type: string nullable: true corporate_address: allOf: - $ref: '#/components/schemas/UnifiedAddress' readOnly: true delivery_address: allOf: - $ref: '#/components/schemas/UnifiedAddress' readOnly: true notes: type: string nullable: true description: Other information on customer maxLength: 3000 leaflink_last_viewed: type: string format: date-time readOnly: true description: The last time this customer viewed your products on Leaflink leaflink_source: type: boolean readOnly: true title: Added by Leaflink description: Was this customer added to your CRM by Leaflink is_archived: type: boolean default: false description: Is the customer a relevent part of your CRM is_delinquent: type: boolean default: false description: Is this account delinquent on billing discount_percent: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,4})?$ description: Discount percent for orders of company customer available_payment_options: type: array items: $ref: '#/components/schemas/CustomerPaymentOptionSerializerV2' readOnly: true nullable: true description: Available payment options for the customer external_ids: type: object additionalProperties: type: string description: External IDs mapped by integration name owner_id: type: integer description: Owner ID for customer partner_id: type: integer description: Partner ID for customer price_schedule_id: type: integer description: Price schedule ID for the customer service_zone: allOf: - $ref: '#/components/schemas/ServiceZone' readOnly: true description: Service zone for the customer license_type: type: integer readOnly: true status: allOf: - $ref: '#/components/schemas/UnifiedCompanyCustomerStatus' readOnly: true description: Status for a customer required: - available_payment_options - corporate_address - created_date - currency - dba - delivery_address - ein - id - leaflink_last_viewed - leaflink_source - license_type - modified_date - name - nickname - owner_id - service_zone - status UnifiedCustomerGroup: type: object description: Serializer for Customer Group. 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: Name of the Customer Group. maxLength: 256 description: type: string nullable: true description: Description of the Customer Group. maxLength: 512 customers: type: array items: type: integer description: List of customer IDs associated with this customer group status: allOf: - $ref: '#/components/schemas/UnifiedCustomerGroupStatusEnum' description: Overall status of the company customer group. required: - created_date - id - modified_date - name UnifiedCustomerGroupRequest: type: object description: Serializer for Customer Group. properties: name: type: string minLength: 1 description: Name of the Customer Group. maxLength: 256 description: type: string nullable: true description: Description of the Customer Group. maxLength: 512 customers: type: array items: type: integer description: List of customer IDs associated with this customer group status: allOf: - $ref: '#/components/schemas/UnifiedCustomerGroupStatusEnum' description: Overall status of the company customer group. required: - name UnifiedCustomerGroupStatusEnum: enum: - active - archived type: string UnifiedCustomerRequest: type: object description: UnifiedCustomerSerializer inherits existing v2 CompanyCustomerSerializer for validations properties: managers: type: array items: type: integer phone: type: string nullable: true minLength: 1 phone_extension: type: string nullable: true minLength: 1 email: type: string format: email nullable: true title: Email address maxLength: 255 website: type: string nullable: true minLength: 1 next_contact_date: type: string format: date nullable: true tier: nullable: true title: Company customer tier description: Company customer tier minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/TierEnum' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' name: type: string minLength: 1 license_number: type: string minLength: 1 old_license_number: type: string nullable: true title: Old License Number (stored after a transfer) description: Old License Number (stored after a transfer) maxLength: 100 is_license_inactive: type: boolean default: false description: License inactive or transferred for this customer business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 directions: type: string nullable: true description: (Driving) Directions to the Customer location for deliveries maxLength: 6000 delivery_preferences: type: string nullable: true minLength: 1 shipping_charge: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Additional Shipping Charge brand: type: string nullable: true title: Brand Name description: Known Brand name of Company or Parent Company maxLength: 400 business_license_name: type: string nullable: true minLength: 1 description: type: string nullable: true minLength: 1 notes: type: string nullable: true description: Other information on customer maxLength: 3000 is_archived: type: boolean default: false description: Is the customer a relevent part of your CRM is_delinquent: type: boolean default: false description: Is this account delinquent on billing discount_percent: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,4})?$ description: Discount percent for orders of company customer external_ids: type: object additionalProperties: type: string description: External IDs mapped by integration name owner_id: type: integer description: Owner ID for customer partner_id: type: integer description: Partner ID for customer price_schedule_id: type: integer description: Price schedule ID for the customer service_zone_id: type: integer writeOnly: true description: Service zone ID for the customer status_id: type: integer writeOnly: true description: Status ID for the customer required: - name - owner_id UnifiedExpressProductMenu: type: object properties: id: type: integer readOnly: true brand: type: integer title: Express Menu Brand name: type: string readOnly: true price_schedule: type: integer title: Public Menu Price Schedule products: type: array items: type: integer title: Public Menu Products title: Public Menu Products products_count: type: integer readOnly: true slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ required: - brand - id - name - price_schedule - products - products_count - slug UnifiedExpressProductMenuRequest: type: object properties: brand: type: integer title: Express Menu Brand price_schedule: type: integer title: Public Menu Price Schedule products: type: array items: type: integer title: Public Menu Products title: Public Menu Products required: - brand - price_schedule - products UnifiedInvoiceCustomer: type: object properties: name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 id: type: integer readOnly: true required: - id - name UnifiedL3Order: type: object description: Internal serializer for L3Order Model. properties: number: type: string readOnly: true invoice_number: type: string readOnly: true mp_order_number: type: string readOnly: true transport_order_id: type: string readOnly: true payment_expected: type: object properties: amount: type: number format: decimal currency: type: string required: - amount - currency description: Money object with amount and currency customer: type: object additionalProperties: {} readOnly: true pickup_address: type: object additionalProperties: {} readOnly: true destination: type: object additionalProperties: {} readOnly: true status: allOf: - $ref: '#/components/schemas/UnifiedL3OrderStatusEnum' title: Status of L3Order requested_pickup_date: type: string format: date nullable: true title: Requested pick up date description: Requested pick up date expected_pickup_datetime: type: string format: date-time nullable: true title: Expected pick up datetime description: Expected pick up date and time actual_pickup_datetime: type: string format: date-time nullable: true title: Actual pick up datetime description: Actual date time the order was picked up requested_delivery_date: type: string format: date nullable: true description: Requested delivery date for the order expected_delivery_datetime: type: string format: date-time nullable: true description: Expected delivery date and time for the order actual_delivery_datetime: type: string format: date-time nullable: true description: Actual delivery date and time for the order display_delivery_date: type: string format: date-time readOnly: true nullable: true pickup_driver: $ref: '#/components/schemas/Driver' additional_pickup_drivers: type: array items: type: object additionalProperties: {} readOnly: true pickup_vehicle: $ref: '#/components/schemas/InternalVehicle' delivery_driver: $ref: '#/components/schemas/Driver' delivery_vehicle: $ref: '#/components/schemas/InternalVehicle' payment_method: $ref: '#/components/schemas/PaymentMethod' payment_term: $ref: '#/components/schemas/PaymentTerm' customer_notes: type: string nullable: true description: Customer notes for the L3 Order notes: type: string nullable: true title: Additional Notes description: Additional notes for the L3 Order eligible_payment_methods: type: array items: type: string maxLength: 100 title: Eligible payment methods for this order description: A selection of eligible payment methods for this order payment_method_collected: type: string title: Collected Payment Method description: Payment method used for this order maxLength: 100 collected_payment_amount: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Payment collected at delivery delivery_driver_comment: type: string description: Comment from delivery driver for this order maxLength: 500 metrc_transfer: type: object additionalProperties: {} nullable: true readOnly: true created_on: type: string format: date-time readOnly: true transport_company: $ref: '#/components/schemas/TransportCompany' brand: $ref: '#/components/schemas/InternalLogisticsCompany' required: - additional_pickup_drivers - brand - created_on - customer - delivery_driver - delivery_vehicle - destination - display_delivery_date - invoice_number - metrc_transfer - mp_order_number - number - payment_expected - payment_method - payment_term - pickup_address - pickup_driver - pickup_vehicle - transport_company - transport_order_id UnifiedL3OrderRequest: type: object description: Internal serializer for L3Order Model. properties: payment_expected: type: object properties: amount: type: number format: decimal currency: type: string required: - amount - currency description: Money object with amount and currency status: allOf: - $ref: '#/components/schemas/UnifiedL3OrderStatusEnum' title: Status of L3Order requested_pickup_date: type: string format: date nullable: true title: Requested pick up date description: Requested pick up date expected_pickup_datetime: type: string format: date-time nullable: true title: Expected pick up datetime description: Expected pick up date and time actual_pickup_datetime: type: string format: date-time nullable: true title: Actual pick up datetime description: Actual date time the order was picked up requested_delivery_date: type: string format: date nullable: true description: Requested delivery date for the order expected_delivery_datetime: type: string format: date-time nullable: true description: Expected delivery date and time for the order actual_delivery_datetime: type: string format: date-time nullable: true description: Actual delivery date and time for the order pickup_driver: $ref: '#/components/schemas/DriverRequest' pickup_vehicle: $ref: '#/components/schemas/InternalVehicleRequest' delivery_driver: $ref: '#/components/schemas/DriverRequest' delivery_vehicle: $ref: '#/components/schemas/InternalVehicleRequest' payment_method: $ref: '#/components/schemas/PaymentMethodRequest' payment_term: $ref: '#/components/schemas/PaymentTermRequest' customer_notes: type: string nullable: true description: Customer notes for the L3 Order notes: type: string nullable: true title: Additional Notes description: Additional notes for the L3 Order eligible_payment_methods: type: array items: type: string minLength: 1 maxLength: 100 title: Eligible payment methods for this order description: A selection of eligible payment methods for this order payment_method_collected: type: string title: Collected Payment Method description: Payment method used for this order maxLength: 100 collected_payment_amount: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Payment collected at delivery delivery_driver_comment: type: string description: Comment from delivery driver for this order maxLength: 500 brand: $ref: '#/components/schemas/InternalLogisticsCompanyRequest' required: - brand - delivery_driver - delivery_vehicle - payment_expected - payment_method - payment_term - pickup_driver - pickup_vehicle UnifiedL3OrderStatusEnum: enum: - uploaded - created - assigned - planned - shipped - delivered - deleted type: string UnifiedLicenseCreateUpdateRequest: type: object description: Unified serializer for creating or updating licenses supplied by seed-to-sale vendors. properties: number: type: string issue_date: type: string format: date readOnly: true expiration_date: type: string format: date readOnly: true type: type: integer readOnly: true required: - expiration_date - issue_date - number - type UnifiedMessagingFindSeller: type: object properties: id: type: integer readOnly: true address: type: string city: type: string state: type: string zipcode: type: string business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 business_license_name: type: string nullable: true description: Business License Name maxLength: 400 image: type: string format: uri nullable: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 seller: type: boolean title: Is a Seller description: Company sells on LeafLink slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ required: - address - city - id - name - zipcode UnifiedOrderAsSalesInvoice: type: object description: 'Base serializer class to rename created_on and modified fields to follow new naming standard of created_date and modified_date' 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 paid_date: type: string format: date nullable: true description: Date the Order is fully paid buyer: $ref: '#/components/schemas/UnifiedInvoiceCustomer' total: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ description: Order total order: type: string payment_due_date: type: string format: date-time nullable: true description: Date that the Payment is due ship_date: type: string format: date-time nullable: true description: Date the Order is shipped balance: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,2})?$ line_items: type: array items: $ref: '#/components/schemas/UnifiedOrderedProductAsInvoiceLineItem' required: - balance - buyer - created_date - id - line_items - modified_date - order UnifiedOrderPayment: type: object description: Serializer for handling order payment data and validations. 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 order: type: string format: uuid payment_date: type: string format: date-time nullable: true description: Date that the was submitted. total: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ description: Total Paid currency: type: string readOnly: true payment_type: allOf: - $ref: '#/components/schemas/PaymentTypeEnum' description: How this payment was submitted. customer: allOf: - $ref: '#/components/schemas/OrderPaymentUnifiedCustomer' readOnly: true required: - created_date - currency - customer - id - modified_date - order - total UnifiedOrderPaymentRequest: type: object description: Serializer for handling order payment data and validations. properties: order: type: string format: uuid payment_date: type: string format: date-time nullable: true description: Date that the was submitted. total: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ description: Total Paid payment_type: allOf: - $ref: '#/components/schemas/PaymentTypeEnum' description: How this payment was submitted. required: - order - total UnifiedOrderedProductAsInvoiceLineItem: type: object properties: description: type: string name: type: string quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ description: The number of units ordered ordered_unit_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ description: The price at the time of order. required: - description - name - quantity UnifiedPackage: type: object description: Serializer for TraceabilityPackage - read/response only. properties: id: type: integer readOnly: true label: type: string maxLength: 64 quantity: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ unit_of_measure: type: string maxLength: 32 assigned_product_id: type: integer nullable: true assigned_product_name: type: string nullable: true strain_names: type: string nullable: true facility: type: string nullable: true package_status: type: string nullable: true item_name: type: string item_category: type: string required: - id - label - quantity - unit_of_measure UnifiedPomsOrderApprovalRequestData: type: object description: Unified POMS Order Approval serializer for request data. properties: order_id: type: integer description: Order ID from POMS system purchase_order_number: type: string format: uuid description: UUID of Order for approval status: allOf: - $ref: '#/components/schemas/CartOrderPomsStatusEnum' description: Status of the POMS order that defines the action to be taken message: type: string description: Optional message required: - purchase_order_number - status UnifiedPomsOrderApprovalRequestDataRequest: type: object description: Unified POMS Order Approval serializer for request data. properties: order_id: type: integer description: Order ID from POMS system purchase_order_number: type: string format: uuid description: UUID of Order for approval status: allOf: - $ref: '#/components/schemas/CartOrderPomsStatusEnum' description: Status of the POMS order that defines the action to be taken message: type: string minLength: 1 description: Optional message required: - purchase_order_number - status 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 nullable: true 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 UnifiedProductAssignmentBuyerItem: type: object description: Serializer for Product Assignment Buyer Item properties: buyer_id: type: integer expiration_date: type: string format: date-time nullable: true call_to_action: type: string nullable: true quantity: type: integer nullable: true UnifiedProductAssignmentBuyerItemInputRequest: type: object description: Serializer for Product Assignment Buyer Item input (PUT request) properties: buyer_id: type: integer expiration_date: type: string nullable: true call_to_action: type: string nullable: true quantity: type: integer nullable: true required: - buyer_id UnifiedProductAssignmentGroupItem: type: object description: Serializer for Product Assignment Group Item properties: customer_group_id: type: integer expiration_date: type: string format: date-time nullable: true call_to_action: type: string nullable: true quantity: type: integer nullable: true UnifiedProductAssignmentGroupItemInputRequest: type: object description: Serializer for Product Assignment Group Item input (PUT request) properties: customer_group_id: type: integer expiration_date: type: string nullable: true call_to_action: type: string nullable: true quantity: type: integer nullable: true required: - customer_group_id UnifiedProductAssignmentProduct: type: object description: 'Serializer for ProductListing (product + assignment) to API shape. Extracts product fields from ProductListing.product and assignment from ProductListing.assignment, transforming the domain shape for the API.' properties: id: type: integer readOnly: true created_on: type: string nullable: true readOnly: true last_edit: type: string nullable: true readOnly: true name: type: string readOnly: true display_name: type: string readOnly: true sku: type: string nullable: true readOnly: true description: type: string readOnly: true listing_state: type: string readOnly: true display_listing_state: type: string readOnly: true wholesale_price: type: object properties: amount: type: number format: decimal currency: type: string nullable: false readOnly: true retail_price: type: object properties: amount: type: number format: decimal currency: type: string nullable: false readOnly: true sale_price: type: object properties: amount: type: number format: decimal currency: type: string nullable: false readOnly: true available_inventory: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,4})?$ readOnly: true children_count: type: integer readOnly: true price_schedule_price: type: object properties: amount: type: number format: decimal currency: type: string nullable: true readOnly: true sale_price_schedule_price: type: object properties: amount: type: number format: decimal currency: type: string nullable: true readOnly: true image_count: type: integer readOnly: true images: type: array items: type: object additionalProperties: {} readOnly: true is_ancillary: type: boolean readOnly: true strain_classification_display: type: string readOnly: true has_deals_eligible_children: type: boolean readOnly: true discount_percent: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true readOnly: true inv_count: type: integer nullable: true readOnly: true unit_multiplier: type: integer nullable: true readOnly: true unit_of_measure: type: object additionalProperties: {} nullable: true readOnly: true unit_denomination: type: object additionalProperties: {} nullable: true readOnly: true category: type: object additionalProperties: {} nullable: true readOnly: true sub_category: type: object additionalProperties: {} nullable: true readOnly: true brand: type: object additionalProperties: {} nullable: true readOnly: true product_line: type: object additionalProperties: {} nullable: true readOnly: true license: type: object additionalProperties: {} nullable: true readOnly: true parent: type: object additionalProperties: {} nullable: true readOnly: true seller: type: object additionalProperties: {} nullable: true readOnly: true inventory_management: type: string readOnly: true assignments: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentWithItems' readOnly: true required: - assignments - available_inventory - brand - category - children_count - created_on - description - discount_percent - display_listing_state - display_name - has_deals_eligible_children - id - image_count - images - inv_count - inventory_management - is_ancillary - last_edit - license - listing_state - name - parent - price_schedule_price - product_line - retail_price - sale_price - sale_price_schedule_price - seller - sku - strain_classification_display - sub_category - unit_denomination - unit_multiplier - unit_of_measure - wholesale_price UnifiedProductAssignmentUpdateRequest: type: object description: Serializer for updating product assignments (PUT request) properties: product_ids: type: array items: type: integer description: List of product IDs to update assigned_buyers: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentBuyerItemInputRequest' assigned_groups: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentGroupItemInputRequest' is_exclusive: type: boolean default: false required: - product_ids UnifiedProductAssignmentWithItems: type: object description: Serializer for Product Assignment with buyer and group items properties: seller_id: type: integer product_id: type: integer is_exclusive: type: boolean assigned_buyers: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentBuyerItem' assigned_groups: type: array items: $ref: '#/components/schemas/UnifiedProductAssignmentGroupItem' required: - assigned_buyers - assigned_groups - is_exclusive - product_id - seller_id UnifiedProductBulkCreate: type: object description: Unified ProductImage bulk create serializer. properties: product_id: type: integer description: Product ID images: type: array items: type: string format: uri minItems: 1 positions: type: array items: type: integer minItems: 1 required: - images - positions - product_id UnifiedProductBulkCreateRequest: type: object description: Unified ProductImage bulk create serializer. properties: product_id: type: integer description: Product ID images: type: array items: type: string format: binary minItems: 1 positions: type: array items: type: integer minItems: 1 required: - images - positions - product_id UnifiedProductBulkUpdateDataRequest: type: object description: Unified Product Bulk Update Data Serializer properties: type: $ref: '#/components/schemas/TypeEnum' field: $ref: '#/components/schemas/FieldEnum' value: oneOf: - type: boolean - type: integer - type: number - type: string - type: 'null' nullable: true required: - field - type - value UnifiedProductBulkUpdateRequest: type: object description: Unified Product Bulk Update Serializer properties: selector: allOf: - $ref: '#/components/schemas/SelectorEnum' description: association or field to select products. Supports 'product_line' and 'product'. selector_values: type: array items: type: integer update_data: type: array items: $ref: '#/components/schemas/UnifiedProductBulkUpdateDataRequest' required: - selector - selector_values - update_data 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 UnifiedProductCategoryRequest: type: object description: Unified Product category serializer properties: name: type: string minLength: 1 title: Category description: Name of Category maxLength: 40 required: - name UnifiedProductDosageUnit: type: object description: Unified Product Dosage Unit 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 readOnly: true title: Name of Unit description: Name of Unit unit: type: string readOnly: true title: Dosage Unit description: Dosage Unit of Measure description: type: string readOnly: true nullable: true description: Unit Description required: - created_date - description - id - modified_date - name - unit UnifiedProductImage: type: object description: Unified ProductImage 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 image: type: string format: uri description: The uploaded file, sent via multipart form data. Retrieved as a url link. product: type: integer description: The Product this image is attached to position: type: integer description: The position of the image in the product image gallery crop_x: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box X Position description: The X position of the image crop box crop_y: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Y Position description: The Y position of the image crop box crop_w: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Width description: The width of the image crop box crop_h: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Height description: The height of the image crop box required: - created_date - id - image - modified_date - position - product UnifiedProductImageRequest: type: object description: Unified ProductImage serializer. properties: image: type: string format: binary description: The uploaded file, sent via multipart form data. Retrieved as a url link. product: type: integer description: The Product this image is attached to position: type: integer description: The position of the image in the product image gallery crop_x: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box X Position description: The X position of the image crop box crop_y: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Y Position description: The Y position of the image crop box crop_w: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Width description: The width of the image crop box crop_h: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Crop Box Height description: The height of the image crop box required: - image - position - product UnifiedProductInventory: type: object description: Unified Product inventory serializer properties: total_qty: type: number format: double maximum: 1.0e+95 minimum: -1.0e+95 exclusiveMaximum: true exclusiveMinimum: true reserved_qty: type: number format: double readOnly: true required: - reserved_qty - total_qty UnifiedProductInventoryRequest: type: object description: Unified Product inventory serializer properties: total_qty: type: number format: double maximum: 1.0e+95 minimum: -1.0e+95 exclusiveMaximum: true exclusiveMinimum: true required: - total_qty UnifiedProductLine: type: object description: Base Unified ProductLine 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 title: Product Line description: Name of Product Line maxLength: 100 display_name: type: string readOnly: true brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true description: Brand of the product line menu_position: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product Line Menu Position description: The position of ordering products: type: array items: $ref: '#/components/schemas/UnifiedProductLineProduct' readOnly: true description: Products associated with the product line required: - brand - created_date - display_name - id - modified_date - name - products UnifiedProductLineCreate: type: object description: Serializer for creating product lines. 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 title: Product Line description: Name of Product Line maxLength: 100 display_name: type: string readOnly: true brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true description: Brand of the product line menu_position: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product Line Menu Position description: The position of ordering products: type: array items: $ref: '#/components/schemas/UnifiedProductLineProduct' readOnly: true description: Products associated with the product line required: - brand - created_date - display_name - id - modified_date - name - products UnifiedProductLineCreateRequest: type: object description: Serializer for creating product lines. properties: name: type: string minLength: 1 title: Product Line description: Name of Product Line maxLength: 100 brand_id: type: integer writeOnly: true description: Brand ID for the product line menu_position: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product Line Menu Position description: The position of ordering product_ids: type: array items: type: integer writeOnly: true description: List of product IDs associated with this product line required: - brand_id - name UnifiedProductLineProduct: type: object description: Serializer for a product in a product line. properties: id: type: integer readOnly: true name: type: string readOnly: true title: Product description: Product Name required: - id - name UnifiedProductMVP: 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 sku: type: string nullable: true title: Customer SKU description: Stock Keeping Unit. A unique identifier for a Product, alternative to id. maxLength: 255 seller: allOf: - $ref: '#/components/schemas/UnifiedCompany' readOnly: true description: Seller of the product brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true description: Brand of the product product_line: type: integer readOnly: true nullable: true description: Product Line of product name: type: string title: Product description: Product Name maxLength: 400 display_name: type: string readOnly: true description: product name that is displayed license: allOf: - $ref: '#/components/schemas/ComplianceLicense' readOnly: true description: License for the product category: allOf: - $ref: '#/components/schemas/UnifiedProductCategory' readOnly: true description: Product category for the product sub_category: type: integer readOnly: true nullable: true description: The sub-category of the Product (e.g. Bulk Flower, Live Resin, etc) unit_of_measure: allOf: - $ref: '#/components/schemas/UnifiedUnitOfMeasure' readOnly: true description: Base unit of measure for this product unit_denomination: allOf: - $ref: '#/components/schemas/UnifiedUnitDenomination' readOnly: true description: The of amount of individual products in one sale unit listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. description: type: string description: Brand Description maxLength: 7000 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace strains: type: array items: type: integer title: Strains of a product title: Strains of a product description: The cannabis strains associated with this product strain_classification: oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' is_medical_line_item: type: boolean description: Is this a medical line item? grow_type: description: The type of grow operation for the flower product oneOf: - $ref: '#/components/schemas/GrowTypeEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product threshold: allOf: - $ref: '#/components/schemas/Threshold' nullable: true description: Threshold configuration for inventory alerts product_specification_items: type: array items: $ref: '#/components/schemas/UnifiedProductSpecificationItem' parent_id: type: integer nullable: true title: Product Parent description: Product Parent readOnly: true varieties: type: array items: $ref: '#/components/schemas/UnifiedSubProductMVP' required: - brand - category - created_date - description - display_name - id - license - listing_state - modified_date - name - parent_id - product_line - retail_price - seller - sub_category - unit_denomination - unit_of_measure - wholesale_price UnifiedProductMVPFromTemplate: type: object description: Unified Product serializer for adding from template. properties: id: type: integer readOnly: true nullable: true created_date: type: string format: date-time readOnly: true nullable: true description: Date and time the resource was created modified_date: type: string format: date-time readOnly: true nullable: true description: Date and time of the last edit sku: type: string nullable: true title: Customer SKU description: Stock Keeping Unit. A unique identifier for a Product, alternative to id. maxLength: 255 seller: allOf: - $ref: '#/components/schemas/UnifiedCompany' readOnly: true description: Seller of the product brand: allOf: - $ref: '#/components/schemas/UnifiedBrand' readOnly: true description: Brand of the product product_line: type: integer readOnly: true nullable: true description: Product Line of product name: type: string title: Product description: Product Name maxLength: 400 display_name: type: string readOnly: true description: product name that is displayed license: allOf: - $ref: '#/components/schemas/ComplianceLicense' readOnly: true description: License for the product category: allOf: - $ref: '#/components/schemas/UnifiedProductCategory' readOnly: true description: Product category for the product sub_category: type: integer readOnly: true nullable: true description: The sub-category of the Product (e.g. Bulk Flower, Live Resin, etc) unit_of_measure: allOf: - $ref: '#/components/schemas/UnifiedUnitOfMeasure' readOnly: true description: Base unit of measure for this product unit_denomination: allOf: - $ref: '#/components/schemas/UnifiedUnitDenomination' readOnly: true description: The of amount of individual products in one sale unit listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. description: type: string description: Brand Description maxLength: 7000 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace strains: type: array items: type: integer title: Strains of a product title: Strains of a product description: The cannabis strains associated with this product strain_classification: oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' is_medical_line_item: type: boolean description: Is this a medical line item? grow_type: description: The type of grow operation for the flower product oneOf: - $ref: '#/components/schemas/GrowTypeEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product threshold: allOf: - $ref: '#/components/schemas/Threshold' nullable: true description: Threshold configuration for inventory alerts product_specification_items: type: array items: $ref: '#/components/schemas/UnifiedProductSpecificationItem' parent_id: type: integer nullable: true title: Product Parent description: Product Parent readOnly: true varieties: type: array items: $ref: '#/components/schemas/UnifiedSubProductMVP' required: - brand - category - created_date - description - display_name - id - license - listing_state - modified_date - name - parent_id - product_line - retail_price - seller - sub_category - unit_denomination - unit_of_measure - wholesale_price UnifiedProductMVPRequest: type: object description: Unified Product serializer. properties: sku: type: string nullable: true minLength: 1 title: Customer SKU description: Stock Keeping Unit. A unique identifier for a Product, alternative to id. maxLength: 255 seller_id: type: integer writeOnly: true description: Company who is selling the Product brand_id: type: integer writeOnly: true description: Brand ID for the product product_line_id: type: integer writeOnly: true description: Product Line ID of product name: type: string minLength: 1 title: Product description: Product Name maxLength: 400 license_id: type: integer writeOnly: true nullable: true description: License ID for the product category_id: type: integer writeOnly: true description: Product category ID for the product sub_category_id: type: integer writeOnly: true description: Product sub-category ID for the product unit_of_measure_id: type: integer writeOnly: true description: Base unit of measure ID for this product unit_denomination_id: type: integer writeOnly: true description: The ID of amount of individual products in one sale unit listing_state: allOf: - $ref: '#/components/schemas/ListingStateEnum' description: Product listing state. Values available at the /listing-states/ endpoint. description: type: string minLength: 1 description: Brand Description maxLength: 7000 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace strains: type: array items: type: integer title: Strains of a product title: Strains of a product description: The cannabis strains associated with this product strain_classification: oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' is_medical_line_item: type: boolean description: Is this a medical line item? grow_type: description: The type of grow operation for the flower product oneOf: - $ref: '#/components/schemas/GrowTypeEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product threshold: allOf: - $ref: '#/components/schemas/ThresholdRequest' nullable: true description: Threshold configuration for inventory alerts product_specification_items: type: array items: $ref: '#/components/schemas/UnifiedProductSpecificationItemRequest' varieties: type: array items: $ref: '#/components/schemas/UnifiedSubProductMVPRequest' required: - brand_id - category_id - description - listing_state - name - retail_price - seller_id - unit_denomination_id - unit_of_measure_id - 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 nullable: true 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 UnifiedProductSpecification: type: object description: Unified Product Specification 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 title: type: string readOnly: true slug: type: string readOnly: true pattern: ^[-a-zA-Z0-9_]+$ show_text: type: boolean readOnly: true parent_id: type: integer nullable: true title: Product Data parent description: Product Data Parent readOnly: true required: - created_date - id - modified_date - parent_id - show_text - slug - title UnifiedProductSpecificationItem: type: object description: Serializer for a product data item. properties: id: type: integer decimal_value: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true max_decimal_value: type: string format: decimal pattern: ^-?\d{0,4}(?:\.\d{0,2})?$ nullable: true text_value: type: string title: Text Value of Product Data description: Text value of product data maxLength: 300 product_specification: allOf: - $ref: '#/components/schemas/UnifiedProductSpecification' readOnly: true unit: allOf: - $ref: '#/components/schemas/UnifiedProductDosageUnit' readOnly: true required: - product_specification - unit UnifiedProductSpecificationItemRequest: type: object description: Serializer for a product data item. properties: id: type: integer decimal_value: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true max_decimal_value: type: string format: decimal pattern: ^-?\d{0,4}(?:\.\d{0,2})?$ nullable: true text_value: type: string title: Text Value of Product Data description: Text value of product data maxLength: 300 product_specification_id: type: integer writeOnly: true description: Product Specification ID for the product unit_id: type: integer writeOnly: true description: Product Dosage Unit ID for the product required: - product_specification_id - unit_id UnifiedProductSubCategory: type: object description: Unified Product Subcategory serializer properties: id: type: integer readOnly: true name: type: string description: Name of Sub-Category maxLength: 40 category: type: integer description: The parent category of this sub-category base_unit_of_measure: type: integer nullable: true description: The base unit of measure for this sub-category. Used for price comparisons. required: - category - id - name UnifiedProductTemplate: type: object description: 'Base serializer class to rename created_on and modified fields to follow new naming standard of created_date and modified_date' 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 template_name: type: string description: Template Name maxLength: 400 listing_state: nullable: true oneOf: - $ref: '#/components/schemas/ListingStateEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' inventory_management: title: Product Inventory Management description: The state that determines how inventory is handled for the Product oneOf: - $ref: '#/components/schemas/InventoryManagementEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' unit_of_measure: type: integer nullable: true description: Unit of measure sell_in_unit_of_measure: type: integer nullable: true description: Unit of measure that buyers see sell_in_multiples: type: boolean default: false unit_multiplier: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many individual units are sold when checking out by Unit of Measure unit_denomination: type: integer nullable: true description: The denomination of unit for the Product. base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product template retail_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Manufacturer's Suggested Retail Price (MSRP) wholesale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Max Wholesale Price sale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Sale Price minimum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Minimum Units per Order maximum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Maximum Units per Order description: type: string nullable: true description: Brand Description maxLength: 7000 category: type: integer nullable: true sub_category: type: integer nullable: true description: The sub-category of the Product (e.g. Bulk Flower, Live Resin, etc) seller: type: integer title: Manufacturer description: Company who is selling the Product brand: type: integer nullable: true description: Brand of product product_line: type: integer nullable: true description: Product Line of product strain_classification: nullable: true oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' license: type: integer nullable: true SHOW_QUANTITY: type: boolean nullable: true title: Show Product quantity description: Show Product Quantity AVAILABLE_FOR_SAMPLES: type: boolean nullable: true description: This product is available for samples threshold_value: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product threshold value description: When Product inventory reaches below this value, take various actions threshold_action: allOf: - $ref: '#/components/schemas/ThresholdActionEnum' title: Product threshold action description: Action to take when Product inventory reaches below a specified value is_medical_line_item: type: boolean description: Is this a medical line item? allow_fractional_quantities: type: boolean nullable: true description: This product quantity can contain decimal places extern_income_acct_id: type: string readOnly: true nullable: true title: External Income Account ID description: The ID number for an external income account cost: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ readOnly: true nullable: true description: Maximum Units per Order required: - cost - created_date - extern_income_acct_id - id - modified_date - seller - template_name UnifiedProductTemplateRequest: type: object description: 'Base serializer class to rename created_on and modified fields to follow new naming standard of created_date and modified_date' properties: template_name: type: string minLength: 1 description: Template Name maxLength: 400 listing_state: nullable: true oneOf: - $ref: '#/components/schemas/ListingStateEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' inventory_management: title: Product Inventory Management description: The state that determines how inventory is handled for the Product oneOf: - $ref: '#/components/schemas/InventoryManagementEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' unit_of_measure: type: integer nullable: true description: Unit of measure sell_in_unit_of_measure: type: integer nullable: true description: Unit of measure that buyers see sell_in_multiples: type: boolean default: false unit_multiplier: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many individual units are sold when checking out by Unit of Measure unit_denomination: type: integer nullable: true description: The denomination of unit for the Product. base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product template retail_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Manufacturer's Suggested Retail Price (MSRP) wholesale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Max Wholesale Price sale_price: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true description: Sale Price minimum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Minimum Units per Order maximum_order: type: string format: decimal pattern: ^-?\d{0,32}(?:\.\d{0,6})?$ nullable: true description: Maximum Units per Order description: type: string nullable: true description: Brand Description maxLength: 7000 category: type: integer nullable: true sub_category: type: integer nullable: true description: The sub-category of the Product (e.g. Bulk Flower, Live Resin, etc) seller: type: integer title: Manufacturer description: Company who is selling the Product brand: type: integer nullable: true description: Brand of product product_line: type: integer nullable: true description: Product Line of product strain_classification: nullable: true oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' - $ref: '#/components/schemas/NullEnum-unified-upstream-marketplace' license: type: integer nullable: true SHOW_QUANTITY: type: boolean nullable: true title: Show Product quantity description: Show Product Quantity AVAILABLE_FOR_SAMPLES: type: boolean nullable: true description: This product is available for samples threshold_value: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Product threshold value description: When Product inventory reaches below this value, take various actions threshold_action: allOf: - $ref: '#/components/schemas/ThresholdActionEnum' title: Product threshold action description: Action to take when Product inventory reaches below a specified value is_medical_line_item: type: boolean description: Is this a medical line item? allow_fractional_quantities: type: boolean nullable: true description: This product quantity can contain decimal places required: - seller - template_name UnifiedRecommendedBrand: type: object properties: id: type: integer readOnly: true name: type: string title: Brand Name description: Name of the Brand maxLength: 400 sponsorship: $ref: '#/components/schemas/Sponsorship' image: type: string format: uri required: - id - image - name - sponsorship UnifiedRecommendedCompany: type: object properties: id: type: integer readOnly: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 sponsorship: allOf: - $ref: '#/components/schemas/Sponsorship' nullable: true readOnly: true image: type: string format: uri required: - id - image - name - sponsorship UnifiedStrain: type: object description: Unified Strain 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 title: Strain Name description: Name of Strain maxLength: 40 company: type: integer nullable: true description: The Company that created the strain. strain_classification: oneOf: - $ref: '#/components/schemas/StrainClassificationEnum' - $ref: '#/components/schemas/BlankEnum-unified-upstream-marketplace' required: - created_date - id - modified_date - name - strain_classification UnifiedSubProductMVP: type: object description: Unified Sub Product serializer. properties: id: type: integer 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 title: Product description: Product Name maxLength: 400 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace unit_denomination: allOf: - $ref: '#/components/schemas/UnifiedUnitDenomination' readOnly: true description: The of amount of individual products in one sale unit unit_of_measure: allOf: - $ref: '#/components/schemas/UnifiedUnitOfMeasure' readOnly: true description: Base unit of measure for this product base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product required: - created_date - modified_date - name - retail_price - unit_denomination - unit_of_measure - wholesale_price UnifiedSubProductMVPRequest: type: object description: Unified Sub Product serializer. properties: id: type: integer name: type: string minLength: 1 title: Product description: Product Name maxLength: 400 wholesale_price: type: object properties: amount: type: number currency: type: string description: Wholesale price displayed in the LeafLink marketplace retail_price: type: object properties: amount: type: number currency: type: string description: Retail price displayed in the LeafLink marketplace unit_denomination_id: type: integer writeOnly: true description: The ID of amount of individual products in one sale unit unit_of_measure_id: type: integer writeOnly: true description: Base unit of measure ID for this product base_units_per_unit: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,15})?$ nullable: true description: Number of base units in one unit of this product required: - name - retail_price - unit_denomination_id - unit_of_measure_id - wholesale_price UnifiedTaxSchedule: type: object description: TaxSchedule GET Serializer properties: id: type: integer name: type: string tax_type: type: string readOnly: true tax_rate: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ unit_type: type: string readOnly: true product_categories: type: array items: type: string readOnly: true required: - id - name - product_categories - tax_rate - tax_type - unit_type UnifiedTraceabilityCompanyCustomer: type: object description: Traceability Company Customer Serializer - returns very limited information properties: id: type: integer readOnly: true display_name: type: string readOnly: true license_number: type: string nullable: true readOnly: true partner_id: type: integer required: - display_name - id - license_number - partner_id UnifiedTraceabilityPackageOrders: type: object properties: short_id: type: string order_number: type: string is_post: type: boolean required: - is_post - order_number - short_id UnifiedUnitDenomination: type: object description: Unified UnitDenomination 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 value: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,5})?$ readOnly: true title: Unit Denomination Value description: Unit Denomination Value name: type: string readOnly: true title: Name of Unit Denomination description: Name of Unit Denomination label: type: string readOnly: true title: Unit Denomination label description: Unit Denomination label description: type: string readOnly: true nullable: true title: Description of Unit Denomination description: Description of Unit Denomination required: - created_date - description - id - label - modified_date - name - value UnifiedUnitOfMeasure: type: object description: Unified UnitOfMeasure 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 unit: type: string readOnly: true plural: type: string readOnly: true title: Plural Form abbreviation: type: string readOnly: true title: Unit Abbreviation multiple: type: boolean readOnly: true title: Bulk unit of measurement ALLOW_FRACTIONAL: type: boolean readOnly: true title: Allow Fractional Quantity universal_name: type: string readOnly: true nullable: true title: Universal Unit Name unconvertible: type: boolean readOnly: true title: Unit not convertible base_only: type: boolean readOnly: true title: Base Unit of Measure Only description: This Unit of Measure is meant to be attached only to SubCategories and not to Products required: - ALLOW_FRACTIONAL - abbreviation - base_only - created_date - id - modified_date - multiple - plural - unconvertible - unit - universal_name UnifiedVendorBrand: type: object properties: id: type: integer readOnly: true name: type: string title: Brand Name description: Name of the Brand maxLength: 400 image: type: string format: uri nullable: true description: Image of the Brand's logo required: - id - name UnifiedVendorCompany: type: object description: Unified API Vendor Company Serializer. properties: id: type: integer readOnly: true address: type: string brands: type: array items: $ref: '#/components/schemas/UnifiedVendorBrand' city: type: string description: type: string description: An overview of the company image: type: string format: uri nullable: true licenses: type: array items: $ref: '#/components/schemas/ComplianceLicense' description: Active (non-archived) licenses only. Archived licenses are excluded. name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 phone: type: string nullable: true description: Phone Number of Company maxLength: 400 website: type: string format: uri nullable: true description: company's website maxLength: 400 address_1: type: string address_2: type: string orders: type: array items: $ref: '#/components/schemas/BuyerOrder' tagline: type: string nullable: true description: Company tagline maxLength: 500 required: - address - address_1 - address_2 - brands - city - id - licenses - name - orders UnreserveRequestRequest: type: object description: Request body for POST .../commands/unreserve. properties: product_id: type: integer minimum: 1 order_id: type: integer minimum: 1 order_product_id: type: integer minimum: 1 quantity: type: string format: decimal pattern: ^-?\d{0,18}(?:\.\d{0,2})?$ created_by: type: integer minimum: 0 metadata: type: object additionalProperties: type: string minLength: 1 required: - created_by - order_id - order_product_id - product_id - quantity User: type: object properties: display_name: type: string nullable: true maxLength: 255 email: type: string format: email nullable: true id: type: integer nullable: true UserRequest: type: object properties: display_name: type: string nullable: true minLength: 1 maxLength: 255 email: type: string format: email nullable: true minLength: 1 id: type: integer nullable: true Vehicle: type: object description: Internal serializer for Vehicle Model. properties: id: type: integer readOnly: true make: type: string nullable: true title: Vehicle Make description: Vehicle Make maxLength: 255 model_year: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Model Year model_name: type: string nullable: true description: Vehicle Model Name maxLength: 255 license_number: type: string nullable: true description: License Number of Vehicle maxLength: 15 capacity: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Capacity has_air_conditioner: type: boolean description: Vehicle Has Air Conditioner state: allOf: - $ref: '#/components/schemas/State-unified-upstream-marketplace' readOnly: true required: - id - state VehicleRequest: type: object description: Internal serializer for Vehicle Model. properties: make: type: string nullable: true title: Vehicle Make description: Vehicle Make maxLength: 255 model_year: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Model Year model_name: type: string nullable: true description: Vehicle Model Name maxLength: 255 license_number: type: string nullable: true description: License Number of Vehicle maxLength: 15 capacity: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true description: Vehicle Capacity has_air_conditioner: type: boolean description: Vehicle Has Air Conditioner ZipCode: type: object description: Serializer for a zip code with optional polygon in a distribution zone. properties: name: type: string description: State or region name (e.g. 'CO') value: type: string description: ZIP code value (e.g. '80939') polygon: type: array items: type: array items: type: number format: double description: List of [lat, lng] coordinates defining the polygon boundary required: - name - value ZipCodeRequest: type: object description: Serializer for a zip code with optional polygon in a distribution zone. properties: name: type: string minLength: 1 description: State or region name (e.g. 'CO') value: type: string minLength: 1 description: ZIP code value (e.g. '80939') polygon: type: array items: type: array items: type: number format: double description: List of [lat, lng] coordinates defining the polygon boundary required: - name - value _SponsorshipsContent: type: object properties: sponsorships: $ref: '#/components/schemas/SponsorshipPayload' required: - sponsorships ChatStatusEnum: enum: - in_progress - completed type: string PromotionStatusEnum: enum: - Pending - Approved - Completed type: string ProductThresholdActionEnum: enum: - default - backorder - unavailable - internal type: string ProductReverseThresholdActionEnum: enum: - default - available - internal type: string CartOrderPomsStatusEnum: enum: - approved - rejected - completed - error type: string BlankEnum-unified-upstream-marketplace: enum: - '' Company-unified-upstream-marketplace: type: object description: API v2 serializer for the Company model. properties: address: type: string announcement: type: string nullable: true description: Company Announcement maxLength: 2000 apply_ancillary_tax: type: boolean readOnly: true apply_arms_length_tax: type: boolean readOnly: true batch_enabled: type: boolean readOnly: true default: true business_identifier: type: string nullable: true title: Business Identifier / UBI description: Company identifier distinct from license numbers maxLength: 100 business_license_name: type: string nullable: true description: Business License Name maxLength: 400 buyer: type: boolean title: Is a Buyer description: Company buys on LeafLink can_access_shop_brands: type: boolean readOnly: true city: type: string dba: type: string description: DBA of company maxLength: 400 description: type: string has_accting: type: boolean title: Enable Accounting Service integration description: When true can access Accounting Services hide_attached_packages: type: boolean title: Hide attached packages? description: Hide seed to sale packages that are mapped to a LeafLink resource? id: type: integer readOnly: true image: type: string format: uri nullable: true name: type: string description: Name of Company (Note this is not the same as Brand) maxLength: 400 seller: type: boolean title: Is a Seller description: Company sells on LeafLink slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ state: type: string sts_enabled: type: boolean zipcode: type: string available_languages: type: array items: {} available_languages_translated: type: array items: type: array items: type: string minLength: 2 maxLength: 2 readOnly: true default_language: type: array items: {} default_language_translated: type: array items: type: string minLength: 2 maxLength: 2 readOnly: true enable_post: type: boolean title: Enable LL PoST description: Whether this company has opted in to Payment on Sell Through current_plan_id: type: string readOnly: true default_payment_on_sell_through_payment_term: $ref: '#/components/schemas/PaymentTerm' is_payment_on_sell_through_default: type: boolean title: Default Payment on Sell-Through description: Is Payment on Sellthrough the default payment method always_share_sell_through_data: type: boolean title: Global override for companies_buyersellerpreferences.sell_through_data_shared description: Enable sell-through data sharing for all sellers in a buyer's CRM required: - address - apply_ancillary_tax - apply_arms_length_tax - available_languages - available_languages_translated - batch_enabled - can_access_shop_brands - city - current_plan_id - dba - default_language - default_language_translated - default_payment_on_sell_through_payment_term - id - name - sts_enabled - zipcode NullEnum-unified-upstream-marketplace: enum: - null State-unified-upstream-marketplace: type: object description: Serializer for State models via the internal API properties: id: type: integer readOnly: true abbr: type: string maxLength: 2 name: type: string maxLength: 100 country: $ref: '#/components/schemas/Country' required: - abbr - country - id - name ErrorSource: type: object properties: pointer: type: string parameter: type: string Error: type: object properties: id: type: string status: type: string code: type: string title: type: string detail: type: string source: $ref: '#/components/schemas/ErrorSource' meta: {} required: - status MultipleErrors: type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' required: - errors NotificationPreferencesPayloadSchema: type: object properties: topic: type: string medium: type: string enabled_timestamp: type: boolean required: - enabled_timestamp - medium - topic NotificationPreferences-unified-upstream-notification-service: type: object properties: topic: type: string medium: type: string enabled_timestamp: type: string format: date-time nullable: true required: - enabled_timestamp - medium - topic 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" security: - bearerAuth: []