<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppTrackingTransparency",
  "identifier" : "/documentation/AppTrackingTransparency/ATTrackingManager/requestTrackingAuthorization(completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "App Tracking Transparency"
    ],
    "preciseIdentifier" : "c:objc(cs)ATTrackingManager(cm)requestTrackingAuthorizationWithCompletionHandler:"
  },
  "title" : "requestTrackingAuthorization(completionHandler:)"
}
-->

# requestTrackingAuthorization(completionHandler:)

The request for user authorization to access app-related data.

```
class func requestTrackingAuthorization(completionHandler completion: @escaping @Sendable (ATTrackingManager.AuthorizationStatus) -> Void)
```

## Discussion

The [`requestTrackingAuthorization(completionHandler:)`](/documentation/AppTrackingTransparency/ATTrackingManager/requestTrackingAuthorization(completionHandler:))
is a one-time request to authorize or deny access to app-related data that
can be used for tracking the user or the device. The system remembers the
user’s choice and doesn’t prompt again unless a user uninstalls and then
reinstalls the app on the device.

Calls to the API only prompt when the application state
is `UIApplicationStateActive`. The authorization prompt doesn’t display if
another permission request is pending user confirmation. Concurrent requests
aren’t preserved by iOS, and calls to the API through an app extension don’t
prompt. Check the [`trackingAuthorizationStatus`](/documentation/AppTrackingTransparency/ATTrackingManager/trackingAuthorizationStatus) for a
status of
[`ATTrackingManager.AuthorizationStatus.notDetermined`](/documentation/AppTrackingTransparency/ATTrackingManager/AuthorizationStatus/notDetermined)
to determine if you need to make an additional call.

The completion handler will be called with the result of the user’s
decision for granting or denying permission to use application tracking.
The completion handler will be called immediately if access to request
authorization is restricted.

> Important: To use
> ``doc://com.apple.apptrackingtransparency/documentation/AppTrackingTransparency/ATTrackingManager/requestTrackingAuthorization(completionHandler:)``,
> the
> <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NSUserTrackingUsageDescription>
> key must be in the
> <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List>.

---

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)