---
title: "Read stored wearable measurements and history"
method: GET
path: "/api/sites/wearables/readings"
tags: ["Wearables"]
---

# Read stored wearable measurements and history

`GET /api/sites/wearables/readings`

## Request

- Base URL: `https://sim.animahealth.com`
- URL: `https://sim.animahealth.com/api/sites/wearables/readings`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - API key in cookie `sim_session`

Requires wearables scope. Returns stored synthetic records owned by and visible to wearables in your team's world, including data, versions and provenance. total counts all matching records before pagination. Records retain storage insertion order (not observation-time order); advance offset by the number of items returned until offset reaches total. Pausing simulation time avoids new readings appearing during pagination. No real devices or external health accounts are accessed. data includes metric, value, unit, quality and observedAt (Unix milliseconds); baseline is present only when stored. A disconnected device produces quality=missing with value=null. Seeded history includes steps, heart rate and sleep; connected watches generate steps readings as simulation time advances. This API does not imply that the seeded glucose monitor has glucose measurements.

## Query parameters

- `patient` string
- `offset` integer
- `limit` integer
- `world` string
- `metric` string

## Response `200`

Success

- WearableReadingsPage
  - `items` WearableReading[], required
    - `id` string, required
    - `patientId` string
    - `kind` 'observation', required
    - `title` string, required
    - `status` string, required
    - `owner` 'wearables', required
    - `visibleTo` string[], required
    - `priority` 'routine' | 'urgent', required
    - `createdAt` number, required: Simulation Unix timestamp in milliseconds.
    - `dueAt` number: Simulation Unix timestamp in milliseconds.
    - `data` object, required: Kind-specific payload. Hospital notes, medication orders and blood-test orders use the named schemas; the full workspace payload is returned without projection.
      - `metric` string, required
      - `value` number, nullable, required
      - `unit` string, required
      - `quality` string, required
      - `observedAt` number, required
      - `baseline` number
    - `version` integer, required
    - `provenance` object
      - `created` RecordChange, required
        - `actor` object, required
          - `kind` 'team' | 'operator' | 'simulation', required
          - `name` string, required
        - `source` string, required
        - `action` string, required
        - `time` number, required: Simulation Unix timestamp in milliseconds.
        - `version` integer, required
      - `changes` RecordChange[], required
        - `actor` object, required
          - `kind` 'team' | 'operator' | 'simulation', required
          - `name` string, required
        - `source` string, required
        - `action` string, required
        - `time` number, required: Simulation Unix timestamp in milliseconds.
        - `version` integer, required
      - `recovery` object
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required
  - `now` number, required: Simulation Unix timestamp in milliseconds.

## Other responses

- `400`: Invalid input or unsupported workflow
- `401`: Missing or invalid credentials
- `403`: Scope, origin or operator restriction
- `404`: Unknown resource
- `405`: Read-only endpoint; use GET
- `409`: Stale version, invalid transition or unavailable capacity
- `413`: Request exceeds this operation's body-size limit
- `429`: Deployment has reached its 5,000-team capacity
- `500`: Internal simulation error

---

[API](https://skmtc.dev/animahealth/apis/nhs-sim-api.md) - [All operations](https://skmtc.dev/animahealth/apis/nhs-sim-api/llms.txt) - [OpenAPI document](https://skmtc.dev/animahealth/apis/nhs-sim-api/revisions/c7803d7a3e58?raw)
