LabLucid / Docs / Lab API

Lab API

Send a patient’s results to LabLucid and get back a ready-to-share link. The patient opens it and sees their results explained in plain language, in their language, with a chat for follow-up questions — no upload, no login.

Authentication

Base URL: https://api.lablucid.com. Send your API key as either header:

Need a key? Email hello@lablucid.com. Keep it secret — it can create patient-facing result pages.

Send de-identified data. LabLucid does not need and asks you not to send direct patient identifiers (name, date of birth, MRN). Use your own opaque reference in patient_ref; you hold the mapping. See our privacy & data handling page.

Create a report

POST /v1/reports

Send either structured results (preferred) or raw text:

FieldTypeNotes
languagestringen, es, … Defaults to your lab’s default.
resultsarrayStructured results (see below). Preferred.
textstringRaw report text — LabLucid extracts results itself.
external_idstringYour order/report id. Stored, not shown to the patient.
patient_refstringYour patient identifier. Stored, not shown.

Each item in results

FieldType
test_namestring (required)
valuestring — numeric ("162") or qualitative ("negative")
unitstring
ref_low / ref_highnumber
ref_textstring — textual/qualitative reference
flagnormal | high | low | abnormal

Response

{
  "id": "b1c2...",
  "access_token": "xY3...",
  "url": "https://app.lablucid.com/r/xY3..."
}

Give url to the patient (SMS, email, or portal link). It needs no login.

Example

curl -X POST https://api.lablucid.com/v1/reports \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "language": "en",
    "external_id": "ORD-10231",
    "results": [
      {"test_name": "LDL cholesterol", "value": "162", "unit": "mg/dL", "ref_low": 0,  "ref_high": 100, "flag": "high"},
      {"test_name": "Ferritin",        "value": "8",   "unit": "ng/mL", "ref_low": 13, "ref_high": 150, "flag": "low"},
      {"test_name": "Vitamin D",       "value": "21",  "unit": "ng/mL", "ref_low": 30, "ref_high": 100, "flag": "low"}
    ]
  }'

Notes

← Back to Docs