Create administrativeUnit

Namespace: microsoft.graph


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.

Use this API to create a new administrativeUnit.


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) AdministrativeUnit.ReadWrite.All
Delegated (personal Microsoft account) Not supported.
Application AdministrativeUnit.ReadWrite.All

To create an administrative unit, the calling principal must be assigned one of the following Azure AD roles:

  • Privileged Role Administrator
  • Global Administrator

HTTP request

POST /administrativeUnits
POST /directory/administrativeUnits

Request headers

Name Description
Authorization Bearer {token}. Required.
Content-type application/json. Required.

Request body

In the request body, supply a JSON representation of an administrativeUnit object.

You can specify the following properties when creating an administrativeUnit.

Property Type Description
description String Description for the administrative unit. Optional.
displayName String Display name for the administrative unit. Required.
membershipRule String Dynamic membership rule for the administrative unit. For more about the rules that you can use for dynamic administrative units and dynamic groups, see Using attributes to create advanced rules. Optional.
membershipRuleProcessingState String Used to control whether the dynamic membership rule is actively processed. Set to On when you want the dynamic membership rule to be active and Paused if you want to stop updating membership dynamically. Optional.
membershipType String Membership type for the administrative unit. Can be dynamic or assigned. Optional.
visibility String Visibility for the administrative unit. If not set, then the default is public. Can be set to HiddenMembership, which hides the membership from non-members. Optional.

Because the administrativeUnit resource supports extensions, you can use the POST operation and add custom properties with your own data to the administrative unit while creating it.


If successful, this method returns a 201 Created response code and an administrativeUnit object in the response body.



The following is an example of a request that creates a new administrative unit with a dynamic membership rule to include all users whose country is United States.

Content-type: application/json

    "displayName": "Seattle District Technical Schools",
    "description": "Seattle district technical schools administration",
    "membershipType": "Dynamic",
    "membershipRule": "( -eq \"United States\")",
    "membershipRuleProcessingState": "On"


The following is an example of the response.

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

HTTP/1.1 201 Created
Content-type: application/json

    "@odata.context": "$metadata#administrativeUnits/$entity",
    "id": "49eb93f2-a5a2-4567-ad66-76a3ebd01d84",
    "deletedDateTime": null,
    "displayName": "Seattle District Technical Schools",
    "description": "Seattle district technical schools administration",
    "membershipRule": "( -eq \"United States\")",
    "membershipType": "Dynamic",
    "membershipRuleProcessingState": "On"

See also