---
title: "What the daily updates add up to"
method: GET
path: "/training/patterns"
tags: ["Today"]
---

# What the daily updates add up to

`GET /training/patterns`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/training/patterns`
- Auth: HTTP bearer

One card per exposure with an outcome, each gated before it says anything, plus the running or latest experiment and the experiments on offer. Comparisons of the athlete's own nights; none of it changes training.

## Headers

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

## Response `200`

OK

- object
  - `date` string, date, required: A day on the athlete's own calendar: YYYY-MM-DD, no time zone.
  - `cards` object[], required
    - `exposure` string, required
    - `label` string, required
    - `outcome` string, required: The one outcome fixed for this exposure in advance. Known values: hrv, restingHr, sleep. Treat unknown values as "other".
    - `outcomeLabel` string, required
    - `grade` string, required: How strong the published evidence is that this exposure moves this outcome: strong, moderate, weak.
    - `state` string, required: collecting: not enough nights yet. pattern: every gate passed. no_difference: enough nights, and the difference is within ±0.5 SD. unclear: enough nights, neither. Known values: collecting, pattern, no_difference, unclear. Treat unknown values as "other".
    - `exposureNights` integer, required
    - `comparisonNights` integer, required: Answered "Nothing unusual" nights in the last 90 days with a reading.
    - `neededExposureNights` integer, required
    - `neededComparisonNights` integer, required
    - `effect` number, nullable, required: The difference with yesterday's training accounted for, in `unit` (HRV as a percentage). Null while collecting.
    - `low` number, nullable, required: The 90% interval's lower end.
    - `high` number, nullable, required
    - `unit` string, required
    - `text` string, required
    - `cantTell` string, required: What the comparison can't tell. Always shown with the card.
    - `dose` object[], nullable, required: Drinks only: ordinary nights, 1, 2, and 3 or more, as description.
      - `label` string, required
      - `nights` integer, required
      - `mean` number, nullable, required: The group's mean, shown only with 3 nights or more; HRV as a geometric mean in ms.
      - `unit` string, required
  - `experiment` object, nullable, required: The running experiment, or the latest one.
    - `id` string, required: Opaque identifier.
    - `exposure` string, required
    - `label` string, required
    - `armRule` string, required: remove or add. Known values: remove, add. Treat unknown values as "other".
    - `status` string, required: running, finished or stopped. A stopped one keeps its days and reports nothing. Known values: running, finished, stopped. Treat unknown values as "other".
    - `startsOn` string, date, required: The first arm's night.
    - `lastAnswerOn` string, date, required: The morning of the last answer: starts_on + 14.
    - `schedule` string, required: Fourteen nights, A (the arm) or B (as usual), starts_on first, fixed when it began.
    - `tonight` string, nullable, required
    - `keptNights` integer, required
    - `answeredNights` integer, required
    - `result` object, nullable, required: Once finished; null while running or when stopped.
      - `keptPairs` integer, required
      - `enough` boolean, required
      - `effect` number, nullable, required
      - `low` number, nullable, required
      - `high` number, nullable, required
      - `unit` string, required
      - `text` string, required
  - `offers` object[], required: Experiments that can be started now; empty while one runs.
    - `exposure` string, required
    - `armRule` string, required: remove or add. Known values: remove, add. Treat unknown values as "other".
    - `label` string, required
    - `text` string, required

## Other responses

- `401`: Error: UNAUTHORIZED.

---

[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)
