GETresults:readBreathing patternsVitals while moving

List vitals history

A historical result: a measurement plus its target, source and revision.

Request

GEThttps://api.cymatics.tech/v1/vitals/history

Send your key as Authorization: Bearer cym_test_…. Requires the results:read scope. Your plan must include Breathing patterns or Vitals while moving; otherwise the API returns 403 feature_not_entitled. Test keys read the simulator; live keys read your paired Cymos.

room_idstringqueryRoom id
person_idstringqueryPerson id
track_idstringqueryTrack id
fromstring (date-time)queryFrom
tostring (date-time)queryTo
limitinteger, ≥ 1 and ≤ 1000queryLimit
cursorstringqueryCursor

Response

200 · application/json
{
  "data": [
    {
      "value": 1,
      "timestamp": "2026-10-24T23:55:30.000Z",
      "confidence": 0.92,
      "object": "result",
      "id": "res_01",
      "signal": "heart_rate_bpm",
      "room_id": "room_bedroom",
      "device_id": "dev_bedroom",
      "track_id": "trk_001",
      "person_id": "person_001",
      "model": {
        "id": "model_vitals",
        "version": "demo-1"
      },
      "received_at": "2026-10-24T23:55:30.000Z",
      "updated_at": "2026-10-24T23:55:30.000Z",
      "revision": 1
    }
  ],
  "meta": {
    "request_id": "req_01",
    "project_id": "proj_demo",
    "livemode": false,
    "generated_at": "2026-10-24T23:55:30.000Z"
  },
  "page": {
    "has_more": false,
    "next_cursor": "cur_01"
  }
}

Errors

  • 429rate_limit_exceeded: Too many requests this minute for the key (or twice that across the project), or too many open streams for the project. Retry after the seconds in Retry-After.quota_exceeded: A live key's project has used its monthly live-hour cap. There is no Retry-After. Don't retry; raise the live-hour cap in the dashboard. Headers: Retry-After, RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset.
  • 503live_unavailable: This operation has no live data for this project yet (for example, no paired Cymo covers it). Don't retry the same request; pair a Cymo that covers it, or build against a test key.service_unavailable: A dependency, such as API key verification, is unreachable, or the project is busy with another write. Retry after the seconds in Retry-After, with backoff.
  • 4XXInvalid request, credential, permission or revision.
  • defaultError with a stable code and request ID.

Every error is a { error, meta } envelope with a stable code. See Errors for each code and whether to retry.

Call it

TypeScript · @cymos/sdk
import { Cymo } from "@cymos/sdk";

const cymo = new Cymo({ apiKey: process.env.CYMO_API_KEY! });

const { data, meta } = await cymo.vitals.history({ room_id: "room_bedroom" });
terminal · cymatics CLI
$ cymatics vitals history --room-id room_bedroom --json
curl
curl "https://api.cymatics.tech/v1/vitals/history?room_id=room_bedroom" \
  -H "Authorization: Bearer $CYMO_API_KEY"
MCP tool
list_vitals_history({ room_id: "room_bedroom" })

The MCP tool list_vitals_history calls this operation with your key.

Try it

GEThttps://api.cymatics.tech/v1/vitals/history?room_id=room_bedroom

Paste a test key and preview the response. Test keys read the simulator, so no device is needed.