Fitbit ECG Data Export Format
- Updated
The Fitbit Electrocardiogram (ECG) data export reports a participant’s ECG reading taken from their Fitbit wearable device. The Fitbit ECG app allows participants to create and record an ECG by taking a 30-second reading on their wrist-worn Fitbit device. This is made possible by the electrical sensors on certain Fitbit products that can detect and analyze heart rhythm data for signs of atrial fibrillation (AFib). While the assessment cannot provide a definitive diagnosis of AFib, the results can lead to a more productive conversation between a participant and their healthcare provider.
The data in the Fitbit export is obtained through the Fitbit API. The available data will vary based on the device capabilities and the user's privacy settings. See the Fitbit "Electrocardiogram (ECG)" documentation for more information about using and interpreting Fitbit data.
Table of Contents
Fitbit ECG
Field | Description |
---|---|
FitbitEcgKey |
Unique key for this ECG reading, used to relate records in the Waveform CSV together. |
ParticipantID |
The stable, automatically generated, internal system identifier for this participant. Universally unique identifier (UUID). |
ParticipantIdentifier |
The identifier of the participant this task was for. Can be used to cross reference with Participants. |
InsertedDate |
The creation date of the entry, in ISO 8601 format. Is always in UTC. |
StartTime |
The date and time when the reading was started on the device. |
AverageHeartRate |
The average heart rate of the user during the reading. |
ResultClassification |
See Classification of ECG results for more information. Supported: Atrial Fibrillation | Normal Sinus Rhythm | Inconclusive | Inconclusive: High heart rate | Inconclusive: Low heart rate |
WaveformSamples |
An array of integers representing the ECG waveform, in JSON only. See Fitbit ECG Waveform for CSV representation of waveform sample data. |
SamplingFrequencyHz |
The frequency in hertz at which the Fitbit ECG app sampled the voltage. Supported: 250 |
ScalingFactor |
The scaling factor used to convert waveform samples to ECG voltages in mV (mV = waveformSamples / scalingFactor). Supported: 10922 |
NumberOfWaveformSamples |
The total number of samples in the reading. |
LeadNumber |
The ECG lead being used to take the reading. The compatible Fitbit wrist-worn devices contain a single-lead. Therefore, the leadNumber will always be 1. Supported: 1 |
FeatureVersion |
The version of the ECG app running on the device. The format of the compatible wrist-worn device components’ version [x.xx-x.xx-x.xx] represents app-service-web respectively. |
DeviceName |
Hardware name of the compatible wrist-worn device used to take the reading. |
FirmwareVersion |
Firmware running on the compatible wrist-worn device used to take the reading. |
Fitbit ECG Waveform
Field | Description |
---|---|
FitbitEcgKey |
Unique key for the associated ECG reading. |
Index |
Indexes correct order of waveform samples for this reading. |
WaveformSample |
An integer representing the ECG waveform. |
Sample CSV Exports
In the CSV export, the waveform sample data is exported in a separate file from the ECG reading data.
FitbitECG:
FitbitEcgKey,ParticipantID,ParticipantIdentifier,InsertedDate,StartTime,AverageHeartrate,ResultClassification,SamplingFrequencyHz,ScalingFactor,NumberOfWaveformSamples,LeadNumber,FeatureVersion,DeviceName,FirmwareVersion
7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0,7e6135ff-4ede-ed11-a178-9ccd120ce8c9,aaf84dbd-4ede-ed11-a178-9ccd120ce8c9,2023-04-21T19:14:00Z,2023-02-07T16:19:00.304,49,Inconclusive: Low heart rate,250,10922,7500,1,2.11.0-2.13-2.16,Sense 2,20001.184.52
FitbitECG_Waveform:
FitbitEcgKey,Index,WaveformSample
7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0,0,0
7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0,1,11593
7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0,2,23106
7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0,3,32767
Sample JSON Export
ECG & Waveforms:
{
"FitbitEcgKey": "7e6135ff4edeed11a1789ccd120ce8c9-1862dbf0ad0",
"StartTime": "2023-02-07T16:19:00.304",
"AverageHeartRate": 49,
"ResultClassification": "Inconclusive: Low heart rate",
"WaveformSamples": [
0,
11593,
23106,
32767,
...
],
"SamplingFrequencyHz": 250.0,
"ScalingFactor": 10922.0,
"NumberOfWaveformSamples": 7500,
"LeadNumber": 1,
"FeatureVersion": "2.11.0-2.13-2.16",
"DeviceName": "Sense 2",
"FirmwareVersion": "20001.184.52",
"ParticipantID": "7e6135ff-4ede-ed11-a178-9ccd120ce8c9",
"ParticipantIdentifier": "aaf84dbd-4ede-ed11-a178-9ccd120ce8c9",
"InsertedDate": "2023-04-21T19:14:00Z"
}
Was this article helpful?