Skip to content

unifiedGroups

Microsoft 365 Groups. Microsoft 365 groups with their members, owners, and subscribers. The unifiedGroups entity set lives under /exchange/v1.0/unifiedGroups in the Recipients category.

Fact Value
Path /exchange/v1.0/unifiedGroups
Category Recipients
Tier Tier 0, Directory
Read role Group.Read.All (Community)
Write role Group.ReadWrite.All (Pro)
Backing cmdlets Get-UnifiedGroup, Set-UnifiedGroup, New-UnifiedGroup, Remove-UnifiedGroup, Add-UnifiedGroupLinks, Remove-UnifiedGroupLinks, Get-UnifiedGroupLinks, Undo-SoftDeletedUnifiedGroup
Method Path Synopsis Role Plan
GET /exchange/v1.0/unifiedGroups List unifiedGroups entries. Group.Read Community
POST /exchange/v1.0/unifiedGroups POST /unifiedGroups - creates an M365 Group via New-UnifiedGroup. Required: displayName. Alias auto-derived. Default access is Private. Returns 201 + Location + new entity. Re-fetch uses Alias (explicit or derived). Group.ReadWrite Pro
GET /exchange/v1.0/unifiedGroups/{key} Get a single unifiedGroups entry by Identity. Group.Read Community
PATCH /exchange/v1.0/unifiedGroups/{key} PATCH /unifiedGroups/{key} - partial update via Set-UnifiedGroup. ?forceUpgrade=true for M365 group schema migrations. Group.ReadWrite Pro
DELETE /exchange/v1.0/unifiedGroups/{key} DELETE /unifiedGroups/{key} - Remove-UnifiedGroup. Associated mailbox + SP site + Teams follow normal soft-delete. Pass ?force=true to suppress cmdlet prompts. Group.ReadWrite Pro
GET /exchange/v1.0/unifiedGroups/{key}/members Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers). Group.Read Community
POST /exchange/v1.0/unifiedGroups/{key}/members/$ref Add a member to the unifiedGroups at GET /unifiedGroups/{key}. Graph-style /$ref link write. Returns 204. Group.ReadWrite Pro
DELETE /exchange/v1.0/unifiedGroups/{key}/members/{linkId}/$ref Remove a member link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204. Group.ReadWrite Pro
GET /exchange/v1.0/unifiedGroups/{key}/owners Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers). Group.Read Community
POST /exchange/v1.0/unifiedGroups/{key}/owners/$ref Add an owner to the unifiedGroups at GET /unifiedGroups/{key}. Returns 204. Group.ReadWrite Pro
DELETE /exchange/v1.0/unifiedGroups/{key}/owners/{linkId}/$ref Remove an owner link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204. Group.ReadWrite Pro
POST /exchange/v1.0/unifiedGroups/{key}/restore POST /unifiedGroups/{key}/restore - recover a soft-deleted Microsoft 365 Group (within the 30-day window) via Undo-SoftDeletedUnifiedGroup. {key} is the soft-deleted group identity - list candidates with GET /unifiedGroups?includeSoftDeletedGroups=true. All group content is restored. 204 on success; ?dryRun=true previews (-WhatIf). Group.ReadWrite Pro
GET /exchange/v1.0/unifiedGroups/{key}/subscribers Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers). Group.Read Community
POST /exchange/v1.0/unifiedGroups/{key}/subscribers/$ref Add a subscriber to the unifiedGroups at GET /unifiedGroups/{key}. Returns 204. Group.ReadWrite Pro
DELETE /exchange/v1.0/unifiedGroups/{key}/subscribers/{linkId}/$ref Remove a subscriber link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204. Group.ReadWrite Pro

List unifiedGroups entries.

Backing cmdlet: Get-UnifiedGroup. Role: Group.Read (Community).

Parameter In Type Required Description
includeAllProperties query bool (switch) Include all property values in the results - populates fields that are otherwise blank (CalendarMemberReadOnly, CalendarUrl, InboxUrl, PeopleUrl, PhotoUrl). EXO-only, maps -IncludeAllProperties.
includeSoftDeletedGroups query bool (switch) Include soft-deleted (still-recoverable) Microsoft 365 Groups in the results. EXO-only, maps -IncludeSoftDeletedGroups.
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-UnifiedGroup; prevents silent truncation in large tenants.
includeAcceptMessagesOnlyFromSendersOrMembersWithDisplayNames query bool (switch) Return SMTP addresses + display names of AcceptMessagesOnlyFromSendersOrMembers recipients in the *WithDisplayNames property (otherwise shown as GUIDs). EXO-only, maps -IncludeAcceptMessagesOnlyFromSendersOrMembersWithDisplayNames.
includeGrantSendOnBehalfToWithDisplayNames query bool (switch) Return SMTP addresses + display names of GrantSendOnBehalfTo recipients in the *WithDisplayNames property (otherwise shown as GUIDs). EXO-only, maps -IncludeGrantSendOnBehalfToWithDisplayNames.
includeModeratedByWithDisplayNames query bool (switch) Return SMTP addresses + display names of ModeratedBy recipients in the *WithDisplayNames property (otherwise shown as GUIDs). EXO-only, maps -IncludeModeratedByWithDisplayNames.
includeRejectMessagesFromSendersOrMembersWithDisplayNames query bool (switch) Return SMTP addresses + display names of RejectMessagesFromSendersOrMembers recipients in the *WithDisplayNames property (otherwise shown as GUIDs). EXO-only, maps -IncludeRejectMessagesFromSendersOrMembersWithDisplayNames.

Returns M365 groups - the modern, Teams-backed group flavor. Distinct from classic distribution groups (see /distributionGroups). GroupType=Unified is the discriminator.

GET /exchange/v1.0/unifiedGroups?$top=2&$select=Id,DisplayName,PrimarySmtpAddress,Alias,GroupType,WhenCreated HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#unifiedGroups(Id,DisplayName,PrimarySmtpAddress,Alias,GroupType,WhenCreated)",
"value": [
{
"Id": "engineering_b01e5307-2265-49d4-99ad-0a3f9378929c",
"DisplayName": "engineering_lori",
"Alias": "engineering",
"PrimarySmtpAddress": "[email protected]",
"WhenCreated": "2026-03-30T17:53:49+03:00",
"GroupType": "Universal"
},
{
"Id": "allcompany_f4fd5036-f166-4983-b6ec-90530b2b52e0",
"DisplayName": "All Company",
"Alias": "allcompany",
"PrimarySmtpAddress": "[email protected]",
"WhenCreated": "2026-03-30T17:11:07+03:00",
"GroupType": "Universal"
}
]
}

Related: GET /exchange/v1.0/unifiedGroups/{key}, GET /exchange/v1.0/unifiedGroups/{key}/members, GET /exchange/v1.0/unifiedGroups/{key}/owners, POST /exchange/v1.0/unifiedGroups, PATCH /exchange/v1.0/unifiedGroups/{key}, DELETE /exchange/v1.0/unifiedGroups/{key}

POST /unifiedGroups - creates an M365 Group via New-UnifiedGroup. Required: displayName. Alias auto-derived. Default access is Private. Returns 201 + Location + new entity. Re-fetch uses Alias (explicit or derived).

Backing cmdlet: New-UnifiedGroup. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
displayName body yes
accessType body
alias body
alwaysSubscribeMembersToCalendarEvents body boolean (switch)
autoSubscribeNewMembers body boolean (switch)
classification body
dataEncryptionPolicy body
deleteDlAfterMigration body boolean (switch)
dlIdentity body
emailAddresses body
executingUser body
exoErrorAsWarning body boolean (switch)
hiddenGroupMembershipEnabled body boolean (switch)
isMemberAllowedToEditContent body
language body
mailboxRegion body
managedBy body
members body
name body
notes body
owner body
primarySmtpAddress body
requireSenderAuthenticationEnabled body
sensitivityLabelId body
subscriptionEnabled body boolean (switch)
suppressWarmupMessage body boolean (switch)
dryRun query bool (switch)

New-UnifiedGroup requires displayName. Omitting it fails body validation before the cmdlet runs and returns the canonical 400 envelope.

POST /exchange/v1.0/unifiedGroups HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"alias": "exonaut-sample-unifiedGroups",
"accessType": "Private"
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"error": {
"code": "BadRequest",
"message": "The required field 'displayName' is missing or empty.",
"target": "displayName"
},
"correlationId": "0HN3K9P2QF4A1:00000007"
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

Creates a Microsoft 365 (unified) group via New-UnifiedGroup. Only displayName is required; the alias is auto-derived and access defaults to Private.

POST /exchange/v1.0/unifiedGroups HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"displayName": "Exonaut Sample UnifiedGroups",
"alias": "exonaut-sample-unifiedGroups",
"accessType": "Private",
"notes": "Sample Microsoft 365 group provisioned for documentation.",
"primarySmtpAddress": "[email protected]",
"autoSubscribeNewMembers": true
}
HTTP/1.1 201 Created
Location: /exchange/v1.0/unifiedGroups/exonaut-sample-unifiedGroups
{
"Identity": "exonaut-sample-unifiedGroups",
"DisplayName": "Exonaut Sample UnifiedGroups",
"Alias": "exonaut-sample-unifiedGroups",
"AccessType": "Private",
"PrimarySmtpAddress": "[email protected]",
"Notes": "Sample Microsoft 365 group provisioned for documentation.",
"AutoSubscribeNewMembers": true
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

Get a single unifiedGroups entry by Identity.

Backing cmdlet: Get-UnifiedGroup. Role: Group.Read (Community).

Parameter In Type Required Description
includeAllProperties query bool (switch) Include all property values in the results - populates fields that are otherwise blank (CalendarMemberReadOnly, CalendarUrl, InboxUrl, PeopleUrl, PhotoUrl). EXO-only, maps -IncludeAllProperties.

Returns one M365 group with all directory-side attributes - privacy (Private/Public), classification, sensitivity label, member/guest counts, mail-enable state.

GET /exchange/v1.0/unifiedGroups/{key} HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#unifiedGroups/$entity",
"Id": "engineering_b01e5307-2265-49d4-99ad-0a3f9378929c",
"ExchangeGuid": "9e94b0f3-8e81-48ba-9dc9-dbfe4fd0cb46",
"Guid": "aaf9a029-c190-4b41-b884-13f944205c9e",
"DisplayName": "engineering_lori",
"SimpleDisplayName": null,
"PhoneticDisplayName": null,
"Name": "engineering_b01e5307-2265-49d4-99ad-0a3f9378929c",
"Alias": "engineering",
"DistinguishedName": "CN=engineering_b01e5307-2265-49d4-99ad-0a3f9378929c,OU=contoso.com,OU=Microsoft Exchange Hosted Organizations,DC=EURPR01A017,DC=PROD,DC=OUTLOOK,DC=COM",
"Identity": "engineering_b01e5307-2265-49d4-99ad-0a3f9378929c",
"ExternalDirectoryObjectId": "b01e5307-2265-49d4-99ad-0a3f9378929c",
"PrimarySmtpAddress": "[email protected]",
"WindowsLiveID": null,
"WindowsEmailAddress": null,
"EmailAddresses": [
"SPO:SPO_29b7d088-85ea-454b-8f9b-a9ac30fc0993@SPO_00000000-0000-0000-0000-000000000000"
],
"EmailAddressPolicyEnabled": false,
"RecipientType": "MailUniversalDistributionGroup",
"RecipientTypeDetails": "GroupMailbox",
"OrganizationalUnit": "eurpr01a017.prod.outlook.com/Microsoft Exchange Hosted Organizations/contoso.com",
"OrganizationId": "EURPR01A017.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/contoso.com - EURPR01A017.PROD.OUTLOOK.COM/ConfigurationUnits/contoso.com/Configuration",
"CustomAttribute1": "",
"CustomAttribute2": "",
"CustomAttribute3": "",
"CustomAttribute4": "",
"CustomAttribute5": "",
"ExtensionCustomAttribute1": [],
"ExtensionCustomAttribute2": [],
"ExtensionCustomAttribute3": [],
"ExtensionCustomAttribute4": [],
"ExtensionCustomAttribute5": [],
"HiddenFromAddressListsEnabled": false,
"AddressBookPolicy": null,
"WhenCreated": "2026-03-30T17:53:49+03:00",
"WhenChanged": "2026-05-14T23:09:04+03:00",
"WhenCreatedUTC": "2026-03-30T14:53:49Z",
"WhenChangedUTC": "2026-05-14T20:09:04Z",
"GroupType": "Universal",
"RequireSenderAuthenticationEnabled": true,
"ReportToManagerEnabled": false,
"ReportToOriginatorEnabled": true,
"SendOofMessageToOriginatorEnabled": false,
"AcceptMessagesOnlyFrom": [],
"AcceptMessagesOnlyFromDLMembers": [],
"AcceptMessagesOnlyFromSendersOrMembers": [],
"RejectMessagesFrom": [],
"RejectMessagesFromDLMembers": [],
"RejectMessagesFromSendersOrMembers": [],
"BypassModerationFromSendersOrMembers": [],
"ModerationEnabled": false,
"ModeratedBy": [],
"SendModerationNotifications": "Always",
"ManagedBy": [
"b6109718-30dc-4b59-9f83-d26767923ac9"
],
"Members_Raw": [],
"MailTip": null,
"MailTipTranslations": [],
"GrantSendOnBehalfTo": [],
"AccessType": "Private",
"IsMembershipDynamic": false,
"DataLocation": null,
"Classification": null,
"Description": null,
"Notes": "testobject",
"SharePointSiteUrl": "https://contoso.sharepoint.com/sites/engineering",
"SharePointDocumentsUrl": "https://contoso.sharepoint.com/sites/engineering/Shared Documents",
"SharePointNotebookUrl": null,
"CalendarUrl": "https://outlook.office365.com/owa/?path=/group/[email protected]/calendar",
"InboxUrl": "https://outlook.office365.com/owa/?path=/group/[email protected]/mail",
"PeopleUrl": "https://outlook.office365.com/owa/?path=/group/[email protected]/people",
"Yammer": null,
"PrimarySmtpAddress_UG": null,
"AllowAddGuests": true,
"AlwaysSubscribeMembersToCalendarEvents": true,
"AutoSubscribeNewMembers": false,
"HiddenFromExchangeClientsEnabled": false,
"SubscriptionEnabled": true,
"CalendarMemberReadOnly": null,
"ConnectorsEnabled": true,
"UnifiedGroupWelcomeMessageEnabled": null,
"AlwaysSubscribeMembers": null,
"IsGuestFamily": null,
"IsExternalResourcesOnly": null,
"Language": "en-US",
"GroupExpirationDate": null,
"SensitivityLabels": [],
"MemberCount": null,
"GuestCount": null,
"GroupOwnerCount": null,
"AcceptMessagesOnlyFromDLMembersWithDisplayNames": [],
"AcceptMessagesOnlyFromSendersOrMembersWithDisplayNames": [],
"AcceptMessagesOnlyFromWithDisplayNames": [],
"AddressListMembership": [
"\\Default Global Address List",
"\\Offline Global Address List",
"\\All Groups",
"\\All Distribution Lists",
"\\GroupMailboxes(VLV)",
"\\Groups(VLV)",
"\\All Groups(VLV)",
"\\All Recipients(VLV)"
],
"AdministrativeUnits": [],
"AuditLogAgeLimit": "90.00:00:00",
"BccBlocked": false,
"BypassModerationFromSendersOrMembersWithDisplayNames": [],
"CustomAttribute10": "",
"CustomAttribute11": "",
"CustomAttribute12": "",
"CustomAttribute13": "",
"CustomAttribute14": "",
"CustomAttribute15": "",
"CustomAttribute6": "",
"CustomAttribute7": "",
"CustomAttribute8": "",
"CustomAttribute9": "",
"DataEncryptionPolicy": null,
"Database": "eurprd02.prod.outlook.com/974ca1a7-7e06-4446-bc5a-c8ea00e2eebf",
"ExchangeObjectId": "d3ed9d8d-f552-4909-b8fd-6b3f02677a7e",
"ExpansionServer": "",
"ExpirationTime": null,
"FileNotificationsSettings": null,
"GrantSendOnBehalfToWithDisplayNames": [],
"GroupExternalMemberCount": 0,
"GroupMemberCount": 0,
"GroupPersonification": null,
"GroupSKU": "Default",
"HiddenGroupMembershipEnabled": false,
"InPlaceHolds": [],
"InPlaceHoldsRaw": [],
"InformationBarrierMode": "Open",
"IsDirSynced": false,
"IsExternalResourcesPublished": true,
"IsMailboxConfigured": true,
"IsMemberAllowedToEditContent": null,
"LastExchangeChangedTime": null,
"LegacyExchangeDN": "/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=groupbd983553",
"MailboxProvisioningConstraint": null,
"MailboxRegion": null,
"ManagedByDetails": "b6109718-30dc-4b59-9f83-d26767923ac9",
"ManagedByWithDisplayName": [],
"MaxReceiveSize": "36 MB (37,748,736 bytes)",
"MaxSendSize": "35 MB (36,700,160 bytes)",
"MigrationToUnifiedGroupInProgress": false,
"ModeratedByWithDisplayNames": [],
"OrganizationalUnitRoot": "contoso.com",
"PhotoUrl": "https://outlook.office365.com/EWS/Exchange.asmx/s/[email protected]",
"PoliciesExcluded": [
"{26491cfc-9e50-4857-861b-0cb8df22b5d7}"
],
"PoliciesIncluded": [],
"RejectMessagesFromSendersOrMembersWithDisplayNames": [],
"ResourceBehaviorOptions": [],
"ResourceProvisioningOptions": [],
"SensitivityLabel": null,
"ServerName": "as8pr02mb7318",
"ServiceEndpointUris": [],
"WelcomeMessageEnabled": true,
"WhenSoftDeleted": null,
"YammerEmailAddress": ""
}

Related: GET /exchange/v1.0/unifiedGroups, GET /exchange/v1.0/unifiedGroups/{key}/members, GET /exchange/v1.0/unifiedGroups/{key}/owners, GET /exchange/v1.0/unifiedGroups/{key}/subscribers, PATCH /exchange/v1.0/unifiedGroups/{key}

PATCH /unifiedGroups/{key} - partial update via Set-UnifiedGroup. ?forceUpgrade=true for M365 group schema migrations.

Backing cmdlet: Set-UnifiedGroup. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
acceptMessagesOnlyFromSendersOrMembers body
accessType body
alias body
alwaysSubscribeMembersToCalendarEvents body boolean (switch)
auditLogAgeLimit body
autoSubscribeNewMembers body boolean (switch)
calendarMemberReadOnly body boolean (switch)
classification body
connectorsEnabled body boolean (switch)
customAttribute1 body
customAttribute10 body
customAttribute11 body
customAttribute12 body
customAttribute13 body
customAttribute14 body
customAttribute15 body
customAttribute2 body
customAttribute3 body
customAttribute4 body
customAttribute5 body
customAttribute6 body
customAttribute7 body
customAttribute8 body
customAttribute9 body
dataEncryptionPolicy body
displayName body
emailAddresses body
extensionCustomAttribute1 body
extensionCustomAttribute2 body
extensionCustomAttribute3 body
extensionCustomAttribute4 body
extensionCustomAttribute5 body
grantSendOnBehalfTo body
hiddenFromAddressListsEnabled body
hiddenFromExchangeClientsEnabled body boolean (switch)
informationBarrierMode body
isMemberAllowedToEditContent body
language body
mailboxRegion body
mailTip body
mailTipTranslations body
maxReceiveSize body
maxSendSize body
moderatedBy body
moderationEnabled body
notes body
primarySmtpAddress body
rejectMessagesFromSendersOrMembers body
requireSenderAuthenticationEnabled body
sensitivityLabelId body
subscriptionEnabled body boolean (switch)
unifiedGroupWelcomeMessageEnabled body boolean (switch)
forceUpgrade query bool (switch)
dryRun query bool (switch)

Partial update of a Microsoft 365 group via Set-UnifiedGroup. Only the supplied SetWritable fields are changed; the updated entity is re-fetched and returned.

PATCH /exchange/v1.0/unifiedGroups/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"displayName": "Exonaut Sample UnifiedGroups (Updated)",
"notes": "Updated description for the sample Microsoft 365 group.",
"accessType": "Public"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"Identity": "exonaut-sample-unifiedGroups",
"DisplayName": "Exonaut Sample UnifiedGroups (Updated)",
"Alias": "exonaut-sample-unifiedGroups",
"AccessType": "Public",
"PrimarySmtpAddress": "[email protected]",
"Notes": "Updated description for the sample Microsoft 365 group."
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

DELETE /unifiedGroups/{key} - Remove-UnifiedGroup. Associated mailbox + SP site + Teams follow normal soft-delete. Pass ?force=true to suppress cmdlet prompts.

Backing cmdlet: Remove-UnifiedGroup. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
force query bool (switch)
dryRun query bool (switch)

Removes a Microsoft 365 group via Remove-UnifiedGroup. The associated mailbox, SharePoint site, and Teams follow normal soft-delete. Returns 204.

DELETE /exchange/v1.0/unifiedGroups/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

GET /exchange/v1.0/unifiedGroups/{key}/members

Section titled “GET /exchange/v1.0/unifiedGroups/{key}/members”

Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers).

Backing cmdlet: Get-UnifiedGroupLinks. Role: Group.Read (Community).

Parameter In Type Required Description
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-UnifiedGroupLinks; prevents silent truncation in large tenants.

Sub-resource of the M365 group at GET /unifiedGroups/{key}. M365 groups have FOUR link types - members, owners, subscribers, guests. This endpoint returns members; the others have their own sub-paths.

GET /exchange/v1.0/unifiedGroups/{key}/members HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#recipients",
"value": []
}

Notes: App-only tokens can READ owner links but cannot WRITE them - owners must be added by a delegated user-on-behalf token (EXO limitation, not API).

Related: GET /exchange/v1.0/unifiedGroups/{key}, GET /exchange/v1.0/unifiedGroups/{key}/owners, GET /exchange/v1.0/unifiedGroups/{key}/subscribers, POST /exchange/v1.0/unifiedGroups/{key}/members/$ref, DELETE /exchange/v1.0/unifiedGroups/{key}/members/{linkId}/$ref

POST /exchange/v1.0/unifiedGroups/{key}/members/$ref

Section titled “POST /exchange/v1.0/unifiedGroups/{key}/members/$ref”

Add a member to the unifiedGroups at GET /unifiedGroups/{key}. Graph-style /$ref link write. Returns 204.

Backing cmdlet: Add-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
member body string yes
dryRun query bool (switch)

Sub-resource of GET /unifiedGroups/{key}/members. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - adds one member link via Add-UnifiedGroupLinks -LinkType Members. Graph-style /$ref write; returns 204.

POST /exchange/v1.0/unifiedGroups/{key}/members/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"member": "[email protected]"
}
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

DELETE /exchange/v1.0/unifiedGroups/{key}/members/{linkId}/$ref

Section titled “DELETE /exchange/v1.0/unifiedGroups/{key}/members/{linkId}/$ref”

Remove a member link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204.

Backing cmdlet: Remove-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Remove a member from a Microsoft 365 group

Section titled “Remove a member from a Microsoft 365 group”

Sub-resource of GET /unifiedGroups/{key}/members/{linkId}. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - removes one member link via Remove-UnifiedGroupLinks -LinkType Members. The {linkId} is the recipient identity (UPN / alias). Returns 204.

DELETE /exchange/v1.0/unifiedGroups/{key}/members/{linkId}/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

GET /exchange/v1.0/unifiedGroups/{key}/owners

Section titled “GET /exchange/v1.0/unifiedGroups/{key}/owners”

Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers).

Backing cmdlet: Get-UnifiedGroupLinks. Role: Group.Read (Community).

Parameter In Type Required Description
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-UnifiedGroupLinks; prevents silent truncation in large tenants.

Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - returns the owner recipients of a Microsoft 365 (unified) group as a collection of recipient entities. Backed by Get-UnifiedGroupLinks -LinkType Owners.

GET /exchange/v1.0/unifiedGroups/{key}/owners HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#recipients",
"value": [
{
"@odata.type": "#ExchangeApi.Mailbox",
"Id": "b6109718-30dc-4b59-9f83-d26767923ac9",
"ExchangeGuid": "d9a1789b-7908-42c6-8aa3-d37a6508c678",
"Guid": "12c64347-103c-46b8-ab34-73c38b01fc8f",
"DisplayName": "(Admin) Dana Lee",
"SimpleDisplayName": null,
"PhoneticDisplayName": null,
"Name": "b6109718-30dc-4b59-9f83-d26767923ac9",
"Alias": "dana.lee",
"DistinguishedName": "CN=b6109718-30dc-4b59-9f83-d26767923ac9,OU=contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=EURPR01A017,DC=PROD,DC=OUTLOOK,DC=COM",
"Identity": "b6109718-30dc-4b59-9f83-d26767923ac9",
"ExternalDirectoryObjectId": "b6109718-30dc-4b59-9f83-d26767923ac9",
"PrimarySmtpAddress": "[email protected]",
"WindowsLiveID": "[email protected]",
"WindowsEmailAddress": null,
"EmailAddresses": [
"SPO:SPO_d848c685-c2a2-47eb-ba08-c80ae9e7b635@SPO_00000000-0000-0000-0000-000000000000"
],
"EmailAddressPolicyEnabled": false,
"RecipientType": "UserMailbox",
"RecipientTypeDetails": "UserMailbox",
"OrganizationalUnit": "eurpr01a017.prod.outlook.com/Microsoft Exchange Hosted Organizations/contoso.onmicrosoft.com",
"OrganizationId": "EURPR01A017.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/contoso.onmicrosoft.com - EURPR01A017.PROD.OUTLOOK.COM/ConfigurationUnits/contoso.onmicrosoft.com/Configuration",
"CustomAttribute1": "",
"CustomAttribute2": "",
"CustomAttribute3": "",
"CustomAttribute4": "",
"CustomAttribute5": "",
"ExtensionCustomAttribute1": [],
"ExtensionCustomAttribute2": [],
"ExtensionCustomAttribute3": [],
"ExtensionCustomAttribute4": [],
"ExtensionCustomAttribute5": [],
"HiddenFromAddressListsEnabled": false,
"AddressBookPolicy": null,
"WhenCreated": "2026-03-30T17:05:41+03:00",
"WhenChanged": "2026-05-29T12:51:05+03:00",
"WhenCreatedUTC": "2026-03-30T14:05:41Z",
"WhenChangedUTC": "2026-05-29T09:51:05Z",
"UserPrincipalName": null,
"SamAccountName": "$Q28HG0-DQQ0C3BO1IQJ",
"Database": "eurprd02.prod.outlook.com/e6c5a57a-97f4-4c08-ad4b-779f608c06fc",
"ServerName": "db8pr02mb5754",
"MailboxPlan": null,
"MicrosoftOnlineServicesID": null,
"UseDatabaseQuotaDefaults": false,
"IssueWarningQuota": null,
"ProhibitSendQuota": null,
"ProhibitSendReceiveQuota": null,
"RecoverableItemsQuota": null,
"RecoverableItemsWarningQuota": null,
"CalendarLoggingQuota": null,
"MaxSendSize": null,
"MaxReceiveSize": null,
"RecipientLimits": null,
"ArchiveStatus": "None",
"ArchiveGuid": "00000000-0000-0000-0000-000000000000",
"ArchiveName": null,
"ArchiveDatabase": null,
"ArchiveDomain": null,
"ArchiveQuota": null,
"ArchiveWarningQuota": null,
"ArchiveState": "None",
"AutoExpandingArchiveEnabled": null,
"LitigationHoldEnabled": false,
"LitigationHoldDuration": null,
"LitigationHoldOwner": null,
"LitigationHoldDate": null,
"RetentionHoldEnabled": null,
"StartDateForRetentionHold": null,
"EndDateForRetentionHold": null,
"RetentionPolicy": null,
"RetainDeletedItemsFor": null,
"SingleItemRecoveryEnabled": false,
"InPlaceHolds": [],
"ComplianceTagHoldApplied": null,
"DelayHoldApplied": null,
"DelayReleaseHoldApplied": null,
"ForwardingAddress": null,
"ForwardingSmtpAddress": null,
"DeliverToMailboxAndForward": false,
"GrantSendOnBehalfTo": [],
"AcceptMessagesOnlyFrom": [],
"AcceptMessagesOnlyFromDLMembers": [],
"AcceptMessagesOnlyFromSendersOrMembers": [],
"RejectMessagesFrom": [],
"RejectMessagesFromDLMembers": [],
"RejectMessagesFromSendersOrMembers": [],
"BypassModerationFromSendersOrMembers": [],
"ModerationEnabled": false,
"ModeratedBy": [],
"SendModerationNotifications": null,
"RequireSenderAuthenticationEnabled": false,
"ResourceCustom": [],
"IsResource": false,
"IsShared": false,
"IsRoomMailbox": false,
"IsLinked": false,
"IsInactiveMailbox": false,
"IsMonitoringMailbox": false,
"ResourceType": null,
"ResourceCapacity": null,
"AuthenticationPolicy": null,
"AuthenticationFlowPolicy": null,
"AccountDisabled": null,
"OABEnabled": null,
"WhenSoftDeleted": null,
"WhenMailboxCreated": "2025-11-20T14:18:11+02:00",
"ExchangeUserAccountControl": null,
"AcceptMessagesOnlyFromDLMembersWithDisplayNames": [],
"AcceptMessagesOnlyFromSendersOrMembersWithDisplayNames": [],
"AcceptMessagesOnlyFromWithDisplayNames": [],
"AddressListMembership": [
"\\Default Global Address List",
"\\Offline Global Address List",
"\\All Users",
"\\Mailboxes(VLV)",
"\\All Mailboxes(VLV)",
"\\All Recipients(VLV)"
],
"AdminDisplayVersion": null,
"AdministrativeUnits": [],
"AgentIdentityBlueprintId": null,
"AggregatedMailboxGuids": [],
"AntispamBypassEnabled": false,
"ArbitrationMailbox": null,
"ArchiveDatabaseGuid": null,
"ArchiveRelease": "",
"AuditAdmin": [],
"AuditDelegate": [],
"AuditEnabled": false,
"AuditLogAgeLimit": null,
"AuditOwner": [],
"AutoArchivingEnabled": false,
"CalendarRepairDisabled": false,
"CalendarVersionStoreDisabled": false,
"CustomAttribute10": "",
"CustomAttribute11": "",
"CustomAttribute12": "",
"CustomAttribute13": "",
"CustomAttribute14": "",
"CustomAttribute15": "",
"CustomAttribute6": "",
"CustomAttribute7": "",
"CustomAttribute8": "",
"CustomAttribute9": "",
"DataEncryptionPolicy": null,
"DatabaseGuid": null,
"DefaultAuditSet": [],
"DefaultPublicFolderMailbox": null,
"DisabledArchiveDatabase": null,
"DisabledArchiveGuid": null,
"DisabledMailboxLocations": false,
"DowngradeHighPriorityMessagesEnabled": false,
"EffectivePublicFolderMailbox": null,
"ElcProcessingDisabled": false,
"EmailAddressDisplayNames": [],
"EnforcedTimestamps": null,
"ExchangeObjectId": "f1b21db4-490f-4f92-863a-31bffe21de25",
"ExchangeSecurityDescriptor": null,
"ExternalOofOptions": null,
"ForwardingAddressWithDisplayNames": [],
"GeneratedOfflineAddressBooks": [],
"GrantSendOnBehalfToWithDisplayNames": [],
"HasPicture": false,
"HasSnackyAppData": false,
"HasSpokenName": false,
"HttpDeliveryEndpoint": null,
"HttpDeliveryScenario": null,
"ImListMigrationCompleted": false,
"ImmutableId": null,
"InactiveMailboxRetireTime": null,
"IncludeInGarbageCollection": false,
"IsAgenticUser": false,
"IsDirSynced": false,
"IsExchangeCloudManaged": false,
"IsExcludedFromServingHierarchy": false,
"IsHierarchyReady": false,
"IsHierarchySyncEnabled": false,
"IsMachineToPersonTextMessagingEnabled": false,
"IsMailboxEnabled": false,
"IsPersonToPersonTextMessagingEnabled": false,
"IsPublicFolderSystemMailbox": false,
"IsRootPublicFolderMailbox": false,
"IsSoftDeletedByDisable": false,
"IsSoftDeletedByRemove": false,
"JournalArchiveAddress": null,
"Languages": [],
"LastExchangeChangedTime": null,
"LegacyExchangeDN": null,
"LinkedMasterAccount": null,
"M365BackupState": null,
"MailTip": null,
"MailTipTranslations": [],
"MailboxContainerGuid": null,
"MailboxLocations": [],
"MailboxMoveBatchName": "",
"MailboxMoveFlags": "None",
"MailboxMoveRemoteHostName": "",
"MailboxMoveSourceMDB": null,
"MailboxMoveStatus": "None",
"MailboxMoveTargetMDB": null,
"MailboxProvisioningConstraint": null,
"MailboxProvisioningPreferences": [],
"MailboxRegion": null,
"MailboxRegionLastUpdateTime": null,
"MailboxRegionSuffix": null,
"MailboxRelease": "E15",
"ManagedFolderMailboxPolicy": null,
"MaxBlockedSenders": null,
"MaxSafeSenders": null,
"MessageCopyForSMTPClientSubmissionEnabled": false,
"MessageCopyForSendOnBehalfEnabled": false,
"MessageCopyForSentAsEnabled": false,
"MessageRecallProcessingEnabled": false,
"MessageTrackingReadStatusEnabled": false,
"NetID": null,
"NonCompliantDevices": [],
"Office": "",
"OfflineAddressBook": null,
"OrganizationalUnitRoot": "contoso.onmicrosoft.com",
"OrphanSoftDeleteTrackingTime": null,
"PersistedCapabilities": [],
"PitrCopyIntervalInSeconds": 0,
"PitrEnabled": false,
"PitrOffboardedTimestamp": null,
"PitrPaused": false,
"PitrPausedTimestamp": null,
"PitrState": null,
"PoliciesExcluded": [
"{26491cfc-9e50-4857-861b-0cb8df22b5d7}"
],
"PoliciesIncluded": [],
"ProtocolSettings": [],
"QueryBaseDN": null,
"QueryBaseDNRestrictionEnabled": false,
"RecipientSoftDeletedStatus": 0,
"RecipientThrottlingThreshold": null,
"ReconciliationId": null,
"RemoteAccountPolicy": null,
"RemoteRecipientType": null,
"ResetPasswordOnNextLogon": false,
"ResourceProvisioningOptions": [],
"RetainDeletedItemsUntilBackup": false,
"RetentionComment": null,
"RetentionUrl": null,
"RoleAssignmentPolicy": null,
"RoomMailboxAccountEnabled": null,
"RulesQuota": null,
"SCLDeleteEnabled": null,
"SCLDeleteThreshold": null,
"SCLJunkEnabled": null,
"SCLJunkThreshold": null,
"SCLQuarantineEnabled": null,
"SCLQuarantineThreshold": null,
"SCLRejectEnabled": null,
"SCLRejectThreshold": null,
"SKUAssigned": true,
"ServerLegacyDN": "/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=DB8PR02MB5754",
"SharedEmailDomainState": null,
"SharedEmailDomainStateLastModified": null,
"SharedEmailDomainTenant": null,
"SharedWithTargetSmtpAddress": null,
"SharingAnonymousIdentities": null,
"SharingPolicy": null,
"SourceAnchor": null,
"StsRefreshTokensValidFrom": null,
"ThrottlingPolicy": null,
"UMDtmfMap": [],
"UnifiedMailbox": null,
"UniqueRecipientsCountLimitLevel": null,
"UniqueUnrestrictedGroupsLimitEnabled": false,
"UsageLocation": "Romania",
"UseDatabaseRetentionDefaults": false,
"UserCertificate": [],
"UserIdentityParent": null,
"UserSMimeCertificate": [],
"WasInactiveMailbox": false,
"CalendarProcessing": null,
"Forwarding": null,
"AutoReply": null
}
]
}

Related: GET /exchange/v1.0/unifiedGroups/{key}, GET /exchange/v1.0/unifiedGroups/{key}/members, GET /exchange/v1.0/unifiedGroups/{key}/subscribers

POST /exchange/v1.0/unifiedGroups/{key}/owners/$ref

Section titled “POST /exchange/v1.0/unifiedGroups/{key}/owners/$ref”

Add an owner to the unifiedGroups at GET /unifiedGroups/{key}. Returns 204.

Backing cmdlet: Add-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
member body string yes
dryRun query bool (switch)

Sub-resource of GET /unifiedGroups/{key}/owners. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - adds one owner link via Add-UnifiedGroupLinks -LinkType Owners. Graph-style /$ref write; returns 204.

POST /exchange/v1.0/unifiedGroups/{key}/owners/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"member": "[email protected]"
}
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

DELETE /exchange/v1.0/unifiedGroups/{key}/owners/{linkId}/$ref

Section titled “DELETE /exchange/v1.0/unifiedGroups/{key}/owners/{linkId}/$ref”

Remove an owner link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204.

Backing cmdlet: Remove-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Remove an owner from a Microsoft 365 group

Section titled “Remove an owner from a Microsoft 365 group”

Sub-resource of GET /unifiedGroups/{key}/owners/{linkId}. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - removes one owner link via Remove-UnifiedGroupLinks -LinkType Owners. The {linkId} is the recipient identity (UPN / alias). Returns 204.

DELETE /exchange/v1.0/unifiedGroups/{key}/owners/{linkId}/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

POST /exchange/v1.0/unifiedGroups/{key}/restore

Section titled “POST /exchange/v1.0/unifiedGroups/{key}/restore”

POST /unifiedGroups/{key}/restore - recover a soft-deleted Microsoft 365 Group (within the 30-day window) via Undo-SoftDeletedUnifiedGroup. {key} is the soft-deleted group identity - list candidates with GET /unifiedGroups?includeSoftDeletedGroups=true. All group content is restored. 204 on success; ?dryRun=true previews (-WhatIf).

Backing cmdlet: Undo-SoftDeletedUnifiedGroup. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Restore a soft-deleted Microsoft 365 group

Section titled “Restore a soft-deleted Microsoft 365 group”

Sub-resource of the group at GET /unifiedGroups/{key} - bound action that recovers a soft-deleted Microsoft 365 group (within the 30-day window) via Undo-SoftDeletedUnifiedGroup. {key} is the soft-deleted group identity; list candidates with GET /unifiedGroups?includeSoftDeletedGroups=true. All group content is restored. Returns 204. Pass ?dryRun=true to preview (-WhatIf).

POST /exchange/v1.0/unifiedGroups/{key}/restore HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 204 No Content

Notes: Live-verified full sacrificial cycle 2026-05-29: created an M365 group (201) → deleted it (204, soft-delete) → confirmed it surfaced under ?includeSoftDeletedGroups=true → POST …/restore returned 204 → the group reappeared in the live list → cleaned up. The soft-deleted key used was the group’s Guid.

Related: GET /exchange/v1.0/unifiedGroups, DELETE /exchange/v1.0/unifiedGroups/{key}

GET /exchange/v1.0/unifiedGroups/{key}/subscribers

Section titled “GET /exchange/v1.0/unifiedGroups/{key}/subscribers”

Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - link membership (members/owners/subscribers).

Backing cmdlet: Get-UnifiedGroupLinks. Role: Group.Read (Community).

Parameter In Type Required Description
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-UnifiedGroupLinks; prevents silent truncation in large tenants.

Sub-resource of the M365 group at GET /unifiedGroups/{key} - returns the subscriber link collection (recipients who follow the group in Outlook and receive its conversations in their inbox). Backed by Get-UnifiedGroupLinks -LinkType Subscribers.

GET /exchange/v1.0/unifiedGroups/{key}/subscribers HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#recipients",
"value": []
}

Related: GET /exchange/v1.0/unifiedGroups/{key}, GET /exchange/v1.0/unifiedGroups/{key}/members, GET /exchange/v1.0/unifiedGroups/{key}/owners, POST /exchange/v1.0/unifiedGroups/{key}/subscribers/$ref, DELETE /exchange/v1.0/unifiedGroups/{key}/subscribers/{linkId}/$ref

POST /exchange/v1.0/unifiedGroups/{key}/subscribers/$ref

Section titled “POST /exchange/v1.0/unifiedGroups/{key}/subscribers/$ref”

Add a subscriber to the unifiedGroups at GET /unifiedGroups/{key}. Returns 204.

Backing cmdlet: Add-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
member body string yes
dryRun query bool (switch)

Sub-resource of GET /unifiedGroups/{key}/subscribers. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - adds one subscriber link via Add-UnifiedGroupLinks -LinkType Subscribers. Graph-style /$ref write; returns 204.

POST /exchange/v1.0/unifiedGroups/{key}/subscribers/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"member": "[email protected]"
}
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

DELETE /exchange/v1.0/unifiedGroups/{key}/subscribers/{linkId}/$ref

Section titled “DELETE /exchange/v1.0/unifiedGroups/{key}/subscribers/{linkId}/$ref”

Remove a subscriber link from the unifiedGroups at GET /unifiedGroups/{key}. Returns 204.

Backing cmdlet: Remove-UnifiedGroupLinks. Role: Group.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Remove a subscriber from a Microsoft 365 group

Section titled “Remove a subscriber from a Microsoft 365 group”

Sub-resource of GET /unifiedGroups/{key}/subscribers/{linkId}. Sub-resource of the unifiedGroups at GET /unifiedGroups/{key} - removes one subscriber link via Remove-UnifiedGroupLinks -LinkType Subscribers. The {linkId} is the recipient identity (UPN / alias). Returns 204.

DELETE /exchange/v1.0/unifiedGroups/{key}/subscribers/{linkId}/$ref HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/unifiedGroups

?dryRun=true previews of any write stay on Community.