Requisition and results
Requisition
curl https://labify-staging-3hnx3fg7ca-uc.a.run.app/api/v1/orders/order_123/requisition \
-H "Authorization: Bearer $JUSTLABS_API_KEY"
Returns { "url": "https://...", "expiresAt": "..." } once the order's
status is requisition_ready. Signed URLs expire in 15 minutes — call
this endpoint again to get a fresh one rather than caching the URL. Before
requisition_ready, this returns 409 not_ready.
Results
curl https://labify-staging-3hnx3fg7ca-uc.a.run.app/api/v1/orders/order_123/results \
-H "Authorization: Bearer $JUSTLABS_API_KEY"
{
"status": "results_ready",
"reportedAt": "2026-09-10T14:32:00.000Z",
"source": "quest",
"pdfs": [
{ "id": "legacy", "label": "Lab Results", "url": "https://...", "expiresAt": "..." }
],
"analytes": [
{
"name": "TSH",
"labTestCode": "899",
"value": 2.1,
"unit": "uIU/mL",
"referenceRange": "0.4-4.5",
"referenceRangeLow": 0.4,
"referenceRangeHigh": 4.5,
"flag": "normal",
"notReported": false,
"reportedAt": "2026-09-10T14:32:00.000Z"
}
]
}
Each pdfs[] entry's url is a signed URL with the same 15-minute
expiry as the requisition endpoint. Before results_ready, this returns
409 not_ready.
flag: null means no clinical verdict was made for that analyte — it is
not equivalent to normal. This happens when Quest reports a value
without a determinable flag, or the analyte was withheld (notReported: true, e.g. a reflexed-out sub-test). Never treat a null flag as
reassuring; surface it to the end user as "no interpretation available"
rather than defaulting your UI to a "normal" state.
ResultFlag (the seven possible non-null values, most to least concerning):
critical_low, low, borderline_low, normal, borderline_high, high, critical_high