Cycle Tracking - JSON Export Format

Documentation for cycle tracking structure in JSON exports

Last updated: February 6, 2026

On this page

Cycle Tracking

Cycle Tracking data includes all menstrual cycle-related information recorded in Apple Health, such as menstrual flow, cervical mucus quality, basal body temperature, ovulation test results, and other cycle-related data. In JSON exports, cycle tracking data is stored in the cycleTracking array.

Structure

Each cycle tracking entry follows a consistent structure:

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-05 23:59:59 -0800",
  "name": "Menstrual Flow",
  "value": "Medium",
  "isCycleStart": true
}

Fields

Required Fields

  • start (String): Start date and time of the entry in format yyyy-MM-dd HH:mm:ss Z
  • end (String): End date and time of the entry in format yyyy-MM-dd HH:mm:ss Z
  • name (String): Type of cycle tracking data (see types below)
  • value (String): The value or result for this entry (varies by type)

Optional Fields

  • isCycleStart (Boolean): Indicates if this entry marks the start of a new menstrual cycle. Only present for Menstrual Flow entries when true.

Cycle Tracking Types

Menstrual Flow

Tracks menstrual bleeding with flow level and cycle start information.

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-05 23:59:59 -0800",
  "name": "Menstrual Flow",
  "value": "Medium",
  "isCycleStart": true
}

Possible Values:

  • "None"
  • "Light"
  • "Medium"
  • "Heavy"
  • "Unspecified"

Note: isCycleStart is only included when true, indicating the start of a new menstrual cycle.

Cervical Mucus Quality

Tracks the quality of cervical mucus, which can indicate fertility status.

{
  "start": "2024-02-10 00:00:00 -0800",
  "end": "2024-02-10 23:59:59 -0800",
  "name": "Cervical Mucus Quality",
  "value": "Egg White"
}

Possible Values:

  • "Egg White" - Clear, stretchy mucus (most fertile)
  • "Watery" - Thin, watery mucus
  • "Creamy" - Thick, creamy mucus
  • "Sticky" - Sticky, tacky mucus
  • "Dry" - Little to no mucus

Basal Body Temperature

Basal body temperature (BBT) measurements are exported as health metrics, not cycle tracking entries. Look for "Basal Body Temperature" in the metrics array.

Ovulation Test Result

Records results from ovulation prediction tests.

{
  "start": "2024-02-12 08:00:00 -0800",
  "end": "2024-02-12 08:00:00 -0800",
  "name": "Ovulation Test Result",
  "value": "Positive/Peak"
}

Possible Values:

  • "Positive/Peak" - Peak fertility detected
  • "High" - High fertility level
  • "Negative/Low" - Low fertility level
  • "Indeterminate" - Test result unclear

Progesterone Test Result

Records results from progesterone tests.

{
  "start": "2024-02-15 08:00:00 -0800",
  "end": "2024-02-15 08:00:00 -0800",
  "name": "Progesterone Test Result",
  "value": "Positive"
}

Pregnancy Test Result

Records results from pregnancy tests.

{
  "start": "2024-02-20 08:00:00 -0800",
  "end": "2024-02-20 08:00:00 -0800",
  "name": "Pregnancy Test Result",
  "value": "Positive"
}

Sexual Activity

Tracks sexual activity within the cycle tracking context.

{
  "start": "2024-02-14 20:00:00 -0800",
  "end": "2024-02-14 20:00:00 -0800",
  "name": "Sexual Activity",
  "value": ""
}

Note: Sexual activity may also appear in health metrics with protection usage details.

Pregnancy

Tracks pregnancy periods.

{
  "start": "2024-03-01 00:00:00 -0800",
  "end": "2024-11-15 23:59:59 -0800",
  "name": "Pregnancy",
  "value": ""
}

Lactation

Tracks lactation periods.

{
  "start": "2024-11-20 00:00:00 -0800",
  "end": "2025-02-20 23:59:59 -0800",
  "name": "Lactation",
  "value": ""
}

Contraceptive

Tracks contraceptive use periods.

{
  "start": "2024-01-01 00:00:00 -0800",
  "end": null,
  "name": "Contraceptive",
  "value": ""
}

Cycle Irregularities

The following types track various cycle irregularities:

Infrequent Menstrual Cycle

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-01 23:59:59 -0800",
  "name": "Infrequent Menstrual Cycle",
  "value": ""
}

Irregular Menstrual Cycle

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-01 23:59:59 -0800",
  "name": "Irregular Menstrual Cycle",
  "value": ""
}

Intermenstrual Bleeding

Bleeding that occurs between periods.

{
  "start": "2024-02-15 00:00:00 -0800",
  "end": "2024-02-15 23:59:59 -0800",
  "name": "Intermenstrual Bleeding",
  "value": ""
}

Persistent Menstrual Bleeding

Extended or persistent bleeding.

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-10 23:59:59 -0800",
  "name": "Persistent Menstrual Bleeding",
  "value": ""
}

Prolonged Menstrual Period

Periods that last longer than usual.

{
  "start": "2024-02-01 00:00:00 -0800",
  "end": "2024-02-08 23:59:59 -0800",
  "name": "Prolonged Menstrual Period",
  "value": ""
}

Example: Complete Cycle Entry

[
  {
    "start": "2024-02-01 00:00:00 -0800",
    "end": "2024-02-05 23:59:59 -0800",
    "name": "Menstrual Flow",
    "value": "Medium",
    "isCycleStart": true
  },
  {
    "start": "2024-02-10 00:00:00 -0800",
    "end": "2024-02-10 23:59:59 -0800",
    "name": "Cervical Mucus Quality",
    "value": "Egg White"
  },
  {
    "start": "2024-02-12 08:00:00 -0800",
    "end": "2024-02-12 08:00:00 -0800",
    "name": "Ovulation Test Result",
    "value": "Positive/Peak"
  },
  {
    "start": "2024-02-14 20:00:00 -0800",
    "end": "2024-02-14 20:00:00 -0800",
    "name": "Sexual Activity",
    "value": ""
  }
]

Use Cases

Cycle tracking data can be useful for:

  • Fertility tracking: Monitor ovulation and identify fertile windows
  • Cycle analysis: Track cycle length, regularity, and patterns
  • Health monitoring: Identify irregularities or changes in cycle patterns
  • Pregnancy planning: Use data for conception planning
  • Healthcare provider sharing: Share cycle data with gynecologists or fertility specialists
  • Symptom correlation: Cross-reference cycle data with other health metrics

Some cycle-related data may appear in other sections:

  • Basal Body Temperature: Found in the metrics array as a health metric
  • Sexual Activity: May also appear in health metrics with protection usage details

Tips

  • Consistent logging: Regular logging provides more accurate cycle predictions
  • Combine data types: Using multiple tracking methods (flow, mucus, temperature, tests) provides the most comprehensive picture
  • Cycle start markers: Use isCycleStart to identify the beginning of each cycle for analysis