extensionProperty resource type (directory extensions)

Namespace: microsoft.graph

Represents a directory extension that can be used to add a custom property to directory objects without requiring an external data store. For example, if an organization has a line of business (LOB) application that requires a Skype ID for each user in the directory, Microsoft Graph can be used to register a new property named skypeId on the directory's User object, and then write a value to the new property for a specific user. Directory extensions can also be available in multi-tenant apps that have been consented to in the tenant.

Directory extensions can be added to following directory objects:

Only 100 extension values, across all types and all applications, can be written to any single Microsoft Entra resource.

Use this resource and associated methods to manage the directory extension definitions. To manage the directory extension data on the extended resource instance, use the same REST request that you use to manage the resource instance.

For more information about Microsoft Graph extensibility, see Add custom properties to resources using extensions.

Inherits from directoryObject.


Extensions created through Azure AD Graph (currently in its retirement cycle) and custom data synchronized from on-premises Active Directory using Microsoft Entra Connect Sync are represented as directory extensions in Microsoft Graph.


Method Return Type Description
Create extensionProperties extensionProperty Create a directory extension on an application object.
List extensionProperties extensionProperty collection List directory extensions on an application object.
Get extensionProperty extensionProperty collection Get a directory extension an application object.
Delete extensionProperty None Delete directory extension from an application object. You can delete only directory extensions that aren't synced from on-premises active directory.
Get available extensions extensionProperty collection Return all directory extension definitions that have been registered in a directory, including through multi-tenant apps.


  1. To set a value for the extension property to an instance of a resource that is specified in targetObjects, use the Update operation of the resource. For example, the Update user API to set the value for a user.
  2. To remove the extension property and its value from an instance of a resource that is specified in targetObjects, set the value of the extension property to null.


Property Type Description
appDisplayName String Display name of the application object on which this extension property is defined. Read-only.
dataType String Specifies the data type of the value the extension property can hold. Following values are supported.
  • Binary - 256 bytes maximum
  • Boolean
  • DateTime - Must be specified in ISO 8601 format. Will be stored in UTC.
  • Integer - 32-bit value.
  • LargeInteger - 64-bit value.
  • String - 256 characters maximum
Not nullable. For multivalued directory extensions, these limits apply per value in the collection.
deletedDateTime DateTimeOffset Date and time when this object was deleted. Always null when the object hasn't been deleted. Inherited from directoryObject.
isSyncedFromOnPremises Boolean Indicates if this extension property was synced from on-premises active directory using Microsoft Entra Connect. Read-only.
name String Name of the extension property. Not nullable. Supports $filter (eq).
isMultiValued Boolean Defines the directory extension as a multi-valued property. When true, the directory extension property can store a collection of objects of the dataType; for example, a collection of string types such as "extension_b7b1c57b532f40b8b5ed4b7a7ba67401_jobGroupTracker": ["String 1", "String 2"]. The default value is false. Supports $filter (eq).
targetObjects String collection Following values are supported. Not nullable.
  • User
  • Group
  • AdministrativeUnit
  • Application
  • Device
  • Organization



JSON representation

The following is a JSON representation of the resource.

  "@odata.type": "#microsoft.graph.extensionProperty",
  "appDisplayName": "String",
  "dataType": "String",
  "deletedDateTime": "String (timestamp)",
  "id": "String (identifier)",
  "isSyncedFromOnPremises": "Boolean",
  "isMultiValued": "Boolean",
  "name": "String",
  "targetObjects": [