API reference
Checks
One endpoint, one document, one filed report. A check reads a laboratory document deterministically, files the report in your workspace, and creates or updates the lot the document identifies.
The endpoint#
POST
/v1/checkAPI keyRequest#
| Field | Type | Notes |
|---|---|---|
document | string, required | The file as base64 (data-URL prefixes accepted). Maximum 8 MB. |
file_name | string | Original filename, e.g. eagle-032626-05.pdf. |
file_type | string | MIME type, e.g. application/pdf. |
supplier | string | The source that made the material. For the pharmacy's own preparation, the pharmacy's own name (or omit: an in-house certificate with no supplier is marked made-in-house). |
customer_ref | string | Optional opaque reference of your own; echoed back in the response. |
curl https://www.veritura.co/v1/check \
-H "Authorization: Bearer vk_test_..." \
-H "Content-Type: application/json" \
-d '{"document": "<base64>", "file_name": "eagle-032626-05.pdf",
"file_type": "application/pdf", "supplier": "Eagle Analytical"}'
Response#
The report and its context, abridged to the fields most integrations branch on:
{
"ok": true,
"checkId": "VTR-CHK-…",
"environment": "sandbox", // or "production", from the key
"document": {
"band": "…", "bandLabel": "…", // the documentation verdict
"score": 0,
"docType": "coa", "dosageForm": "…",
"identity": { /* product, lot, … as read from the document */ },
"read": [ /* every transcribed field, with absence marked */ ],
"findings": [ /* discrepancies, each with severity */ ],
"authenticity": { /* … */ }
},
"labVerification": { /* the route to confirming with the issuing lab; confirmed is always false */ },
"specChecks": { /* … */ }, "predictiveRead": { /* … */ }, "fileForensics": { /* … */ },
"source": { "name": "…", "live": true, "fdaListed": true, "recallHits": 0 },
"nextActions": [ /* … */ ],
"note": "Documentation completeness and consistency only. …"
}
The note travels with every response, verbatim: "Documentation completeness and consistency only. This is not a product quality, safety, approval, or compliance determination. Veritura has not confirmed any report with its issuing lab: labVerification surfaces the route to confirmation and confirmed is always false. Every predictive claim carries its own confidence."
Limits#
- 600 requests per key per minute on a paid plan, and 1,200 with supported API automation (Operations), like every
/v1endpoint. - Each key may have a small number of checks in flight at once (4 by default); beyond that the request is shed immediately with
429,"code": "concurrency_limited", and aRetry-Afterheader: nothing queues, retry after the delay. See rate limits. - Reads are metered per key per day; the workspace shows usage.