Requesting Authorization to Use SiriKit

Request permission from the user so that Siri and Maps can communicate with your Intents app extension.


Siri and Maps can’t interact with your Intents app extension until the user authorizes them to do so. You request authorization from your iOS app, not your extension. The permissions granted by the user apply to both your iOS app and your watchOS app.

To request authorization:

  1. Enable the Siri capability. Your iOS app or WatchKit extension must have the Siri capability enabled for authorization to succeed. For information about how to enable the Siri capability, see Creating an Intents App Extension.

  2. Configure your Info.plist file. Include the NSSiriUsageDescription key in your iOS app’s Info.plist file. The value for this key is a string that describes what information your app shares with SiriKit. For example, a workout app might set the value to the string “Workout information will be sent to Siri.” Inclusion of this key is required.

  3. Request authorization from your iOS app. Call the requestSiriAuthorization(_:) class method of INPreferences at some point during your iOS app’s execution.

When your app’s authorization state isn’t determined, calling the requestSiriAuthorization(_:) method from your iOS app causes the system to prompt the user to authorize your app. The alert includes the usage description string you provided in the NSSiriUsageDescription key of your app’s Info.plist file. The user can approve or deny your app’s request for authorization, and can change your app’s authorization status later in the Settings app. The system remembers your app’s authorization status so that subsequent calls to the requestSiriAuthorization(_:) method don’t prompt the user again.

See Also


property list key NSSiriUsageDescription

A message that tells the user why the app is requesting to send user data to Siri.

Name: Privacy - Siri Usage Description