---
title: "One draw with its results"
method: GET
path: "/labs/draws/{id}"
tags: ["Lab results"]
---

# One draw with its results

`GET /labs/draws/{id}`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/labs/draws/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, required: Opaque identifier.

## Headers

- `X-Client-Platform` string
- `X-Client-Version` string

## Response `200`

OK

- object
  - `id` string, required: Opaque identifier.
  - `localDate` string, date, required: The day of the draw on the athlete's calendar.
  - `collectedTime` string, nullable, required: HH:MM on the athlete's clock, where the report gave a time.
  - `collectedAt` string, date-time, nullable, required: An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.
  - `labName` string, nullable, required
  - `fastingHours` number, nullable, required: Null: not answered.
  - `recentIllness` boolean, nullable, required
  - `ironSupplement10d` boolean, nullable, required: Iron by mouth or infusion in the 10 days before.
  - `biotin` boolean, nullable, required
  - `creatine` boolean, nullable, required
  - `hormoneMedication` boolean, nullable, required: Thyroid or sex-hormone medication, hormonal contraception included.
  - `menstruating` boolean, nullable, required: false: no current cycle.
  - `cycleDay` integer, nullable, required
  - `altitudeM` number, nullable, required: The altitude the athlete lived at, metres.
  - `hoursSinceSession` number, nullable, required: Hours from the end of the athlete's last recorded session to the draw, worked out from their activities when read; null where it can't be told.
  - `source` string, required: How the draw was entered. Known values: manual. Treat unknown values as "other".
  - `results` object[], required
    - `id` string, required: Opaque identifier.
    - `marker` string, required: A catalog key (ferritin, ldl_c, apob, …) or a key made from a printed name the catalog doesn't know.
    - `name` string, nullable, required: The marker's name as printed, where it was typed.
    - `label` string, required: The catalog's name for a known marker, else the printed name.
    - `value` number, required
    - `comparator` string, nullable, required: How a result printed like "<0.5" compares; null for a plain number. Known values: <, <=, >, >=. Treat unknown values as "other".
    - `unit` string, required: As printed.
    - `valueCanonical` number, nullable, required: In `canonicalUnit`, only where the conversion is a fixed factor. Always null for Lp(a).
    - `canonicalUnit` string, nullable, required
    - `method` string, nullable, required: For example the LDL or eGFR equation.
    - `assay` string, nullable, required
    - `rangeLow` number, nullable, required: The lab's range as printed.
    - `rangeHigh` number, nullable, required
    - `rangeText` string, nullable, required: The range as printed, where it isn't two numbers.
    - `labFlag` string, nullable, required: As printed: H, L, critical, …
  - `createdAt` string, date-time, required: An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.
  - `updatedAt` string, date-time, required: An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.

## Other responses

- `401`: Error: UNAUTHORIZED.
- `404`: Error: NOT_FOUND.

---

[API](https://skmtc.dev/bodylab/apis/body-lab-api.md) · [All operations](https://skmtc.dev/bodylab/apis/body-lab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bodylab/apis/body-lab-api/revisions/544c201eaf88?raw)
