Confident Cannabis Reference Data API
Reference data for sample metadata
Reference data for sample metadata
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/confident-cannabis-reference-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
- description: Reference data for sample metadata
name: Reference Data
paths:
/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/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/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/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/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/orderstatuses:
get:
summary: Get all order statuses
description: Returns a list of all possible order statuses and their IDs.
operationId: getOrderStatuses
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of order statuses
content:
application/json:
schema:
type: object
description: Response containing list of order statuses
required:
- success
- order_statuses
properties:
success:
type: boolean
description: Whether the request was successful
example: true
order_statuses:
type: array
description: Array of order statuses
items:
type: object
description: A possible status for an order
required:
- id
- name
properties:
id:
type: integer
description: Unique ID for the order status
example: 1
name:
type: string
description: Name of the order status
example: Placed
description:
type: string
description: Description of what this status means
example: Order has been placed but not yet verified
examples:
success:
summary: Successful order statuses response
value:
success: true
order_statuses:
- id: 1
name: Placed
description: Order has been placed but not yet verified
- id: 3
name: In Progress
description: Order is currently being processed
- id: 4
name: Completed
description: Order has been completed
- id: 5
name: Canceled
description: Order has been canceled
'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/samplecategories:
get:
summary: Get all sample categories
description: Returns a list of all sample categories.
operationId: getSampleCategories
tags:
- Reference Data
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response with list of sample categories
content:
application/json:
schema:
type: object
description: Response containing list of sample categories
required:
- success
- sample_categories
properties:
success:
type: boolean
description: Whether the request was successful
example: true
sample_categories:
type: array
description: Array of sample categories
items:
type: object
description: A category for grouping sample types
required:
- id
- name
properties:
id:
type: integer
description: Unique ID for the sample category
example: 1
name:
type: string
description: Name of the sample category
example: Cannabis Product
examples:
success:
summary: Successful sample categories response
value:
success: true
sample_categories:
- id: 1
name: Cannabis Product
- id: 2
name: Infused Product
- id: 3
name: Plant Material
'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 thi
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/confident-cannabis/refs/heads/main/openapi/confident-cannabis-reference-data-api-openapi.yml