Understanding Outlook add-in permissions

Outlook add-ins specify the required permission level in their manifest. There are four available levels.

Permission level
canonical name
XML manifest name unified Microsoft 365 manifest name Summary description
restricted Restricted MailboxItem.Restricted.User Allows use of entities, but not regular expressions.
read item ReadItem MailboxItem.Read.User In addition to what is allowed in restricted, it allows:
  • regular expressions
  • Outlook add-in API read access
  • getting the item properties and the callback token
  • writing custom properties
read/write item ReadWriteItem MailboxItem.ReadWrite.User In addition to what is allowed in read item, it allows:
  • full Outlook add-in API access except makeEwsRequestAsync
  • setting the item properties
read/write mailbox ReadWriteMailbox Mailbox.ReadWrite.User In addition to what is allowed in read/write item, it allows:

Permissions are declared in the manifest. The markup varies depending on the type of manifest.

  • XML manifest: Use the <Permissions> element.
  • Unified Microsoft 365 manifest (preview): Use the "name" property of an object in the "authorization.permissions.resourceSpecific" array.

Note

  • There is a supplementary permission needed for add-ins that use the append-on-send feature. With the XML manifest, you specify the permission in the ExtendedPermissions element. For details, see Implement append-on-send in your Outlook add-in. With the unified manifest (preview), you specify this permission with the name Mailbox.AppendOnSend.User in an additional object in the "authorization.permissions.resourceSpecific" array.
  • There is a supplementary permission needed for add-ins that use shared folders. With the XML manifest, you specify the permission by setting the SupportsSharedFolders element to true. For details, see Enable shared folders and shared mailbox scenarios in an Outlook add-in. With the unified manifest (preview), you specify this permission with the name Mailbox.SharedFolder in an additional object in the "authorization.permissions.resourceSpecific" array.

The four levels of permissions are cumulative: the read/write mailbox permission includes the permissions of read/write item, read item and restricted, read/write item includes read item and restricted, and the read item permission includes restricted.

You can see the permissions requested by a mail add-in before installing it from AppSource. You can also see the required permissions of installed add-ins in the Exchange Admin Center.

restricted permission

The restricted permission is the most basic level of permission. Outlook assigns this permission to a mail add-in by default if the add-in doesn't request a specific permission in its manifest.

Can do

  • Get only specific entities (phone number, address, URL) from the item's subject or body.

  • Specify an ItemIs activation rule that requires the current item in a read or compose form to be a specific item type, or ItemHasKnownEntity rule that matches any of a smaller subset of supported well-known entities (phone number, address, URL) in the selected item.

    Note

    Outlook Add-in features that depend on activation rules aren't supported when the add-in uses a Unified Microsoft 365 manifest (preview).

  • Access any properties and methods that do not pertain to specific information about the user or item (see the next section for the list of members that do).

Can't do

read item permission

The read item permission is the next level of permission in the permissions model.

Can do

Can't do

read/write item permission

Specify read/write item permission in the manifest to request this permission. Mail add-ins activated in compose forms that use write methods (Message.to.addAsync or Message.to.setAsync) must use at least this level of permission.

Can do

Can't do

  • Use the token provided by mailbox.getCallbackTokenAsync to:

    • Update or delete the current item using the Outlook REST API or access any other items in the user's mailbox.
    • Get the current calendar event item using the Outlook REST API.
  • Use mailbox.makeEWSRequestAsync.

read/write mailbox permission

The read/write mailbox permission is the highest level of permission.

In addition to what the read/write item permission supports, the token provided by mailbox.getCallbackTokenAsync provides access to use Exchange Web Services (EWS) operations or Outlook REST APIs to do the following:

  • Read and write all properties of any item in the user's mailbox.
  • Create, read, and write to any folder or item in that mailbox.
  • Send an item from that mailbox

Through mailbox.makeEWSRequestAsync, you can access the following EWS operations.

Attempting to use an unsupported operation will result in an error response.

See also