Confident Cannabis Test Results API
Submit and manage test results
Submit and manage test results
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-test-results-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Clients Client Info Test Results 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: Submit and manage test results
name: Test Results
paths:
/v0/labs/sample/{sample_id}/test_results:
post:
summary: Submit test results
description: Submits test results for a sample. Test results are organized by category (cannabinoids, terpenes, pesticides, etc.) with compound data and info fields. All numeric values should be strings to preserve precision. Subsequent submissions overwrite previous data.
operationId: submitTestResults
tags:
- Test Results
parameters:
- name: sample_id
in: path
required: true
description: Sample identifier (lab_internal_id, public_key, or regulator_id_to_attach)
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- test_results
properties:
test_results:
type: string
description: JSON string containing test results organized by category. Must be a string, not an object.
example: '{"categories": {"cannabinoids": {"info_fields": {"input_units": "mg/g", "report_units": "mg/g", "date_tested": "2025-01-15"}, "compounds": [{"name": "thc", "value": "18.5"}]}}}'
publish_data:
type: boolean
description: Whether to publish the test results
default: false
date_published:
type: string
format: date
description: Publication date (required if publish_data is true)
examples:
cannabinoids_only:
summary: Simple cannabinoids test
value:
test_results: '{"categories": {"cannabinoids": {"info_fields": {"input_units": "mg/g", "report_units": "mg/g", "date_tested": "2025-01-15"}, "compounds": [{"name": "thc", "value": "18.5"}, {"name": "cbd", "value": "0.8"}]}}}'
publish_data: false
multi_category:
summary: Cannabinoids and Terpenes
value:
test_results: '{"categories": {"cannabinoids": {"info_fields": {"input_units": "mg/g", "report_units": "mg/g", "date_tested": "2025-01-15"}, "compounds": [{"name": "thc", "value": "18.5", "lod": "0.01", "loq": "0.05"}, {"name": "cbd", "value": "0.8"}]}, "terpenes": {"info_fields": {"input_units": "mg/g", "report_units": "mg/g", "date_tested": "2025-01-15"}, "compounds": [{"name": "limonene", "value": "2.5"}, {"name": "myrcene", "value": "1.8"}]}}}'
publish_data: true
date_published: '2025-01-16'
responses:
'200':
description: Test results submitted successfully
content:
application/json:
schema:
type: object
required:
- success
properties:
success:
type: boolean
example: true
'400':
description: Invalid request
content:
application/json:
schema:
type: object
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
error_message:
type: string
error_details:
type: object
'401':
description: Authentication failed
content:
application/json:
schema:
type: object
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
error_message:
type: string
error_details:
type: object
'403':
description: Access denied
content:
application/json:
schema:
type: object
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
error_message:
type: string
error_details:
type: object
'404':
description: Resource not found
content:
application/json:
schema:
type: object
required:
- success
- error_code
- error_message
properties:
success:
type: boolean
example: false
error_code:
type: string
error_message:
type: string
error_details:
type: object
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-ConfidentCannabis-APIKey
description: API key for authentication. Required for all requests.