Cycle Tracking - JSON Export Format
Documentation for cycle tracking structure in JSON exports
Last updated: February 6, 2026
On this page
- Structure
- Fields
- Required Fields
- Optional Fields
- Cycle Tracking Types
- Menstrual Flow
- Cervical Mucus Quality
- Basal Body Temperature
- Ovulation Test Result
- Progesterone Test Result
- Pregnancy Test Result
- Sexual Activity
- Pregnancy
- Lactation
- Contraceptive
- Cycle Irregularities
- Example: Complete Cycle Entry
- Use Cases
- Related Data
- Tips
- Related Documentation
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 formatyyyy-MM-dd HH:mm:ss Zend(String): End date and time of the entry in formatyyyy-MM-dd HH:mm:ss Zname(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 whentrue.
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
Related Data
Some cycle-related data may appear in other sections:
- Basal Body Temperature: Found in the
metricsarray 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
isCycleStartto identify the beginning of each cycle for analysis
Related Documentation
- JSON Export Format Overview
- Health Metrics - For basal body temperature data
- Manual Export Guide
- Automations Overview