All responses are JSON unless noted. Values only appear as numbers when Presage marks them stable; otherwise they’re null.

Snapshot

  • mode is demo or live. Demo payloads are always labeled.
  • heldMs means the reading dipped below Presage’s stable threshold and this is the last stable value, that many milliseconds old. It’s held for up to 10 s, then becomes null.
  • traces are [timestamp in microseconds, value] pairs.
  • status.reason carries Presage’s hint when it isn’t measuring, like Move down, or tilt the camera up.

Baseline

source is measured (live), demo, or authored when there weren’t enough stable readings. Blood pressure always comes from the authored baseline, since Presage doesn’t measure it here.

Monitor

GET /monitor?bloodLostMl=1000&bleedMlPerMin=200&weightKg=70