ECG - JSON Export Format
Documentation for ECG structure in JSON exports
Last updated: February 6, 2026
On this page
- Structure
- Fields
- Required Fields
- Optional Fields
- ECG Classifications
- Voltage Measurements
- Example Entries
- Normal Sinus Rhythm
- Atrial Fibrillation Detection
- Inconclusive Reading
- Understanding ECG Data
- Sampling Frequency
- Voltage Measurements
- Classification Interpretation
- Device Compatibility
- Use Cases
- Important Notes
- Tips
- Related Documentation
ECG (Electrocardiogram)
ECG data includes electrocardiogram readings from compatible Apple devices (such as Apple Watch Series 4 and later). ECG data provides detailed heart rhythm analysis and can detect conditions like atrial fibrillation. In JSON exports, ECG data is stored in the ecg array.
Structure
Each ECG entry includes classification results, heart rate measurements, voltage data, and sampling information:
{
"start": "2024-02-06 14:30:00 -0800",
"end": "2024-02-06 14:30:30 -0800",
"classification": "Sinus Rhythm",
"severity": "Not Set",
"averageHeartRate": 72,
"numberOfVoltageMeasurements": 512,
"voltageMeasurements": [
{
"date": "2024-02-06 14:30:00.000 -0800",
"voltage": 0.123,
"units": "V"
}
],
"samplingFrequency": 512,
"source": "Apple Watch"
}
Fields
Required Fields
start(Date): Start time of the ECG reading in formatyyyy-MM-dd HH:mm:ss Zend(Date): End time of the ECG reading in formatyyyy-MM-dd HH:mm:ss Zclassification(String): Heart rhythm classification (see classifications below)averageHeartRate(Number): Average heart rate during the ECG reading in beats per minute (bpm)numberOfVoltageMeasurements(Number): Total number of voltage measurements in the ECG samplevoltageMeasurements(Array): Array of voltage measurements (see Voltage Measurements below)samplingFrequency(Number): Sampling frequency in Hz (typically 512 Hz for Apple Watch)source(String): Source device or app that recorded the ECG
Optional Fields
severity(String): Severity classification of the ECG result (may be "Not Set" if not applicable)
ECG Classifications
The classification field indicates the heart rhythm detected:
"Sinus Rhythm"- Normal heart rhythm"Atrial Fibrillation"- Irregular heart rhythm (AFib) detected"High Heart Rate"- Heart rate above normal range"Inconclusive Low Heart Rate"- Unable to classify due to low heart rate"Inconclusive High Heart Rate"- Unable to classify due to high heart rate"Inconclusive"- Unable to determine classification"Inconclusive Poor Recording"- Unable to classify due to poor signal quality"Unrecognized"- Classification not recognized
Voltage Measurements
Each ECG entry includes an array of voltage measurements that represent the electrical activity of the heart over time:
{
"voltageMeasurements": [
{
"date": "2024-02-06 14:30:00.000 -0800",
"voltage": 0.123,
"units": "V"
},
{
"date": "2024-02-06 14:30:00.002 -0800",
"voltage": 0.125,
"units": "V"
}
]
}
Voltage Measurement Fields:
date(Date): Precise timestamp of the voltage measurement (includes milliseconds)voltage(Number): Voltage value in voltsunits(String): Unit of measurement (typically"V"for volts)
Note: Voltage measurements are sampled at the frequency specified by samplingFrequency (typically 512 Hz, meaning 512 measurements per second).
Example Entries
Normal Sinus Rhythm
{
"start": "2024-02-06 14:30:00 -0800",
"end": "2024-02-06 14:30:30 -0800",
"classification": "Sinus Rhythm",
"severity": "Not Set",
"averageHeartRate": 72,
"numberOfVoltageMeasurements": 15360,
"voltageMeasurements": [
{
"date": "2024-02-06 14:30:00.000 -0800",
"voltage": 0.123,
"units": "V"
}
],
"samplingFrequency": 512,
"source": "Apple Watch"
}
Atrial Fibrillation Detection
{
"start": "2024-02-06 16:45:00 -0800",
"end": "2024-02-06 16:45:30 -0800",
"classification": "Atrial Fibrillation",
"severity": "Not Set",
"averageHeartRate": 95,
"numberOfVoltageMeasurements": 15360,
"voltageMeasurements": [
{
"date": "2024-02-06 16:45:00.000 -0800",
"voltage": 0.145,
"units": "V"
}
],
"samplingFrequency": 512,
"source": "Apple Watch"
}
Inconclusive Reading
{
"start": "2024-02-06 18:00:00 -0800",
"end": "2024-02-06 18:00:30 -0800",
"classification": "Inconclusive Poor Recording",
"severity": "Not Set",
"averageHeartRate": 68,
"numberOfVoltageMeasurements": 15360,
"voltageMeasurements": [
{
"date": "2024-02-06 18:00:00.000 -0800",
"voltage": 0.098,
"units": "V"
}
],
"samplingFrequency": 512,
"source": "Apple Watch"
}
Understanding ECG Data
Sampling Frequency
The samplingFrequency (typically 512 Hz) indicates how many voltage measurements are taken per second. For a 30-second ECG reading:
- Total measurements = 512 × 30 = 15,360 measurements
- Each measurement represents approximately 0.002 seconds (2 milliseconds) of heart activity
Voltage Measurements
The voltage measurements represent the electrical activity of the heart:
- Positive values: Depolarization (heart muscle contraction)
- Negative values: Repolarization (heart muscle relaxation)
- Pattern analysis: The pattern of voltage changes over time indicates the heart rhythm
Classification Interpretation
- Sinus Rhythm: Normal, healthy heart rhythm
- Atrial Fibrillation: Irregular rhythm that may require medical attention
- Inconclusive: May indicate poor signal quality, movement during reading, or other factors
- High/Low Heart Rate: Heart rate outside normal range for accurate classification
Device Compatibility
ECG functionality requires:
- Apple Watch Series 4 or later (with ECG app)
- iOS 12.1.1 or later on paired iPhone
- ECG app installed and set up
Use Cases
ECG data can be useful for:
- Heart rhythm monitoring: Track heart rhythm patterns over time
- AFib detection: Monitor for atrial fibrillation episodes
- Medical records: Share ECG data with healthcare providers
- Trend analysis: Identify patterns or changes in heart rhythm
- Symptom correlation: Cross-reference ECG readings with symptoms or activities
Important Notes
- Not a medical device: Apple Watch ECG is not intended to replace professional medical diagnosis
- Consult healthcare providers: Always consult with healthcare professionals about ECG results, especially if AFib is detected
- Regular monitoring: Regular ECG readings can help identify patterns, but should not replace professional medical care
- File size: ECG exports with full voltage measurements can be large due to the high sampling rate
Tips
- Consistent readings: Take ECG readings at consistent times for better trend analysis
- Proper positioning: Ensure proper watch placement and stillness during readings for accurate results
- Export selectively: Consider date range when exporting ECG data, as files can be large with full voltage measurements
Related Documentation
- JSON Export Format Overview
- Heart Rate Notifications - For high/low heart rate alerts
- Manual Export Guide
- Automations Overview