<!--
{
  "availability" : [
    "iOS: 15.4.0 -",
    "iPadOS: 15.4.0 -",
    "macCatalyst: 15.4.0 -",
    "macOS: 13.0.0 -",
    "visionOS: -",
    "watchOS: 8.5.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "HealthKit",
  "identifier" : "/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "HealthKit"
    ],
    "preciseIdentifier" : "s:9HealthKit32HKHeartbeatSeriesQueryDescriptorV"
  },
  "title" : "HKHeartbeatSeriesQueryDescriptor"
}
-->

# HKHeartbeatSeriesQueryDescriptor

A query interface that reads the heartbeat series data stored in a heartbeat sample using Swift concurrency.

```
struct HKHeartbeatSeriesQueryDescriptor
```

## Overview

Use [`HKHeartbeatSeriesQueryDescriptor`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor) to read the heartbeat data included in a [`HKHeartbeatSeriesSample`](/documentation/HealthKit/HKHeartbeatSeriesSample). To read the individual heartbeats, create a heartbeat series query descriptor using the desired series sample, and then call the [`results(for:)`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/results(for:)) method on the descriptor.

```swift
// Create the descriptor.
let heartbeatDescriptor = HKHeartbeatSeriesQueryDescriptor(myHeartbeatSample)

// Get the AsyncSequence that returns individual heartbeats.
let series = heartbeatDescriptor.results(for: store)

// Access the data for each haeartbeat.
for try await heartbeat in series {
    
    // Process the results here.
    print(heartbeat.precededByGap)
    print(heartbeat.timeIntervalSinceStart)
}
```

While this method returns an <doc://com.apple.documentation/documentation/Swift/AsyncSequence>, unlike the long-running queries, this sequence has a finite size. Iterating over the sequence asynchronously returns heartbeat data, automatically terminating after you receive all the data.

## Topics

### Creating Heartbeat Series Query Descriptors

[`init(HKHeartbeatSeriesSample)`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/init(_:))

Creates a heartbeat series query descriptor.

### Running Queries

[`func results(for: HKHealthStore) -> HKHeartbeatSeriesQueryDescriptor.Results`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/results(for:))

Runs a one-shot query that returns an asynchronous sequence of data representing individual heartbeats.

[`struct Results`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/Results)

An asynchronous sequence that emits data about individual heartbeats from a heartbeat series sample.

[`struct Heartbeat`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/Heartbeat)

Data about an individual heartbeat.

### Accessing Query Properties

[`var sample: HKHeartbeatSeriesSample`](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/sample)

The sample containing the heartbeat series.

### Default Implementations

[HKAsyncSequenceQuery Implementations](/documentation/HealthKit/HKHeartbeatSeriesQueryDescriptor/HKAsyncSequenceQuery-Implementations)

## Relationships

### Conforms To

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

[`Copyable`](/documentation/Swift/Copyable)

[`Escapable`](/documentation/Swift/Escapable)

---

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)