<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "HealthKit",
  "identifier" : "/documentation/HealthKit/HKCategoryTypeIdentifier/menstrualFlow",
  "metadataVersion" : "0.1.0",
  "role" : "Type Property",
  "symbol" : {
    "kind" : "Type Property",
    "modules" : [
      "HealthKit"
    ],
    "preciseIdentifier" : "c:@HKCategoryTypeIdentifierMenstrualFlow"
  },
  "title" : "menstrualFlow"
}
-->

# menstrualFlow

A category sample type that records menstrual cycles.

```
static let menstrualFlow: HKCategoryTypeIdentifier
```

## Discussion

These samples use values from the [`HKCategoryValueMenstrualFlow`](/documentation/HealthKit/HKCategoryValueMenstrualFlow) enum. Additionally, these samples must include [`HKMetadataKeyMenstrualCycleStart`](/documentation/HealthKit/HKMetadataKeyMenstrualCycleStart)  metadata.

When recording data about the user’s menstrual cycle, you can either use a single sample for the entire period, or multiple samples to record changes over the cycle. When using single samples, pass the start of the menstrual period to the `startDate` parameter. Pass the end of the period to the `endDate` parameter, and set the [`HKMetadataKeyMenstrualCycleStart`](/documentation/HealthKit/HKMetadataKeyMenstrualCycleStart) value to <doc://com.apple.documentation/documentation/Swift/true>.

When using multiple samples to record a single period, the `startDate` and `endDate` parameters should mark the beginning and ending of each individual sample. Set the [`HKMetadataKeyMenstrualCycleStart`](/documentation/HealthKit/HKMetadataKeyMenstrualCycleStart) value for the first sample in the period to <doc://com.apple.documentation/documentation/Swift/true>. Use <doc://com.apple.documentation/documentation/Swift/false> for any additional samples. Different samples can use different `menstrualFlow` values to record the changes in flow over time.

## Topics

### Metadata Keys

[`HKMetadataKeyMenstrualCycleStart`](/documentation/HealthKit/HKMetadataKeyMenstrualCycleStart)

A key that indicates whether the sample represents the start of a menstrual cycle. This metadata key is required for [`menstrualFlow`](/documentation/HealthKit/HKCategoryTypeIdentifier/menstrualFlow) category samples.

## See Also

[`HKCategoryValue`](/documentation/HealthKit/HKCategoryValue)

Categories that are undefined.

[`HKCategoryTypeIdentifier`](/documentation/HealthKit/HKCategoryTypeIdentifier)

Identifiers for creating category types.

[`HKCategoryType`](/documentation/HealthKit/HKCategoryType)

A type that identifies samples that contain a value from a small set of possible values.

[`HKCategorySample`](/documentation/HealthKit/HKCategorySample)

A sample with values from a short list of possible values.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)