<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "FamilyControls",
  "identifier" : "/documentation/FamilyControls/AuthorizationCenter",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Family Controls"
    ],
    "preciseIdentifier" : "s:14FamilyControls19AuthorizationCenterC"
  },
  "title" : "AuthorizationCenter"
}
-->

# AuthorizationCenter

The center for requesting authorization to provide parental controls.

```
class AuthorizationCenter
```

## Overview

To authorize your app so that it can provide parental controls,
access the shared `AuthorizationCenter` instance.

```swift
let center = AuthorizationCenter.shared
```

> Important: You must add the Family Controls capability to your app before you call the
> ``doc://com.apple.FamilyControls/documentation/FamilyControls/AuthorizationCenter/requestAuthorization(for:)``
> or ``doc://com.apple.FamilyControls/documentation/FamilyControls/AuthorizationCenter/revokeAuthorization(completionHandler:)`` methods.
> This capability adds the
> <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.family-controls>
> entitlement to your app.
> In a compatible iPad or iPhone app running in visionOS, authorization attempts always fail.
> For more information, see
> <doc://com.apple.documentation/documentation/Xcode/adding-capabilities-to-your-app>.

Next, to request authorization to provide parental controls,
call [`requestAuthorization(completionHandler:)`](/documentation/FamilyControls/AuthorizationCenter/requestAuthorization(completionHandler:))

```swift
center.requestAuthorization { result in
    switch result {
    case .success():
        // The request succeeded.
    case .failure(let error):
        // Handle the error here.
    }
}
```

or [`requestAuthorization(for:)`](/documentation/FamilyControls/AuthorizationCenter/requestAuthorization(for:)).

```swift
do {
    try await center.requestAuthorization(for: FamilyControlsMember.individual)
} catch {
    // Handle the error here.
}
```

Always request authorization when your app first launches.
If the user’s parent or guardian hasn’t previously authorized your app,
the system displays an alert. If the parent or guardian chooses to continue,
it displays an authentication sheet.
When a parent or guardian either approves or cancels the request,
the system sends the result back to the `requestAuthorization(completionHandler:)`
method’s completion handler.

If you’re authenticating an `individual` who hasn’t previously authorized your app,
the system displays an alert. If the `individual` chooses to continue,
the device asks to authorize that `individual` using Face ID or Touch ID.

After your app has been authorized, additional calls to `requestAuthorization(for:)`
don’t display the authentication sheet or ask to authorize that individual using Face ID or Touch ID.
Instead, the system sets the authorization status.

To observe changes to the authorization status, use
the [`authorizationStatus`](/documentation/FamilyControls/AuthorizationCenter/authorizationStatus) property.

The status may change due to external events,
such as a child graduating to an adult account,
or a parent or guardian changing the status in Settings.
You can also revoke authorization by calling
[`revokeAuthorization(completionHandler:)`](/documentation/FamilyControls/AuthorizationCenter/revokeAuthorization(completionHandler:))

## Topics

### Accessing the shared center

[`shared`](/documentation/FamilyControls/AuthorizationCenter/shared)

The shared center for requesting and revoking authorization.

### Requesting and revoking authorization

[`requestAuthorization(for:)`](/documentation/FamilyControls/AuthorizationCenter/requestAuthorization(for:))

Requests authorization to provide parental controls for a child or individual.

[`revokeAuthorization(completionHandler:)`](/documentation/FamilyControls/AuthorizationCenter/revokeAuthorization(completionHandler:))

Revokes authorization to provide parental controls.

### Tracking authorization changes

[`authorizationStatus`](/documentation/FamilyControls/AuthorizationCenter/authorizationStatus)

The status of your app’s authorization to provide parental controls.

[`$authorizationStatus`](/documentation/FamilyControls/AuthorizationCenter/$authorizationStatus)

A publisher for the authorization status property.

### Deprecated APIs

[`requestAuthorization(completionHandler:)`](/documentation/FamilyControls/AuthorizationCenter/requestAuthorization(completionHandler:))

Requests authorization to provide parental controls for a child.



---

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)