# Normals

> https://meetkeely.com/developers/api/normals · Updated 2026-11-06 · Keely, by Metrica Fit LLC

## GET /v1/normals

- **Scope:** `nights`; `profile` for `sleep_goal_minutes`

The person’s current 30-night normals, from their latest scored night: the normal is a weighted average with a 7-night half-life, and the range is ± one standard deviation. `sleep_goal_minutes` needs `profile`; without it, it’s left out and named in `not_allowed`. Before the first Recovery, the normals are `null` with a `note`.

```json Response
{
  "from_night": "2026-09-27",
  "hrv_ms": { "normal": 61.5, "sd": 6.2, "range": [55.3, 67.7], "nights": 30 },
  "resting_hr_bpm": { "normal": 51, "sd": 1.5, "range": [49.5, 52.5], "nights": 30 },
  "breathing_rate_per_min": { "normal": 14, "sd": 0.4, "range": [13.6, 14.4], "nights": 30 },
  "skin_temp_deviation_c": { "normal": 0, "sd": 0.25, "range": [-0.25, 0.25], "nights": 30 },
  "sleep_goal_minutes": 470,
  "note": "Normal is the 30-night weighted average; the range is ± one standard deviation.",
  "as_of": "2026-09-27T15:20:00Z",
  "methodology": "https://meetkeely.com/methodology"
}
```
