user: translateExchangeIds

Namespace: microsoft.graph

Translate identifiers of Outlook-related resources between formats.

This API is available in the following national cloud deployments.

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


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) User.ReadBasic.All User.Read, User.Read.All, User.ReadWrite, User.ReadWrite.All
Delegated (personal Microsoft account) User.ReadBasic.All User.Read, User.ReadWrite
Application User.Read.All User.ReadWrite.All

HTTP request

POST /me/translateExchangeIds
POST /users/{id|userPrincipalName}/translateExchangeIds

Request headers

Name Value
Authorization Bearer {token}. Required.

Request body

Parameter Type Description
inputIds String collection A collection of identifiers to convert. All identifiers in the collection MUST have the same source ID type, and MUST be for items in the same mailbox. Maximum size of this collection is 1000 strings.
sourceIdType exchangeIdFormat The ID type of the identifiers in the InputIds parameter.
targetIdType exchangeIdFormat The requested ID type to convert to.

exchangeIdFormat values

Member Description
entryId The binary entry ID format used by MAPI clients.
ewsId The ID format used by Exchange Web Services clients.
immutableEntryId The binary MAPI-compatible immutable ID format.
restId The default ID format used by Microsoft Graph.
restImmutableEntryId The immutable ID format used by Microsoft Graph.

The binary formats (entryId and immutableEntryId) are URL-safe base64 encoded. URL-safeness is implemented by modifying the base64 encoding of the binary data in the following way:

  • Replace + with -
  • Replace / with _
  • Remove any trailing padding characters (=)
  • Add an integer to the end of the string indicating how many padding characters were in the original (0, 1, or 2)


If successful, this method returns 200 OK response code and a convertIdResult collection in the response body.


The following example shows how to convert multiple identifiers from the normal REST API format (restId) to the REST immutable format (restImmutableEntryId).


Here is the example request.

Content-Type: application/json

  "inputIds" : [
  "sourceIdType": "restId",
  "targetIdType": "restImmutableEntryId"


Here is the example response

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

  "value": [
      "sourceId": "{rest-formatted-id-1}",
      "targetId": "{rest-immutable-formatted-id-1}"
      "sourceId": "{rest-formatted-id-2}",
      "targetId": "{rest-immutable-formatted-id-2}"