ECG - JSON Export Format

Documentation for ECG structure in JSON exports

Last updated: February 6, 2026

On this page

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 format yyyy-MM-dd HH:mm:ss Z
  • end (Date): End time of the ECG reading in format yyyy-MM-dd HH:mm:ss Z
  • classification (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 sample
  • voltageMeasurements (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 volts
  • units (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