<!--
{
  "availability" : [
    "iOS: 10.3.0 -",
    "iPadOS: 10.3.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.4 -",
    "tvOS: 10.2.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVContentKeyRequest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVContentKeyRequest"
  },
  "title" : "AVContentKeyRequest"
}
-->

# AVContentKeyRequest

An object that encapsulates information about a content decryption key request issued from a content key session object.

```
class AVContentKeyRequest
```

## Topics

### Getting content key request data

[`makeStreamingContentKeyRequestData(forApp:contentIdentifier:options:completionHandler:)`](/documentation/AVFoundation/AVContentKeyRequest/makeStreamingContentKeyRequestData(forApp:contentIdentifier:options:completionHandler:))

Obtains encrypted key request data for a specific combination of app and content.

[`AVContentKeyRequestProtocolVersionsKey`](/documentation/AVFoundation/AVContentKeyRequestProtocolVersionsKey)

A key that specifies the versions of the content protection protocol supported by the application.

[`AVContentKeyRequestRequiresValidationDataInSecureTokenKey`](/documentation/AVFoundation/AVContentKeyRequestRequiresValidationDataInSecureTokenKey)

A key that requires the secure token to have extended validation data.

[`AVContentKeyRequestRandomDeviceIdentifierSeedKey`](/documentation/AVFoundation/AVContentKeyRequestRandomDeviceIdentifierSeedKey)

Value is an NSData containing a 16-byte seed to randomize the user’s deviceID contained in the SPC blob during FairPlay key exchange

[`AVContentKeyRequestShouldRandomizeDeviceIdentifierKey`](/documentation/AVFoundation/AVContentKeyRequestShouldRandomizeDeviceIdentifierKey)

Value is an Boolean indicating whether the user’s deviceID contained in the SPC blob during FairPlay key exchange should be randomized using a system generated seed

### Responding to the content key request

[`processContentKeyResponse(_:)`](/documentation/AVFoundation/AVContentKeyRequest/processContentKeyResponse(_:))

Sends the specified content key response to the receiver for processing.

[`processContentKeyResponseError(_:)`](/documentation/AVFoundation/AVContentKeyRequest/processContentKeyResponseError(_:))

Tells the receiver that the app was unable to obtain a content key response.

[`respondByRequestingPersistableContentKeyRequest()`](/documentation/AVFoundation/AVContentKeyRequest/respondByRequestingPersistableContentKeyRequest())

Tells the receiver that the app requires a persistable content key request object for processing.

### Getting content key request properties

[`identifier`](/documentation/AVFoundation/AVContentKeyRequest/identifier)

The identifier for the content key.

[`originatingRecipient`](/documentation/AVFoundation/AVContentKeyRequest/originatingRecipient)

The AVContentKeyRecipient which initiated this request, if any.

[`canProvidePersistableContentKey`](/documentation/AVFoundation/AVContentKeyRequest/canProvidePersistableContentKey)

The content key request used to create a persistable content key or respond to a previous request with a persistable content key.

[`error`](/documentation/AVFoundation/AVContentKeyRequest/error)

The error description for a failed key request.

[`initializationData`](/documentation/AVFoundation/AVContentKeyRequest/initializationData)

The data used to obtain a key response.

[`renewsExpiringResponseData`](/documentation/AVFoundation/AVContentKeyRequest/renewsExpiringResponseData)

A Boolean value that indicates whether the content key request renews previously provided response data.

[`status`](/documentation/AVFoundation/AVContentKeyRequest/status-swift.property)

The current state of the content key request.

[`AVContentKeyRequest.Status`](/documentation/AVFoundation/AVContentKeyRequest/Status-swift.enum)

The status for a content key request.

### Inspecting a request

[`contentKey`](/documentation/AVFoundation/AVContentKeyRequest/contentKey)

The generated content key.

[`contentKeySpecifier`](/documentation/AVFoundation/AVContentKeyRequest/contentKeySpecifier)

The requested content key specifier.

[`options`](/documentation/AVFoundation/AVContentKeyRequest/options)

A dictionary of options used to initialize key loading.

[`AVContentKeyRequest.RetryReason`](/documentation/AVFoundation/AVContentKeyRequest/RetryReason)

The reason for asking the client to retry a content key request.



---

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)