mailboxFolder: delta

Namespace: microsoft.graph

Important

APIs under the /beta version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.

Get a set of mailboxFolder objects that have been added, deleted, or removed from the user's mailbox.

A delta function call for folders in a mailbox is similar to a GET request, except that by appropriately applying state tokens in one or more of these calls, you can query for incremental changes in the folders. This approach allows you to maintain and synchronize a local store of a user's mail folders without having to fetch all the folders of that mailbox from the server every time.

This API is available in the following national cloud deployments.

Global service US Government L4 US Government L5 (DOD) China operated by 21Vianet

Permissions

Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.

Permission type Least privileged permissions Higher privileged permissions
Delegated (work or school account) MailboxFolder.Read MailboxFolder.ReadWrite
Delegated (personal Microsoft account) Not supported. Not supported.
Application MailboxFolder.Read.All MailboxFolder.ReadWrite.All

HTTP request

GET /admin/exchange/mailboxes/{mailboxId}/folders/delta
GET /admin/exchange/mailboxes/{mailboxId}/folders/{mailboxFolderId}/childFolders/delta

Query parameters

Tracking changes in folders incurs a round of one or more delta function calls. If you use any query parameter (other than $deltaToken and $skipToken), you must specify it in the initial delta request. Microsoft Graph automatically encodes any specified parameters into the token portion of the nextLink or deltaLink URL provided in the response. You only need to specify any desired query parameters once upfront. In subsequent requests, simply copy and apply the nextLink or deltaLink URL from the previous response, as that URL already includes the encoded, desired parameters.

Query parameter Description
$deltaToken A state token returned in the deltaLink URL of the previous delta function call for the same folder collection, which indicates the completion of that round of change tracking. Save and apply the entire deltaLink URL including this token in the first request of the next round of change tracking for that collection.
$skipToken A state token returned in the nextLink URL of the previous delta function call, indicating further changes are available to be tracked in the same folder collection.

OData query parameters

You can use the $select query parameter to specify only the properties you need for best performance. The id and parentMailboxUrl properties are always returned.

Request headers

Name Description
Authorization Bearer {token}. Required. Learn more about authentication and authorization.
Prefer odata.maxpagesize={x}. Optional.

Request body

Don't supply a request body for this method.

Response

If successful, this function returns a 200 OK response code and a collection of mailboxFolder objects in the response body.

Examples

Request

The following example shows how to make a single delta function call, and limit the maximum number of folders in the response body to two.

To track changes in the folders of a mailbox, you make one or more delta function calls, with appropriate state tokens, to get the set of incremental changes since the last delta query.

For a similar example that shows how to use the state tokens to track changes in the items of a folder, see Get incremental changes to messages in a folder. The main differences between tracking folders and tracking items in a folder are in the delta query request URLs and the query responses that return folder rather than item collections.

GET https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:e0643f21@a7809c93/folders/delta
Prefer: odata.maxpagesize=2

Response

If the request is successful, the response includes a state token that is either a $skipToken (in an @odata.nextLink response header) or a $deltaToken (in an @odata.deltaLink response header). Respectively, they indicate whether you should continue with the round or you completed getting all the changes for that round.

The following example shows a $deltaToken in an @odata.deltaLink response header.

Note: The response object shown here might be shortened for readability.

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 254

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(mailboxFolder)",
    "@odata.deltaLink": "https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:e0643f21@a7809c93/folders/delta?$deltatoken={_deltaToken_}",
    "value": [
        {
            "@odata.type": "#microsoft.graph.mailboxFolder",
            "displayName": "Inbound",
            "parentMailboxUrl": "https://graph.microsoft.com/beta/admin/Exchange/Mailboxes/MBX:e0643f21@a7809c93",
            "id": "AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMzNjMwNWM0ZGE2YQAuAAAAAADbrwBIJbBSTKolRbhHUzSHAQCQ2fKdhq8oSKEDSVrdi3lRAAACgfP9AAA="
        },
        {
            "@odata.type": "#microsoft.graph.mailboxFolder",
            "displayName": "Outbound",
            "parentMailboxUrl": "https://graph.microsoft.com/beta/admin/Exchange/Mailboxes/MBX:e0643f21@a7809c93",
            "id": "AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMzNjMwNWM0ZGE2YQAuAAAAAADbrwBIJbBSTKolRbhHUzSHAQCQ2fKdhq8oSKEDSVrdi3lRAAACgfP_AAA="
        }
    ]
}