user: translateExchangeIds

Namespace: microsoft.graph

Translate identifiers of Outlook-related resources between formats.


One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Permission type Permissions (from least to most privileged)
Delegated (work or school account) User.ReadBasic.All, User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, 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}"