Confident LIMS Reference Data API
Reference data for sample metadata
Reference data for sample metadata
openapi: 3.1.0
info:
title: Clients Client Info Reference Data API
version: 0.16.0
description: API endpoints for clients to view their orders, samples, and associated labs. All endpoints are read-only (GET) and accessible only with client API credentials.
contact:
name: Confident Cannabis API Support
url: https://www.confidentcannabis.com
servers:
- url: https://api.confidentcannabis.com
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Reference Data
description: Reference data for sample metadata
paths:
/v0/clients/sampletypes:
get:
summary: Get all sample types
description: Returns a list of all sample types (hidden from public documentation).
operationId: getClientSampleTypes
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of sample types
content:
application/json:
schema:
type: object
required:
- success
- sample_types
properties:
success:
type: boolean
example: true
sample_types:
type: array
items:
type: object
'401':
description: Authentication failed
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: missing_api_key
error_message:
type: string
example: Missing API key header
error_details:
type: object
additionalProperties:
type: array
items:
type: string
'403':
description: Access denied
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: permission_denied
error_message:
type: string
example: Access denied
error_details:
type: object
additionalProperties:
type: array
items:
type: string
/v0/clients/samplecategories:
get:
summary: Get all sample categories
description: Returns a list of all sample categories (hidden from public documentation).
operationId: getClientSampleCategories
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of sample categories
content:
application/json:
schema:
type: object
required:
- success
- sample_categories
properties:
success:
type: boolean
example: true
sample_categories:
type: array
items:
type: object
'401':
description: Authentication failed
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: missing_api_key
error_message:
type: string
example: Missing API key header
error_details:
type: object
additionalProperties:
type: array
items:
type: string
'403':
description: Access denied
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: permission_denied
error_message:
type: string
example: Access denied
error_details:
type: object
additionalProperties:
type: array
items:
type: string
/v0/clients/sampleproductionmethods:
get:
summary: Get all sample production methods
description: Returns a list of all sample production methods (hidden from public documentation).
operationId: getClientSampleProductionMethods
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of production methods
content:
application/json:
schema:
type: object
required:
- success
- sample_production_methods
properties:
success:
type: boolean
example: true
sample_production_methods:
type: array
items:
type: object
'401':
description: Authentication failed
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: missing_api_key
error_message:
type: string
example: Missing API key header
error_details:
type: object
additionalProperties:
type: array
items:
type: string
'403':
description: Access denied
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: permission_denied
error_message:
type: string
example: Access denied
error_details:
type: object
additionalProperties:
type: array
items:
type: string
/v0/clients/sampleclassifications:
get:
summary: Get all sample classifications
description: Returns a list of all sample classifications (hidden from public documentation).
operationId: getClientSampleClassifications
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of sample classifications
content:
application/json:
schema:
type: object
required:
- success
- sample_classifications
properties:
success:
type: boolean
example: true
sample_classifications:
type: array
items:
type: object
'401':
description: Authentication failed
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: missing_api_key
error_message:
type: string
example: Missing API key header
error_details:
type: object
additionalProperties:
type: array
items:
type: string
'403':
description: Access denied
content:
application/json:
schema:
type: object
description: Error response
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
example: permission_denied
error_message:
type: string
example: Access denied
error_details:
type: object
additionalProperties:
type: array
items:
type: string
/v0/compounds:
get:
summary: Get all compounds
description: Returns a list of all compounds and compound synonyms in Confident Cannabis. This includes alternate spellings and synonyms. All compounds listed can be used in test results submission using the `name` parameter. Response is cached for 30 minutes.
operationId: getCompounds
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of compounds
headers:
Cache-Control:
description: Cache duration
schema:
type: string
example: max-age=1800
content:
application/json:
schema:
type: object
description: Response containing list of compounds
required:
- success
- compounds
properties:
success:
type: boolean
description: Whether the request was successful
example: true
compounds:
type: array
description: Array of compounds and compound synonyms
items:
type: object
description: A compound or compound synonym that can be used in test results
required:
- category
- name
- display_name
- is_synonym
- synonym_for_compound_name
properties:
category:
type: string
description: Test category under which this compound is normally tested
example: Cannabinoids
name:
type: string
description: Unique name used to identify the compound. Use this value when submitting test results.
example: thc
display_name:
type: string
description: Human-readable display name for the compound
example: THC
is_synonym:
type: boolean
description: True if this is a synonym for another compound, false if it is a primary compound
example: false
synonym_for_compound_name:
type: string
description: If is_synonym is true, this contains the name of the primary compound. Empty string otherwise.
example: ''
examples:
success:
summary: Successful compounds response
value:
success: true
compounds:
- category: Cannabinoids
name: thc
display_name: THC
is_synonym: false
synonym_for_compound_name: ''
- category: Cannabinoids
name: cbd
display_name: CBD
is_synonym: false
synonym_for_compound_name: ''
- category: Cannabinoids
name: thca
display_name: THCa
is_synonym: false
synonym_for_compound_name: ''
- category: Terpenes
name: limonene
display_name: Limonene
is_synonym: false
synonym_for_compound_name: ''
- category: Terpenes
name: d-limonene
display_name: d-Limonene
is_synonym: true
synonym_for_compound_name: limonene
'401':
description: Authentication failed - missing or invalid API key, signature, or timestamp
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: missing_api_key
error_message:
type: string
description: Human-readable error message
example: Missing API key header
error_details:
type: object
description: Additional error details (e.g., validation errors)
additionalProperties:
type: array
items:
type: string
examples:
missing_api_key:
summary: Missing API key
value:
success: false
error_code: missing_api_key
error_message: Missing API key header
invalid_api_key:
summary: Invalid API key
value:
success: false
error_code: invalid_api_key
error_message: Invalid API key
invalid_signature:
summary: Invalid signature
value:
success: false
error_code: invalid_signature
error_message: Signature verification failed
'403':
description: Access denied - insufficient permissions
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: permission_denied
error_message:
type: string
description: Human-readable error message
example: You do not have permission to access this resource
error_details:
type: object
description: Additional error details (e.g., validation errors)
additionalProperties:
type: array
items:
type: string
examples:
permission_denied:
summary: Permission denied
value:
success: false
error_code: permission_denied
error_message: You do not have permission to access this resource
/v0/testtypes:
get:
summary: Get all test types
description: Returns a list of all available test types in the system.
operationId: getTestTypes
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of test types
content:
application/json:
schema:
type: object
description: Response containing list of test types
required:
- success
- test_types
properties:
success:
type: boolean
description: Whether the request was successful
example: true
test_types:
type: array
description: Array of test types
items:
type: object
description: A test type available in the system
required:
- id
- name
- abbreviation
properties:
id:
type: integer
description: Unique ID for the test type
example: 1
name:
type: string
description: Full name of the test type
example: Potency
abbreviation:
type: string
description: Short abbreviation for the test type
example: POT
examples:
success:
summary: Successful test types response
value:
success: true
test_types:
- id: 1
name: Potency
abbreviation: POT
- id: 2
name: Terpenes
abbreviation: TERP
- id: 3
name: Pesticides
abbreviation: PEST
- id: 4
name: Microbials
abbreviation: MICRO
- id: 5
name: Heavy Metals
abbreviation: METALS
'401':
description: Authentication failed - missing or invalid API key, signature, or timestamp
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: missing_api_key
error_message:
type: string
description: Human-readable error message
example: Missing API key header
error_details:
type: object
description: Additional error details (e.g., validation errors)
additionalProperties:
type: array
items:
type: string
examples:
missing_api_key:
summary: Missing API key
value:
success: false
error_code: missing_api_key
error_message: Missing API key header
invalid_api_key:
summary: Invalid API key
value:
success: false
error_code: invalid_api_key
error_message: Invalid API key
invalid_signature:
summary: Invalid signature
value:
success: false
error_code: invalid_signature
error_message: Signature verification failed
'403':
description: Access denied - insufficient permissions
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: permission_denied
error_message:
type: string
description: Human-readable error message
example: You do not have permission to access this resource
error_details:
type: object
description: Additional error details (e.g., validation errors)
additionalProperties:
type: array
items:
type: string
examples:
permission_denied:
summary: Permission denied
value:
success: false
error_code: permission_denied
error_message: You do not have permission to access this resource
/v0/sampletypes:
get:
summary: Get all sample types
description: Returns a list of all sample types with their associated categories.
operationId: getSampleTypes
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of sample types
content:
application/json:
schema:
type: object
description: Response containing list of sample types
required:
- success
- sample_types
properties:
success:
type: boolean
description: Whether the request was successful
example: true
sample_types:
type: array
description: Array of sample types
items:
type: object
description: A sample type with its associated category
required:
- id
- name
- category_id
- category_name
properties:
id:
type: integer
description: Unique ID for the sample type
example: 1
name:
type: string
description: Name of the sample type
example: Flower
category_id:
type: integer
description: ID of the category this sample type belongs to
example: 1
category_name:
type: string
description: Name of the category this sample type belongs to
example: Cannabis Product
examples:
success:
summary: Successful sample types response
value:
success: true
sample_types:
- id: 1
name: Flower
category_id: 1
category_name: Cannabis Product
- id: 2
name: Concentrate
category_id: 1
category_name: Cannabis Product
- id: 3
name: Edible
category_id: 2
category_name: Infused Product
'401':
description: Authentication failed - missing or invalid API key, signature, or timestamp
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: missing_api_key
error_message:
type: string
description: Human-readable error message
example: Missing API key header
error_details:
type: object
description: Additional error details (e.g., validation errors)
additionalProperties:
type: array
items:
type: string
examples:
missing_api_key:
summary: Missing API key
value:
success: false
error_code: missing_api_key
error_message: Missing API key header
invalid_api_key:
summary: Invalid API key
value:
success: false
error_code: invalid_api_key
error_message: Invalid API key
invalid_signature:
summary: Invalid signature
value:
success: false
error_code: invalid_signature
error_message: Signature verification failed
'403':
description: Access denied - insufficient permissions
content:
application/json:
schema:
type: object
description: Error response returned when a request fails
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
description: Always false for error responses
example: false
error_code:
type: string
description: Machine-readable error code
enum:
- missing_api_key
- invalid_api_key
- missing_signature
- invalid_signature
- missing_timestamp
- request_too_old
- api_access_denied
- api_access_restricted
- permission_denied
- invalid_request
- not_found
example: permission_denied
error_message:
type: string
description: Human-readab
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/confident-lims/refs/heads/main/openapi/confident-lims-reference-data-api-openapi.yml