<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.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/HKQuantitySample",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "HealthKit"
    ],
    "preciseIdentifier" : "c:objc(cs)HKQuantitySample"
  },
  "title" : "HKQuantitySample"
}
-->

# HKQuantitySample

A sample that represents a quantity, including the value and the units.

```
class HKQuantitySample
```

## Overview

A quantity sample contains one or more [`HKQuantity`](/documentation/HealthKit/HKQuantity) objects. Each quantity represents a single piece of data with a single numeric value and the value’s associated units. For example, you can use quantity samples to record the user’s height, the user’s current heart rate, or the number of calories in a hamburger. HealthKit provides a wide range of quantity types, letting you track many different health and fitness features.

The [`HKQuantitySample`](/documentation/HealthKit/HKQuantitySample) class is a subclass of the [`HKSample`](/documentation/HealthKit/HKSample) class. Quantity samples are immutable; you set the sample’s properties when you create it, and they cannot change.

In iOS 13 and later and watchOS 6 and later, [`HKQuantitySample`](/documentation/HealthKit/HKQuantitySample) is an abstract superclass for the [`HKCumulativeQuantitySample`](/documentation/HealthKit/HKCumulativeQuantitySample) and [`HKDiscreteQuantitySample`](/documentation/HealthKit/HKDiscreteQuantitySample) concrete subclasses. The system automatically selects the correct subclass based on the [`HKQuantityType`](/documentation/HealthKit/HKQuantityType) object used to create the sample.

### Extend Quantity Samples

Like many HealthKit classes, you should not subclass the [`HKQuantitySample`](/documentation/HealthKit/HKQuantitySample) class. You may extend this class by adding metadata with custom keys to save related data used by your app.

For more information, see [`init(type:quantity:start:end:metadata:)`](/documentation/HealthKit/HKQuantitySample/init(type:quantity:start:end:metadata:)).

## Topics

### Creating Quantity Samples

[`init(type:quantity:start:end:)`](/documentation/HealthKit/HKQuantitySample/init(type:quantity:start:end:))

Returns a sample containing a numeric measurement.

[`init(type:quantity:start:end:metadata:)`](/documentation/HealthKit/HKQuantitySample/init(type:quantity:start:end:metadata:))

Returns a sample containing a numeric measurement with the provided metadata.

[`init(type:quantity:start:end:device:metadata:)`](/documentation/HealthKit/HKQuantitySample/init(type:quantity:start:end:device:metadata:))

Returns a sample containing a numeric measurement with the provided device and metadata.

### Getting Property Data

[`quantity`](/documentation/HealthKit/HKQuantitySample/quantity)

The quantity for this sample.

[`count`](/documentation/HealthKit/HKQuantitySample/count)

The number of quantities contained in this sample.

[`quantityType`](/documentation/HealthKit/HKQuantitySample/quantityType)

The quantity type for this sample.

### Specifying Predicate Key Paths

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

The key path for accessing the sample’s quantity.

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

A key path for the sample’s count.



---

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)