Certificates of Analysis API

Get access to your certificates of analysis data through Cloudbox's v1 API.

Retrieving Certificates of Analysis

Lab COAs and other compliance documents, optionally linked to a SKU.

Use GET /api/v1/coas to page through every record in your organization, or GET /api/v1/coas/{id} to fetch a single record. The id is a string, and a 404 means it doesn't exist in your organization.

API Endpoint

GET
/api/v1/coas
GET
/api/v1/coas/{id}

Required Headers

Every request must include the following:

Header Key
Description
org-api-key
Your Organization API key. Contact Cloudbox Support For Access: support@cloudboxapp.com.
user-api-key
Your User API Key

Requests missing either header will return 401 Unauthorized

Example Request

bash curl -X GET "https://app.cloudboxapp.com/api/v1/coas?limit=100" \ -H "org-api-key: YOUR_ORG_API_KEY" \ -H "user-api-key: YOUR_USER_API_KEY" \ -H "Accept: application/json"

Response Schema

Column
Type
Description
id
integer
Unique ID
sku_id
string, nullable
References SKU. Filterable (exact)
document_type
string
Filterable (exact)
product_name
string, nullable
strain
string, nullable
batch
string, nullable
Filterable (exact)
category
string, nullable
sample_type
string, nullable
lab
string, nullable
license
string, nullable
vendor
string, nullable
client
string, nullable
merchant
string, nullable
result
string, nullable
Filterable (exact)
thc_percent
number, nullable
delta8_thc_percent
string, nullable
delta9_thc_percent
string, nullable
terps_percent
number, nullable
test_results
object (JSON)
date
string (YYYY-MM-DD), nullable
Sortable
date_received
string, nullable
analysis_completed_date
string, nullable
manufacture_date
string (YYYY-MM-DD), nullable
expiration_date
string (YYYY-MM-DD), nullable
Sortable
file_name
string, nullable
notes
string, nullable
created_at
string (ISO 8601)
Creation timestamp (UTC). Sortable

Filters

limitPage size (default 100, max 1000)
offsetNumber of records to skip (default 0)
sortOne of: date, expiration_date, created_at
orderasc | desc
sku_idCOAs linked to this SKU
batchExact batch match
document_typeDocument type
resultLab result
searchCase-insensitive partial match on product name
created_sinceOnly records created at or after this ISO 8601 timestamp
default sortcreated_at descending

Errors

Cloudbox uses standard HTTP status codes to indicate API success or failure:

  • 200–299 – Request succeeded
  • 400 – Bad request (missing parameters, invalid values)
  • 401 – Unauthorized (missing or invalid API keys)
  • 404 – Resource not found
  • 429 – Too many requests (rate limited)