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

# HKVerifiableClinicalRecordQueryDescriptor

A query interface that provides one-time access to a SMART Health Card or EU Digital COVID Certificate using Swift concurrency.

```
struct HKVerifiableClinicalRecordQueryDescriptor
```

## Overview

Use [`HKVerifiableClinicalRecordQueryDescriptor`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor) to read verifiable clinical records.

```swift
// Calculate the start and end dates.
var sixMonthsAgo = DateComponents()
sixMonthsAgo.month = -6

let end = Date()
guard let start = Calendar.current.date(byAdding: sixMonthsAgo, to: end) else {
    fatalError("*** Unable to calculate a date using \(end) and \(sixMonthsAgo) ***")
}

// Create the predicate.
let lastSixMonthsPredicate =
HKQuery.predicateForVerifiableClinicalRecords(withRelevantDateWithin: DateInterval(start: start, end: end))

// Create the descriptor.
let healthRecordDescriptor = HKVerifiableClinicalRecordQueryDescriptor(
    recordTypes: [.covid19, .immunization],
    sourceTypes: [.smartHealthCard, .euDigitalCOVIDCertificate],
    predicate: lastSixMonthsPredicate)

// Asynchronously read the records.
let records = try await healthRecordDescriptor.result(for: store)

// Use the records here.
for record in records {
    print(record.recordTypes)
    print(record.itemNames)
    print(record.issuedDate)
    print(record.expirationDate ?? "No expiration date.")
}
```

When you call the descriptor’s [`result(for:)`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/result(for:)) method, it creates and executes an [`HKVerifiableClinicalRecordQuery`](/documentation/HealthKit/HKVerifiableClinicalRecordQuery) in the background, passing the results as an array of [`HKVerifiableClinicalRecord`](/documentation/HealthKit/HKVerifiableClinicalRecord) instances.

Unlike other HealthKit queries, you don’t need to request permission to read verifiable health records before using this descriptor. HealthKit prompts the user for permission to read the records each time your app runs the underlying query.

> Note:
> Running an ``doc://com.apple.healthkit/documentation/HealthKit/HKVerifiableClinicalRecordQuery`` requires a special entitlement from Apple, or the query fails with an ``doc://com.apple.healthkit/documentation/HealthKit/HKError/Code/errorAuthorizationDenied`` error. To request the entitlement, see [Request Access to the Verifiable Health Records Entitlement](https://developer.apple.com/contact/request/verifiable-health-records/).

## Topics

### Creating Query Descriptors

[`init(recordTypes: [HKVerifiableClinicalRecordCredentialType], sourceTypes: [HKVerifiableClinicalRecordSourceType], predicate: NSPredicate?)`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/init(recordTypes:sourceTypes:predicate:))

Creates a query descriptor for reading verifiable clinical records.

### Running Queries

[`func result(for: HKHealthStore) async throws -> [HKVerifiableClinicalRecord]`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/result(for:))

Runs a one-shot query that asynchronously reads matching clinical records.

### Accessing Query Properties

[`var recordTypes: [HKVerifiableClinicalRecordCredentialType]`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/recordTypes)

The types of records returned by this query.

[`var sourceTypes: [HKVerifiableClinicalRecordSourceType]`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/sourceTypes)

The source for the verifiable clinical records, for example from a SMART Health Card or an EU Digital COVID Certificate.

[`var predicate: NSPredicate?`](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/predicate)

A predicate that limits the results returned by the query.

### Default Implementations

[HKAsyncQuery Implementations](/documentation/HealthKit/HKVerifiableClinicalRecordQueryDescriptor/HKAsyncQuery-Implementations)

## Relationships

### Conforms To

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

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

[`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)