---
title: "Active Minutes API: Activity Intensity, Exercise Time and Sedentary Time"
canonical: "https://aifitnessapi.com/data/active-minutes-api"
cluster: "Health Data"
primary_query: "active minutes api"
last_reviewed: "2026-10-18"
description: "Active minutes on each platform: Google's light, moderate and vigorous minutes, Health Connect intensity records, HealthKit exercise time, sedentary time."
publisher: "AIFitnessAPI — independent, not sponsored"
cite_as: "\"Active Minutes API: Activity Intensity, Exercise Time and Sedentary Time\", AIFitnessAPI, https://aifitnessapi.com/data/active-minutes-api"
---

# Active Minutes API: Activity Intensity, Exercise Time and Sedentary Time

> No two platforms define active minutes the same way. The Google Health API's active-minutes type reports whole minutes at light, moderate and vigorous activity levels, and its active-zone-minutes type counts a minute as 1 in the fat-burn zone and 2 in the cardio or peak zones; Health Connect's ActivityIntensityRecord stores moderate or vigorous intervals and aggregates them into weighted intensity minutes behind a feature check, without stating the weights in its reference; Apple HealthKit's appleExerciseTime measures time spent exercising, with appleMoveTime for full-body movement time. Only the Google Health API reports sedentary time as data, as periods of not moving while the device is worn. Show each figure under its platform's own name rather than as one 'active minutes' number.

- Canonical: https://aifitnessapi.com/data/active-minutes-api
- Last reviewed: 2026-10-18
- Publisher: AIFitnessAPI (https://aifitnessapi.com) — independent, not sponsored
- Cite as: "Active Minutes API: Activity Intensity, Exercise Time and Sedentary Time", AIFitnessAPI, https://aifitnessapi.com/data/active-minutes-api

---

"Active minutes" is a product term, and every platform that stores it has written its own definition into the schema. The definitions are close enough to look interchangeable on a dashboard and different enough that a user with a watch on each wrist would see two numbers that never agree. The useful work is knowing which definition each number carries.

## Four definitions side by side

| Platform | Type | What counts | Shape |
|---|---|---|---|
| Google Health API | [`active-minutes`](/google-health-api/active-minutes) | "Number of whole minutes spent in activity," at a level of `LIGHT`, `MODERATE` or `VIGOROUS` | Interval, 1-minute resolution; at most one entry per level in a data point |
| Google Health API | [`active-zone-minutes`](/google-health-api/active-zone-minutes) | minutes in a heart rate zone, where the value "equals to 1 for low intensity (fat burn) zones or 2 for high intensity zones (cardio, peak)" | Interval, 1-minute resolution, zones `FAT_BURN`, `CARDIO`, `PEAK` |
| Android Health Connect | [`ActivityIntensityRecord`](/health-connect/activity-intensity-record) | "Intensity can be either moderate or vigorous." | Interval records with an intensity type |
| Apple HealthKit | [`appleExerciseTime`](/healthkit-identifiers/apple-exercise-time) | "the amount of time the user spent exercising" | cumulative, time units, from iOS 9.3 |

Read from Google's documentation on 2026-10-17 and 2026-10-03 and from Apple's on 2026-10-02. Wear OS Health Services has no active-minutes data type among its 65 constants: its nearest, `ACTIVE_EXERCISE_DURATION_TOTAL`, is "The total time the Exercise was ExerciseState.ACTIVE in seconds," and Google notes that it is only intended for use with exercise goals and that data points are not delivered for it. None of the Bluetooth characteristics here carries active minutes either.

Apple has a second, narrower type. [`appleMoveTime`](/healthkit-identifiers/apple-move-time) measures "the amount of time the user has spent performing activities that involve full-body movements during the specified day," and Apple's discussion explains its place: "For younger users, HealthKit’s activity summary can track move time instead of active energy burned." It is available from iOS 14.5.

## Light minutes exist only in the cloud

Google's `active-minutes` keeps a light level; Health Connect's record has two constants only, `ACTIVITY_INTENSITY_TYPE_MODERATE` and `ACTIVITY_INTENSITY_TYPE_VIGOROUS`. A light-activity figure from a Fitbit or Pixel device has nowhere to go in Health Connect's intensity record.

Google's API also has a third vocabulary. Its [`activity-level`](/google-health-api/activity-level) type, which Google's schema calls an "Internal type to capture activity level during a certain time interval," tags intervals as `SEDENTARY`, `LIGHTLY_ACTIVE`, `MODERATELY_ACTIVE` or `VERY_ACTIVE`, and Google's migration table describes it as capturing "the user's activity level (such as sedentary or active) over a specific period of time." Google's table lists only `list` and `reconcile` for it, although the discovery document defines rollups for it; the [activity-level page](/google-health-api/activity-level) shows both disagreements as flags.

## Weighted minutes: one platform states the weights

Google documents its weighting: an Active Zone Minute counts 1 in the fat-burn zone and 2 in cardio or peak, and the rollup returns separate sums per zone, `sumInFatBurnHeartZone`, `sumInCardioHeartZone` and `sumInPeakHeartZone`.

Health Connect's `INTENSITY_MINUTES_TOTAL` aggregate is described as "the number of weighted intensity minutes," and the reference read on 2026-10-03 does not say what the weights are. The same record also offers `DURATION_TOTAL`, `MODERATE_DURATION_TOTAL` and `VIGOROUS_DURATION_TOTAL` as plain durations. If you need a number you can explain to a user, our recommendation is to read the two durations and apply a weighting you document yourself, rather than displaying a weighted total whose rule you cannot state.

Two more Health Connect details shape the code. The record arrived in connect-client 1.2.0-alpha06, an alpha release, and Google's reference says reading or writing it depends on the installed Health Connect version: call `getFeatureStatus` with `FEATURE_ACTIVITY_INTENSITY` first. Reads need `android.permission.health.READ_ACTIVITY_INTENSITY`.

## Sedentary time

Google's [`sedentary-period`](/google-health-api/sedentary-period) type is the only sedentary data here. Its schema says the data "represents the periods of time that the user was sedentary (i.e. not moving while wearing the device)," so by Google's definition time with the device off the wrist is not sedentary time. The rollup returns `durationSum`, "The total time user spent sedentary during the interval." Google's table marks the type with webhook support and lists 28 compatible devices, and its migration table maps the Fitbit Web API's sedentary-minutes time series to it.

Nothing on the other platforms matches it. HealthKit's [`appleStandTime`](/healthkit-identifiers/apple-stand-time) measures "the amount of time the user has spent standing," which is not the same thing as time not sitting still. Bluetooth's User Data service has a [Sedentary Interval Notification](/bluetooth-fitness#char-sedentary-interval-notification) characteristic, but the SIG describes it as "the sedentary time interval after which a user wants to be notified": a reminder setting, not a measurement.

## How each one is read

- **Google Health API:** both minute types list `list`, `reconcile`, `rollup` and `dailyRollup` with webhook support. Google's table lists 10 compatible devices for `active-minutes` and 19 for `active-zone-minutes`.
- **Health Connect:** aggregate requests for the four metrics above, after the feature check.
- **HealthKit:** cumulative, so `.cumulativeSum` over the interval you want.

## Traps

- **Summing definitions.** Google's light, moderate and vigorous minutes, Health Connect's moderate and vigorous durations and Apple's exercise time are three measurements. Adding them across platforms produces a number nobody defined.
- **Weighted versus unweighted.** An Active Zone Minute total and a minutes-in-zone duration are different quantities, and so are Health Connect's weighted total and its durations.
- **Feature-gated record.** On a device whose Health Connect lacks the feature, the intensity record is unavailable; design the empty state.
- **Worn time.** Google's sedentary periods require the device to be worn, so a day with little sedentary time may be a day the device sat on a charger.

For the zones behind Active Zone Minutes, see the [heart rate zones API](/data/heart-rate-zones-api) guide.

## Before you ship

Re-read each type page before release; they regenerate from Google's and Apple's documentation. Label every figure with its platform's definition, keep light minutes out of Health Connect, check the intensity feature before reading, and do not present a weighted total without saying what was weighted.

## FAQ

### Does Health Connect record light-intensity activity minutes?

No. ActivityIntensityRecord has two intensity constants, ACTIVITY_INTENSITY_TYPE_MODERATE and ACTIVITY_INTENSITY_TYPE_VIGOROUS, and Google's reference says intensity can be either moderate or vigorous. The Google Health API's active-minutes type does keep a LIGHT level beside MODERATE and VIGOROUS, so light minutes from a Fitbit or Pixel device have no matching Health Connect intensity record.

[Permalink](https://aifitnessapi.com/data/active-minutes-api#faq-1)

### How are Active Zone Minutes weighted in the Google Health API?

Google's field description says an Active Zone Minute equals 1 for the low-intensity fat-burn zone and 2 for the high-intensity cardio and peak zones. Each active-zone-minutes data point names its zone, FAT_BURN, CARDIO or PEAK, and the rollUp and dailyRollUp methods return separate sums for each zone. Health Connect's weighted INTENSITY_MINUTES_TOTAL does not state its weights in the reference read on 2026-10-03.

[Permalink](https://aifitnessapi.com/data/active-minutes-api#faq-2)

### Is HealthKit exercise time the same thing as active minutes?

Not by definition. Apple describes appleExerciseTime as measuring the amount of time the user spent exercising, a cumulative value in time units, without naming an intensity level, while Google's active minutes are split into light, moderate and vigorous and Health Connect's records are moderate or vigorous intervals. Show Apple's figure as exercise time and keep it out of a cross-platform intensity total.

[Permalink](https://aifitnessapi.com/data/active-minutes-api#faq-3)

### Which API reports sedentary time?

Of the platforms this site covers, only the Google Health API reports it as data. Its sedentary-period type records periods when the user was not moving while wearing the device, and its rollup returns durationSum, the total sedentary time in the interval. HealthKit's nearest type, appleStandTime, measures time spent standing, and Bluetooth's Sedentary Interval Notification is a reminder setting rather than a measurement.

[Permalink](https://aifitnessapi.com/data/active-minutes-api#faq-4)
