Item Types

Given a TaskType, this is the representation of the data behind it.

Every item shares a common set of fields such as its id, date, source, and type that are described below. The type field tells you which kind of record it is, and each type below (Activity, Weight, Sleep, etc.) documents the additional fields specific to that kind of data.

Common

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Source Attribution

Every item carries an attribution naming where it came from, in the user’s language, and a device naming the model that recorded it when its provider said. Show the attribution wherever you show the item, rather than providerType, which is an identifier. When requiredAttribution is true, the item’s source requires that attribution beside its data wherever it is shown, including anything derived from it.

Activity

This describes an activity. It extends Common where type equals Activity.

JSON ItemData TypeDescription
activityStringGeneral Summary of the Activity or Exercise Type, generally in one word.
fitnessSyncerActivityStringSimilar to the activity, however, the activity is the raw string from the service and fitnessSyncerActivity is the FitnessSyncer normalized activity Read-only.
titleStringA human readable title of the activity.
distanceKMDoubleDistance of the Activity in KM. Use 0 if not applicable.
durationDoubleDuration in Seconds. Use 0 if not applicable.
caloriesIntegerCalories Burned
bmrIntegerBasal Metabolic Rate
endDateLongEnd Time in milliseconds since the Epoch in UTC (if not summary) Read-only.
stepsIntegerNumber of steps for this activity.
avgHeartrateIntegerAverage heart rate for the activity.
minHeartrateIntegerMinimum heart rate for the activity.
maxHeartrateIntegerMaximum heart rate for the activity.
restingHeartrateIntegerResting heart rate for the activity.
avgStressLevelIntegerAverage Stress Level
minStressLevelIntegerMinimum Stress Level
maxStressLevelIntegerMaximum Stress Level
lowStressDurationSecondsIntegerSeconds Under Low Stress
mediumStressDurationSecondsIntegerSeconds Under Medium Stress
highStressDurationSecondsIntegerSeconds Under High Stress
vo2MaxIntegerVO2Max Level
respiratoryRateDoubleRespiratory Rate
mindfulMinutesIntegerMindful Minutes
summaryBooleanIf this is a daily summary snapshot, this will be true. Generally when this is true, the date of the item will also be at midnight UTC of that date.
temperatureCelsiusDoubleAverage Temperature in Celsius
avgCoreTemperatureCelsiusDoubleAverage core body temperature in Celsius across the activity, derived from the Laps. Distinct from temperatureCelsius, which is ambient temperature. Read-only.
minCoreTemperatureCelsiusDoubleMinimum core body temperature in Celsius across the activity, derived from the Laps. Read-only.
maxCoreTemperatureCelsiusDoubleMaximum core body temperature in Celsius across the activity, derived from the Laps. Read-only.
repetitionsIntegerNumber of repetitions, especially for things like Push-Ups
weightDoubleWeights used for the exercise in KG
rpeDoubleRating of Perceived Exertion for the exercise, on the Borg CR10 scale.
manualBooleanTrue if this was manually entered; false if not know or was not.
floorsClimbedIntegerApproximate Number of Floors Climbed
paceDoublePace in KM Read-only.
speed_avgDoubleAverage Speed in Meters per Second Read-only.
speed_maxDoubleMax Speed in Meters per Second Read-only.
elevation_minDoubleMin Elevation in Meters Read-only.
elevation_maxDoubleMax Elevation in Meters Read-only.
elevation_gainDoubleElevation Gain in Meters Read-only.
elevation_decentDoubleElevation Descent in Meters Read-only.
gpsGPSDataStructure of the GPS and detailed information
Fields from Common

These are the fields of Common, which every Activity also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791849600000,
    "summary": true,
    "distance": 6.4280952380952385,
    "activity": "Steps",
    "distanceKM": 10.345016502857144,
    "calories": 2574,
    "type": "Activity",
    "title": "Daily Activity Tracking",
    "steps": 13499,
    "avgHeartrate": 0,
    "providerType": "FitnessSyncer",
    "duration": 6749.5,
    "itemId": "8edc63af-0777-8e68-9343-c275e2bceca5",
    "apiVersion": "2026-10-25",
    "fitnessSyncerActivity": "Steps",
    "attribution": "FitnessSyncer Notebook",
    "requiredAttribution": false,
    "floorsClimbed": 5,
    "restingHeartrate": 56
}

Example with a Track

{
    "date": 1791913920000,
    "elevation_max": 85,
    "distance": 5.315283255097417,
    "activity": "Running",
    "speed_avg": 11.486161879895562,
    "endDate": 1791916601000,
    "type": "Activity",
    "title": "Evening Run",
    "elevation_gain": 88.37372399295117,
    "avgHeartrate": 147,
    "providerType": "FitnessSyncer",
    "duration": 2681,
    "apiVersion": "2026-10-25",
    "elevation_decent": 89.42786682713057,
    "moving": 2680,
    "pace": 5.22367703218767,
    "distanceKM": 8.554119214891498,
    "gps": {
        "date": 1791913920000,
        "lap": [{
            "start": 1791913920000,
            "dist": 8554.119214891498,
            "maxHeart": 149,
            "calories": 441,
            "millis": 2680000,
            "avgHeart": 144.00743494423793,
            "totalMovingTimeMillisCalc": 2680000,
            "points": [
                {
                    "altitude": 70,
                    "heartRate": 128,
                    "time": 1791913920000,
                    "point": {
                        "lng": -75.6972,
                        "lat": 45.4215
                    }
                },
                {
                    "altitude": 71.05414283417939,
                    "distance": 31.918355279445887,
                    "heartRate": 126,
                    "time": 1791913930000,
                    "point": {
                        "lng": -75.69679106707889,
                        "lat": 45.42150336473386
                    }
                },
                {
                    "altitude": 72.10307308422828,
                    "distance": 63.836710558891774,
                    "heartRate": 131,
                    "time": 1791913940000,
                    "point": {
                        "lng": -75.6963823589195,
                        "lat": 45.421513457086064
                    }
                }
            ]
        }],
        "id": "",
        "title": "",
        "sport": "Running"
    },
    "calories": 441,
    "steps": 0,
    "itemId": "fa7fc879-abff-ba4b-81b4-f12d103ca7c6",
    "elevation_min": 55,
    "fitnessSyncerActivity": "Running",
    "attribution": "FitnessSyncer Notebook",
    "requiredAttribution": false
}

Arrays longer than 10 entries are cut to their first 3 here. The API sends them in full.

GPSData

JSON ItemData TypeDescription
idStringId of the GPS Event
titleStringTitle of the Stream
sportStringSport
dateLongDate of the event as a long of the number of milliseconds since the Epoch in UTC
lapArray of Lap

Lap

JSON ItemData TypeDescription
startLongStart time of this Lap in milliseconds since the Epoch in UTC
millisIntegerDuration in milliseconds
totalMovingTimeMillisIntegerMoving Time in milliseconds (if specified)
totalMovingTimeMillisCalcIntegerThis will either be equal to totalMovingTimeMillis or be the version we have calculated. This is a read-only field.
distDoubleDistance in Meters
caloriesIntegerCalories Expended for this Lap
speedDoubleSpeed in Meters per Second
maxHeartDoubleMaximum heart rate in this Lap
avgHeartDoubleAverage heart rate in this Lap
cadenceDoubleCadence for this Lap
sportStringOnly specified if different than the GPSData sport or a multisport activity.
notesStringNotes for this Lap
hrrDoubleHeart Rate Recovery
avgCoreTemperatureDoubleAverage core body temperature in Celsius for this Lap. Taken from the source file when it supplies one, and computed from the Lap’s points when it does not.
minCoreTemperatureDoubleMinimum core body temperature in Celsius for this Lap.
maxCoreTemperatureDoubleMaximum core body temperature in Celsius for this Lap.
avgSmo2DoubleAverage muscle oxygen saturation percentage for this Lap.
avgLeftRightBalanceDoubleThe left pedal’s average share of this Lap’s total power, as a percentage, as the device computed it. The right share is 100 minus it.
avgLeftTorqueEffectivenessDoubleAverage left leg torque effectiveness for this Lap, as a percentage.
avgRightTorqueEffectivenessDoubleAverage right leg torque effectiveness for this Lap, as a percentage.
avgLeftPedalSmoothnessDoubleAverage left leg pedal smoothness for this Lap, as a percentage.
avgRightPedalSmoothnessDoubleAverage right leg pedal smoothness for this Lap, as a percentage.
avgCombinedPedalSmoothnessDoubleAverage pedal smoothness across both legs for this Lap, as a percentage.
avgLeftPcoDoubleAverage left platform center offset for this Lap, in millimeters. Negative is inboard.
avgRightPcoDoubleAverage right platform center offset for this Lap, in millimeters. Negative is inboard.
pointsArray of Point

Point

JSON ItemData TypeDescription
timeLongTime of this event in milliseconds since the epoch in UTC
distanceDoubleDistance in Meters
pointLatLngLatitude and Longitude for this point.
altitudeDoubleAltitude in meters
heartRateDoubleHeart rate in beats per minute at this time
speedDoubleSpeed in meters per second
cadenceDoubleCadence
caloriesDoubleCalories Burned
hrvArray of Double
hrv_sdnnDoubleHeart Rate Variability in SDNN
powerDoublePower in Watts
estimatedPowerDoubleEstimated Power in Watts
temperatureDoubleAmbient or device temperature in Celsius. Replaces temp, which is still emitted alongside it for now. On input temperature takes precedence when both are supplied.
coreTemperatureDoubleCore body temperature in Celsius, as measured by a heat-flux sensor. Distinct from temperature, which is ambient or device temperature.
skinTemperatureDoubleSkin surface temperature in Celsius at this point.
coreDataQualityIntegerSensor-reported confidence in the core temperature reading, 0 (worst) to 4 (best). Present only when the source device supplies it.
smo2DoubleMuscle oxygen saturation as a percentage (0-100).
thbDoubleTotal haemoglobin concentration in g/dL.
leftRightBalanceDoubleThe left pedal’s share of total power at this point, as a percentage, so a 48/52 ride reads 48 here and the right share is 100 minus it. Recorded by a dual-sided power meter.
leftTorqueEffectivenessDoubleLeft leg torque effectiveness at this point, as a percentage: the share of the pedal stroke that drove the bike forward.
rightTorqueEffectivenessDoubleRight leg torque effectiveness at this point, as a percentage.
leftPedalSmoothnessDoubleLeft leg pedal smoothness at this point, as a percentage: how evenly power was applied through the stroke.
rightPedalSmoothnessDoubleRight leg pedal smoothness at this point, as a percentage.
combinedPedalSmoothnessDoublePedal smoothness across both legs at this point, as a percentage, as the head unit reported it.
leftPcoDoubleLeft platform center offset at this point, in millimeters, where the foot pressed relative to the center of the pedal. Negative is inboard.
rightPcoDoubleRight platform center offset at this point, in millimeters. Negative is inboard.
stepsDoubleSteps moved up-to this point from the last point.
torqueDoubleTorque
locationAccuracyDoubleRating of the location accuracy
bearingDoubleBearings in Radians
tiltDoubleTilt in Radians
pedometerCadenceDoubleCurrent Cadence
crankCadenceDoubleCrank Cadence
crankRevolutionDeltaIntegerCrank Revolution Delta
wheelCadenceDoubleWheel Cadence
wheelRevolutionDeltaIntegerWheel Revolution Delta
movingBooleanTrue if this is considered to be in motion.
stanceTimeDoubleStance Time
legSpringStiffnessDoubleLeg Spring Stiffness
stressDoubleStress
formPowerDoubleForm Power
verticalOscillationDoubleVertical Oscillation
vo2MaxDoubleVO2 Max
respiratoryRateDoubleRespiratory Rate

LatLng

JSON ItemData TypeDescription
latDoubleLatitude
lngDoubleLongitude

Allergy

This describes an allergy. It extends Common where type equals Allergy.

JSON ItemData TypeDescription
allergyStringAllergy Name
isNegatedBooleanTrue if the treatment negates the allergy
treatmentStringTreatment of allergy
endDateLongTime in milliseconds since the Epoch in UTC of when this medication was last used. 0 implies that it is ongoing.
Fields from Common

These are the fields of Common, which every Allergy also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791882000000,
    "itemId": "8f27722e-6424-2c94-5313-a8b34fe58812",
    "treatment": "Avoid",
    "provider": "FitnessSyncer",
    "attribution": "FitnessSyncer Notebook",
    "isNegated": false,
    "allergy": "Penicillin",
    "type": "Allergy",
    "requiredAttribution": false
}

Weight

This describes a body composition record. It extends Common where type equals Weight.

A weigh-in and a bone densitometry scan are both this type. What tells them apart is boneDensity: a weigh-in has none, and a scan has one BoneDensity for every skeletal site its report named.

JSON ItemData TypeDescription
weightDoubleWeight in KG
heightDoubleHeight in Meters
fatFreeMassDoubleFat Free Mass in KG
fatRatioDoubleFat Ratio
boneMassDoubleBone Mass in KG
bodyWaterKgDoubleBody Water in KG
extracellularWaterDoubleExtracellular Water in KG
intracellularWaterDoubleIntracellular Water in KG
visceralFatDoubleVisceral Fat in the BIA scale.
boneDensityArray of BoneDensityOne entry per skeletal site a densitometry scan reported. Absent on an ordinary weigh-in, which is most items of this type. Its presence is what makes this item a scan rather than a weight.
scannerStringThe machine a densitometry scan was performed on, when the report named one. Kept because densities from different manufacturers are not interchangeable, so it is what decides whether two scans can be compared at all.
bmiDoubleBody Mass Index. May be calculated if the User Preferences has the user’s height.
muscleMassDoubleMuscle Mass in KG
fatMassWeightDoubleFat Mass Weight in KG
bicepDoubleBicep in CM
calfDoubleCalf in CM
chestDoubleChest in CM
forearmDoubleForearm in CM
hipsDoubleHips in CM
neckDoubleNeck in CM
thighDoubleThigh in CM
waistDoubleWaist in CM
caliperChestDoubleChest Caliper in MM
caliperMidaxillaryDoubleMidaxillary Caliper in MM
caliperBicepDoubleBicep Caliper in MM
caliperAbdominalDoubleAbdominal Caliper in MM
caliperSuprailiacDoubleSuprailiac Caliper in MM
caliperThighDoubleThigh Caliper in MM
caliperCalfDoubleCalf Caliper in MM
caliperSubscapularDoubleSubscapular Caliper in MM
caliperTricepDoubleTricep Caliper in MM
caliperLowerBackDoubleLower Back Caliper in MM
Fields from Common

These are the fields of Common, which every BodyComposition also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791873660000,
    "fatFreeMass": 62.357432661318484,
    "bodyWater": 55.110151791069164,
    "fatRatio": 20.957863596279292,
    "weight": 78.89138059580986,
    "type": "Weight",
    "providerType": "FitnessSyncer",
    "fatMassWeight": 16.53394793449138,
    "itemId": "623ba781-a69c-8e16-3940-9526876c4d66",
    "apiVersion": "2026-10-25",
    "bodyWaterKg": 43.4771595964209,
    "boneMass": 3.2,
    "attribution": "FitnessSyncer Notebook",
    "requiredAttribution": false,
    "muscleMass": 59.15743266131848,
    "height": 1.78,
    "bmi": 24.89943839029474
}

BoneDensity

This describes one skeletal site’s reading inside a densitometry scan. A number here is absent rather than zero when the scan did not report it, because zero is not a plausible density and a Z-score of zero is a real reading.

FitnessSyncer relays what the scan said and never derives or interprets it, so a T-score or a Z-score is the one the machine printed.

JSON ItemData TypeDescription
siteStringThe canonical site, or absent for a label that did not resolve, in which case name is the only thing identifying it. Must be one of: LumbarSpine, FemoralNeck, TotalHip, Forearm, WholeBody.
nameStringThe label exactly as the scan printed it, for example "AP Spine L1-L3" rather than "Lumbar spine". Kept verbatim because which vertebrae were included is the difference between two scans that otherwise look comparable.
sideStringWhich side the scan named, "Left" or "Right". Absent where the report did not say, and never inferred.
bmdDoubleBone mineral density in grams per square centimeter.
tScoreDoubleStandard deviations from the young adult reference mean, as the scan reported it. FitnessSyncer relays this and never derives or interprets it.
zScoreDoubleStandard deviations from the age matched reference mean, as the scan reported it.
noteStringWhatever the report said about this site in prose, verbatim, for example an explanation of why a vertebra was excluded.
sourceStringThe line this reading was read from, so a reader can check it against their own copy without opening the document.

Blood Pressure

This describes a blood pressure record. It extends Common where type equals BloodPressure.

JSON ItemData TypeDescription
diastolicDoubleDiastolic Blood Pressure
systolicDoubleSystolic Blood Pressure
pulseDoublePulse at the time of the reading
arrhythmiaBooleanTrue if Arrhythmia was detected in this reading.
Fields from Common

These are the fields of Common, which every BloodPressure also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791876120000,
    "itemId": "d2e56211-3639-c374-be73-dc2b6969e9d1",
    "diastolic": 75,
    "systolic": 127,
    "apiVersion": "2026-10-25",
    "pulse": 63,
    "attribution": "FitnessSyncer Notebook",
    "type": "BloodPressure",
    "requiredAttribution": false,
    "providerType": "FitnessSyncer"
}

Blood Panel

This describes a blood panel. It extends Common where type equals BloodPanel.

The type was called Cholesterol, and still is for any client that has not said it understands the new name, so read either and send either. They are one type and this is its one description.

The four lipids have fields of their own because they always have. Everything else a panel measured is a LabResult in results, which is where a panel of fifty analytes lives.

JSON ItemData TypeDescription
ldlDoubleLDL Cholesterol in mmol per Liter
hdlDoubleHDL Cholesterol in mmol per Liter
totalCholesterolDoubleTotal Cholesterol in mmol per Liter
triglycerideDoubleTriglyceride in mmol per Liter
reportedLongWhen the laboratory issued the report, in milliseconds since the epoch. The item’s own date is when the blood was drawn.
labStringThe laboratory that performed the panel, as it named itself.
resultsArray of LabResultOne entry per analyte measured at this collection.
Fields from Common

These are the fields of Common, which every BloodPanel also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791882900000,
    "triglyceride": 1.2740000795498017,
    "hdl": 1.2738413093144016,
    "itemId": "27736121-6a70-78bc-1ef9-cbf2b65a38a8",
    "apiVersion": "2026-10-25",
    "ldl": 3.612223165813514,
    "totalCholesterol": 5.180740986333854,
    "attribution": "FitnessSyncer Notebook",
    "type": "BloodPanel",
    "requiredAttribution": false,
    "results": [
        {
            "unit": "mmol/L",
            "high": 5.2,
            "low": 0,
            "name": "Total Cholesterol",
            "analyte": "cholesterol-total",
            "range": "0.0 - 5.2",
            "source": "Total Cholesterol   5.18   mmol/L   0.0 - 5.2",
            "value": 5.180740986333854
        },
        {
            "unit": "mmol/L",
            "high": 3.4,
            "flag": "High",
            "low": 0,
            "name": "LDL Cholesterol",
            "analyte": "cholesterol-ldl",
            "range": "0.0 - 3.4",
            "source": "LDL Cholesterol   3.61   mmol/L   0.0 - 3.4",
            "value": 3.612223165813514
        },
        {
            "unit": "mmol/L",
            "high": 2.2,
            "low": 1,
            "name": "HDL Cholesterol",
            "analyte": "cholesterol-hdl",
            "range": "1.0 - 2.2",
            "source": "HDL Cholesterol   1.27   mmol/L   1.0 - 2.2",
            "value": 1.2738413093144016
        },
        {
            "unit": "mmol/L",
            "high": 1.7,
            "low": 0,
            "name": "Triglycerides",
            "analyte": "triglycerides",
            "range": "0.0 - 1.7",
            "source": "Triglycerides   1.27   mmol/L   0.0 - 1.7",
            "value": 1.2740000795498017
        },
        {
            "unit": "ng/mL",
            "high": 400,
            "low": 30,
            "name": "Ferritin",
            "analyte": "ferritin",
            "range": "30.0 - 400.0",
            "source": "Ferritin   72.00   ng/mL   30.0 - 400.0",
            "value": 72
        },
        {
            "unit": "uIU/mL",
            "high": 4,
            "low": 0.4,
            "name": "TSH",
            "analyte": "thyroid-stimulating-hormone",
            "range": "0.4 - 4.0",
            "source": "TSH   2.14   uIU/mL   0.4 - 4.0",
            "value": 2.1400577530282856
        },
        {
            "unit": "%",
            "high": 5.6,
            "flag": "High",
            "low": 4,
            "name": "Hemoglobin A1c",
            "analyte": "hemoglobin-a1c",
            "range": "4.0 - 5.6",
            "source": "Hemoglobin A1c   5.69   %   4.0 - 5.6",
            "value": 5.6904010316869735
        },
        {
            "unit": "IU/mL",
            "name": "Anti-TPO",
            "source": "Anti-TPO                18      IU/mL",
            "value": 18
        }
    ],
    "providerType": "FitnessSyncer"
}

LabResult

This describes one analyte’s result inside a blood panel.

analyte is the canonical analyte, and it is absent when the laboratory used a name FitnessSyncer does not recognize, in which case name is the only thing identifying it. value is the result as a number, absent when the laboratory reported something that is not one, and text is always what the laboratory actually wrote, which may carry a less-than sign or a word such as NEGATIVE.

JSON ItemData TypeDescription
analyteStringThe analyte this result is for. Absent when the analyte was not recognized, in which case name is the only thing identifying it.
nameStringThe name the laboratory used for this analyte.
valueDoubleThe result as a number. Absent when the laboratory reported something that is not one.
textStringThe result exactly as the laboratory reported it, which may carry a less-than sign or a word such as NEGATIVE.
unitStringThe unit the laboratory reported, as it wrote it.
lowDoubleThe lower bound of the reference range the laboratory sent with this result.
highDoubleThe upper bound of the reference range the laboratory sent with this result.
rangeStringThe reference range in the laboratory’s own wording, where it sent one rather than a pair of numbers.
flagStringWhether the result sits inside the reference range the laboratory sent. Must be one of: InRange, Low, High
flagDerivedBooleanWhether the flag was worked out from the reference range rather than sent by the laboratory.
correctedBooleanWhether the value was corrected by hand after being read from a document, in which case it is not the number that document shows.
sourceStringThe line of the source document this result was read from, kept verbatim. Present only where the result came from a document rather than from a structured record.

Condition

This describes a condition. It extends Common where type equals Condition.

JSON ItemData TypeDescription
conditionStringCondition Name
endDateLongTime in milliseconds since the Epoch in UTC of when this medication was last used. 0 implies that it is ongoing.
Fields from Common

These are the fields of Common, which every Condition also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791882000000,
    "itemId": "ef71eb6e-e3ca-6cc7-aefa-4bf63da01b21",
    "condition": "Seasonal rhinitis",
    "provider": "FitnessSyncer",
    "attribution": "FitnessSyncer Notebook",
    "type": "Condition",
    "requiredAttribution": false
}

Cycle Tracking

This describes a cycle tracking record. It extends Common where type equals CycleTracking.

JSON ItemData TypeDescription
flowLevelStringMenstrual flow level, if logged that day. Must be one of: NONE, SPOTTING, LIGHT, MEDIUM, HEAVY
basalBodyTempCelsiusDoubleBasal body temperature in Celsius, if logged that day. Absent if not logged.
cervicalMucusStringCervical mucus quality, if logged that day. Must be one of: DRY, STICKY, CREAMY, WATERY, EGG_WHITE
ovulationTestStringOvulation predictor kit test result, if logged that day. Must be one of: NEGATIVE, HIGH, PEAK
Fields from Common

These are the fields of Common, which every CycleTracking also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1792627200000,
    "flowLevel": "MEDIUM",
    "itemId": "8b713bba-2ac6-13bb-3954-6ece81f52004",
    "apiVersion": "2026-10-25",
    "basalBodyTempCelsius": 36.429312482237826,
    "attribution": "FitnessSyncer Notebook",
    "type": "CycleTracking",
    "requiredAttribution": false,
    "providerType": "FitnessSyncer"
}

ECG

This describes an ECG recording. It extends Common where type equals ECG.

JSON ItemData TypeDescription
durationMsIntegerDuration of the recording in milliseconds. Typically 30000.
sampleRateHzIntegerSample rate of the waveform in hertz.
samplesArray of IntegerOrdered raw waveform samples in microvolts.
leadConfigStringElectrode lead configuration used for this recording. Must be one of: UNKNOWN, LEAD_I, SIX_LEAD, PRECORDIAL
classificationStringRhythm classification as reported by the recording device. Not a diagnosis. Must be one of: UNRECOGNIZED, SINUS_RHYTHM, ATRIAL_FIBRILLATION, HIGH_HEART_RATE, LOW_HEART_RATE, INCONCLUSIVE
classificationRawStringThe original, untranslated classification string as returned by the source device/vendor, kept alongside the mapped classification value.
inconclusiveReasonStringReason the device reported an inconclusive classification, if applicable. Must be one of: UNKNOWN, POOR_RECORDING, HIGH_HEART_RATE, LOW_HEART_RATE, UNCLASSIFIABLE
avgHeartRateBpmIntegerAverage heart rate during the recording, in beats per minute, as reported by the device.
symptomsArray of StringSymptoms noted at the time of recording, if supplied by the source. Each entry must be one of: UNKNOWN, CHEST_TIGHTNESS_OR_PAIN, DIZZINESS, FAINTING, RAPID_POUNDING_OR_FLUTTERING_HEARTBEAT, SHORTNESS_OF_BREATH, SKIPPED_HEARTBEAT
Fields from Common

These are the fields of Common, which every ECG also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791877500000,
    "sampleRateHz": 300,
    "type": "ECG",
    "classification": "SINUS_RHYTHM",
    "classificationRaw": "sinus_rhythm",
    "samples": [
        1,
        -2,
        1
    ],
    "providerType": "Withings",
    "itemId": "9f9cd10a-cd7d-683e-279c-10414fb90781",
    "apiVersion": "2026-10-25",
    "avgHeartRateBpm": 61,
    "attribution": "Withings",
    "requiredAttribution": false,
    "durationMs": 30000,
    "leadConfig": "LEAD_I"
}

Arrays longer than 10 entries are cut to their first 3 here. The API sends them in full.

Glucose

This describes a glucose record. It extends Common where type equals Glucose.

JSON ItemData TypeDescription
valueDoubleGlucose Read in mmol per Liter
a1cBooleanTrue if the value was derived from an A1C
measurementTypeStringDescription of the Context, such as whole blood or plasma
measurementContextStringDescription of the Context, such as Before Breakfast
entriesArray of GlucosePointIn order to scale, we recommend grouping data per hour. These are the finer grained elements.
Fields from Common

These are the fields of Common, which every Glucose also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791875940000,
    "itemId": "d2258c72-efd0-59c7-b612-b2fd53beabf6",
    "apiVersion": "2026-10-25",
    "attribution": "FitnessSyncer Notebook",
    "type": "Glucose",
    "requiredAttribution": false,
    "value": 5.009129011161377,
    "providerType": "FitnessSyncer"
}

GlucosePoint

This describes a glucose entry.

JSON ItemData TypeDescription
timeLongTime in milliseconds since the Epoch in UTC
valueDoubleGlucose Read in mmol per Liter
commentStringThe note written on this one reading, if any. Readings are listed, under entries, only when the item carries more than one; a note on the whole item is the item’s own comment.

Medication

This describes a medication record. It extends Common where type equals Medication.

JSON ItemData TypeDescription
medicationStringMedication Name
doseDoubleThe dose amount of this medication
doseUnitStringThe dose unit amount for this type. Must be one of: ML, MG, MCG, MGML, TABLET
strengthDoubleThe strength amount of this medication
strengthUnitStringThe strength unit amount for this type. Must be one of: ML, MG, MCG, MGML, TABLET
endDateLongTime in milliseconds since the Epoch in UTC of when this medication was last used. 0 implies that it is ongoing.
Fields from Common

These are the fields of Common, which every Medication also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791878400000,
    "itemId": "7fdf0c94-679d-f60c-90be-50a97f914061",
    "dose": 1,
    "strength": 500,
    "endDate": 1791878460000,
    "provider": "FitnessSyncer",
    "attribution": "FitnessSyncer Notebook",
    "medication": "Metformin",
    "type": "Medication",
    "strengthUnit": "MG",
    "requiredAttribution": false,
    "doseUnit": "TABLET"
}

Nutrition

This describes a nutrition record. It extends Common where type equals Nutrition. This item may record food, water, or both; when reading, use hasNutrition and hasWater to help determine how to consume this item.

JSON ItemData TypeDescription
foodStringDescription of the Food Eaten
mealStringMeal that this was eaten at, typically Breakfast, Lunch, Dinner, Snack, or Other
mealApproximationStringBased on the time, this is FitnessSyncer’s best approximation of the meal time Read-only.
hasNutritionBooleanIndicates whether this item records nutrient quantities. Read-only.
hasWaterBooleanIndicates whether this item records water. Read-only.
caloriesDoubleNumber of calories in this meal. This field is required if Water is not present.
carbohydratesDoubleCarbohydrates in Grams
fatDoubleFat in Grams
fiberDoubleFiber in Grams
proteinDoubleProtein in Grams
sugarDoubleSugar in Grams
cholesterolDoubleCholesterol in Grams
saturatedFatDoubleSaturated Fat in Grams
sodiumDoubleSodium in milligrams
ironDoubleIron in milligrams
potassiumDoublePotassium in milligrams
vitaminADoubleVitamin A in IU
vitaminCDoubleVitamin C in IU
vitaminDDoubleVitamin D in IU
calciumDoubleCalcium in grams
glycemicLoadIntegerGlycemic Load
waterDoubleNumber of Fluid Ounces of Water Consumed. This field is required if Calories is not present.
Fields from Common

These are the fields of Common, which every Nutrition also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791877800000,
    "carbohydrates": 30.955025573361695,
    "fiber": 2.902033647502659,
    "calories": 406.28471065037223,
    "type": "Nutrition",
    "water": 0,
    "food": "Scrambled eggs and toast",
    "providerType": "FitnessSyncer",
    "meal": "Breakfast",
    "sodium": 761,
    "saturatedFat": 6.384474024505849,
    "itemId": "1c54654c-fd11-9069-f71d-3f741bbced9c",
    "apiVersion": "2026-10-25",
    "hasNutrition": true,
    "hasWater": false,
    "protein": 23.21626918002127,
    "fat": 21.281580081686165,
    "attribution": "FitnessSyncer Notebook",
    "cholesterol": 0.048367227458377654,
    "requiredAttribution": false,
    "mealApproximation": "breakfast",
    "sugar": 3.869378196670212
}

Oxygen

This describes an oxygen record. It extends Common where type equals Oxygen.

JSON ItemData TypeDescription
spo2DoubleSpO2 Reading in Percent
pulseDoublePulse Reading in BPM
entriesArray of OxygenPointIn order to scale, we recommend grouping data per hour. These are the finer grained elements.
Fields from Common

These are the fields of Common, which every Oxygen also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791876660000,
    "itemId": "1b78b41d-0745-669b-4d5e-83001327d594",
    "apiVersion": "2026-10-25",
    "spo2": 95,
    "pulse": 59,
    "attribution": "FitnessSyncer Notebook",
    "type": "Oxygen",
    "requiredAttribution": false,
    "providerType": "FitnessSyncer"
}

OxygenPoint

This describes an oxygen entry.

JSON ItemData TypeDescription
timeLongTime in milliseconds since the Epoch in UTC
spo2DoubleSpO2 Reading in Percent
pulseDoublePulse Reading in BPM
commentStringThe note written on this one reading, if any. Readings are listed, under entries, only when the item carries more than one; a note on the whole item is the item’s own comment.

Sleep

This describes a sleep record. It extends Common where type equals Sleep.

JSON ItemData TypeDescription
bedTimeLongBed Time in Milliseconds Since Epoch in UTC
awakeTimeLongAwake Time in Milliseconds Since Epoch in UTC
sleepingMinutesDoubleTotal number of minutes actually asleep. The per-stage fields (lightSleepMinutes, remSleepMinutes, deepSleepMinutes, sleepUnspecifiedMinutes, restlessMinutes) partition this total, so summing them alongside this value double-counts.
awakeningsIntegerNumber of times awoken
efficiencyDoubleEfficiency of the Sleep as a Percentage
sleepEventsArray of SleepEventActual Sleep Events
inferredSleepEventsArray of SleepEventIf Actual Sleep Events are not available, FitnessSyncer will provide inferred Sleep Events. This is a read-only parameter.
sleepPointsArray of SleepPoint
settlingMinutesDoubleSleep latency; the number of minutes between getting into bed and falling asleep.
lightSleepMinutesDoubleNumber of Minutes in Light Sleep.
deepSleepMinutesDoubleNumber of Minutes in Deep Sleep.
remSleepMinutesDoubleNumber of Minutes in REM Sleep.
sleepUnspecifiedMinutesDoubleNumber of Minutes asleep where the source did not report which stage.
restlessMinutesDoubleNumber of Minutes restless, meaning moving or disturbed, but not scored as awake.
awakeMinutesDoubleNumber of Minutes awake during the sleep period.
avgHRDoubleAverage Heart Rate during Sleep
minHRDoubleMinimum Heart Rate during Sleep
avgRRDoubleAverage Respiratory Rate during Sleep
spo2DoubleAverage SPO2 during Sleep Read-only.
hrvRmssdEveningDoubleHRV RMSSD when going to Sleep
hrvRmssdMorningDoubleHRV RMSSD when waking up
napBooleanTrue if this is a nap.
Fields from Common

These are the fields of Common, which every Sleep also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791846060000,
    "remSleepMinutes": 100,
    "efficiency": 91.54589371980676,
    "sleepEvents": [
        {
            "durationMinutes": 23,
            "offsetMinutes": 0,
            "type": "AWAKE"
        },
        {
            "durationMinutes": 47,
            "offsetMinutes": 23,
            "type": "LIGHT_SLEEP"
        },
        {
            "durationMinutes": 33,
            "offsetMinutes": 70,
            "type": "DEEP_SLEEP"
        }
    ],
    "bedTime": 1791846060000,
    "settlingMinutes": 23,
    "type": "Sleep",
    "minHR": 0,
    "providerType": "FitnessSyncer",
    "awakeMinutes": 35,
    "awakeTime": 1791870900000,
    "itemId": "8f763040-7134-825f-07c1-7890a1db0589",
    "avgHR": 0,
    "awakenings": 1,
    "apiVersion": "2026-10-25",
    "deepSleepMinutes": 98,
    "attribution": "FitnessSyncer Notebook",
    "requiredAttribution": false,
    "avgRR": 0,
    "sleepingMinutes": 379,
    "lightSleepMinutes": 181
}

Arrays longer than 10 entries are cut to their first 3 here. The API sends them in full.

SleepEvent

JSON ItemData TypeDescription
typeStringSleep stage, ordered from most awake to most asleep: REALLY_AWAKE (out of bed), AWAKE (awake, in bed), RESTLESS (moving or disturbed, not scored awake), LIGHT_SLEEP, REM, DEEP_SLEEP, ASLEEP (asleep, stage unknown). RESTLESS and DEEP_SLEEP were introduced in API version 2026-08-09.
offsetMinutesDoubleMinute within the sleep this started.
durationMinutesDoubleNumber of minutes that this event lasts for.

SleepPoint

JSON ItemData TypeDescription
timeLongTime in milliseconds since the Epoch in UTC
heartRateDoubleHeart rate in beats per minute at this time
respiratoryRateDoubleRespiratory Rate
hrv_sdnnDoubleHeart Rate Variability in SDNN
spo2DoubleSpO2 Reading in Percent

Temperature

This describes a temperature record. It extends Common where type equals Temperature.

JSON ItemData TypeDescription
temperatureDoubleTemperature Reading in Celsius
entriesArray of TemperaturePointIn order to scale, we recommend grouping data per hour. These are the finer grained elements.
Fields from Common

These are the fields of Common, which every Temperature also carries.

JSON ItemData TypeDescription
providerTypeStringAn enumeration of the Provider Type for uploading data to this API.
deviceStringThe model of the device that recorded the item, as its provider reported it, for example Forerunner 965. Absent when the provider did not say. Read-only.
attributionStringThis is the attribution of where the data came from in the user’s language. This should be displayed when this data is used. Read-only.
requiredAttributionBooleanTrue when the source of this item requires its attribution to be shown beside its data wherever it is used, including anything derived from it, as Garmin’s brand guidelines do. Read-only.
dateLongTime in milliseconds since the Epoch in UTC
itemIdStringId of the item
taskIdStringId of the Source Data
apiVersionStringThe API version this item was rendered in, as a date (for example 2026-08-09). Present so that a stored .fsapi file can be told apart from one written under an earlier version; an item with no apiVersion predates the field and is the original 2014-09-12 API.
commentStringComment associated with the data.
tagsArray of StringUser submitted tags
typeStringType of the Task. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature
linksSource Item Links Item

Example

{
    "date": 1791876000000,
    "itemId": "af1f827e-2955-9e9f-4a6f-887bfe7727ee",
    "apiVersion": "2026-10-25",
    "temperature": 36.48361338119312,
    "attribution": "FitnessSyncer Notebook",
    "type": "Temperature",
    "requiredAttribution": false,
    "providerType": "FitnessSyncer"
}

TemperaturePoint

This describes a temperature entry.

JSON ItemData TypeDescription
timeLongTime in milliseconds since the Epoch in UTC
valueDoubleTemperature Reading in Celsius
commentStringThe note written on this one reading, if any. Readings are listed, under entries, only when the item carries more than one; a note on the whole item is the item’s own comment.