Skip to content

Stress Tracking API

Stress data from every wearable, in one schema

Vendor stress scores and the electrodermal and HRV-derived signals underneath them.

Stress visualisation

2/3

providers connectable today

3

webhook event types

Canonical unit

provider-defined score; EDA in microsiemens

What stress looks like through one API

Stress scores on consumer wearables are almost always a transformation of heart-rate variability, sometimes combined with activity and, on a few devices, electrodermal activity. No device measures stress; they measure autonomic arousal and label it.

That labelling is the problem. Autonomic arousal from a hard interval session and arousal from a difficult meeting look similar to the sensor, and vendors handle the ambiguity differently — some suppress stress scoring during detected exercise, some do not. A user who trains hard will see a "high stress" day that reflects training load.

WearLink delivers the vendor score attributed to its source and keeps Garmin's continuous stress level as its own series, alongside electrodermal activity where the hardware reports it. If you need a signal you can explain to users, the HRV streams are the more honest foundation.

Where providers disagree

Exercise and stress are hard to separate

Both raise arousal. Vendors differ in whether they mask stress scoring during workouts. Cross-referencing against the workout stream before surfacing a "stressed" state avoids telling users their training session was a bad day.

Scales are proprietary and not comparable

Garmin, Fitbit and Samsung each define their own range and thresholds. A 60 on one is not a 60 on another, and there is no published mapping.

EDA is session-based, not continuous

Electrodermal activity on consumer hardware is captured during a deliberate short session rather than passively all day, so it produces sparse point-in-time data rather than a timeline.

Coverage collapses whenever the device comes off

Stress scoring needs near-continuous heart-rate variability sampling, which stops the moment a watch goes on the charger. Vendors handle the resulting hole differently — some emit nulls, some carry the last value forward, some quietly interpolate — and none of them label which they did. A user who charges mid-afternoon every day will show a systematic pattern that is an artefact of their charging habit rather than their life. Check sample density before averaging a day, and treat a sparse day as missing rather than calm.

Webhook events for stress

Summary: stress.created

Series streams:

  • series.garmin_stress_level.created
  • series.electrodermal_activity.created

The full catalogue is in the event catalogue.

FAQ

Stress — frequently asked questions

What is a wearable stress score actually measuring?
Autonomic arousal, derived mostly from heart-rate variability. It is a proxy with a marketing name, not a direct measurement of psychological stress.
Which providers report stress through WearLink?
Garmin, Fitbit and Samsung Health. Garmin's continuous stress level is delivered as its own series rather than folded into a generic field.
Should I show users the vendor score or build my own?
If your users are on mixed hardware, build your own from normalised HRV so the number means the same thing for everyone. If they are single-vendor, the native score matches what their own app shows, which reduces confusion.

Get stress from every device your users own

Free for up to 3 connected users. No credit card. Your first API key is issued the moment you sign up.