Delete open extension

Namespace: microsoft.graph

Delete an open extension (openTypeExtension object) from the specified instance of a resource.

For the list of resources that support open extensions, see the table in the Permissions section.

This API is available in the following national cloud deployments.

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


Depending on the resource you're deleting the extension from and the permission type (delegated or application) requested, the permission specified in the following table is the least privileged required to call this API. To learn more, including taking caution before choosing more privileged permissions, search for the following permissions in Permissions.

Supported resource Delegated (work or school account) Delegated (personal Microsoft account) Application
device Directory.AccessAsUser.All Not supported Device.ReadWrite.All
event Calendars.ReadWrite Calendars.ReadWrite Calendars.ReadWrite
group Group.ReadWrite.All Not supported Group.ReadWrite.All
group event Group.ReadWrite.All Not supported Not supported
group post Group.ReadWrite.All Not supported Group.ReadWrite.All
message Mail.ReadWrite Mail.ReadWrite Mail.ReadWrite
organization Organization.ReadWrite.All Not supported Organization.ReadWrite.All
personal contact Contacts.ReadWrite Contacts.ReadWrite Contacts.ReadWrite
todoTask Tasks.ReadWrite Tasks.ReadWrite Tasks.ReadWrite.All
todoTasklist Tasks.ReadWrite Tasks.ReadWrite Tasks.ReadWrite.All
user User.ReadWrite User.ReadWrite User.ReadWrite.All

HTTP request

In the request, identify the resource instance, use the extensions navigation property of that instance to identify the extension, and do a DELETE on that extension instance.

DELETE /devices/{Id}/extensions/{extensionId}
DELETE /users/{id|userPrincipalName}/events/{id}/extensions/{extensionId}
DELETE /groups/{id}/extensions/{extensionId}
DELETE /groups/{id}/events/{id}/extensions/{extensionId}
DELETE /groups/{id}/threads/{id}/posts/{id}/extensions/{extensionId}
DELETE /users/{id|userPrincipalName}/messages/{id}/extensions/{extensionId}
DELETE /organization/{Id}/extensions/{extensionId}
DELETE /users/{id|userPrincipalName}/contacts/{id}/extensions/{extensionId}
DELETE /users/{id|userPrincipalName}/extensions/{extensionId}
DELETE /me/todo/lists/{todoTaskListId}/extensions/{extensionId}
DELETE /me/todo/lists/{todoTaskListId}/tasks/{taskId}/extensions/{extensionId}
DELETE /users/{userId}/todo/lists/{todoTaskListId}/extensions/{extensionId}
DELETE /users/{userId}/todo/lists/{todoTaskListId}/tasks/{taskId}/extensions/{extensionId}
DELETE /users/{id|userPrincipalName}/extensions/{extensionId}
DELETE /me/extensions/{extensionId}

Note: The previous syntax shows some common ways to identify a resource instance, in order to delete an extension from it. All other syntax that allows you to identify these resource instances supports deleting open extensions from them in a similar way.

Path parameters

Parameter Type Description
extensionId String This can be an extension name that is a unique text identifier for the extension, or a fully qualified name which concatenates the extension type and unique text identifier. The fully qualified name is returned in the id property when you create the extension. Required.
id String A unique identifier for an instance in the corresponding collection. Required.

Request headers

Name Value
Authorization Bearer {token}. Required. Learn more about authentication and authorization.

Request body

Don't supply a request body for this method.


If successful, this method returns 204 No Content response code. It doesn't return anything in the response body.



The first example references an extension by its name and deletes the extension in the specified message.


The second example deletes an extension in the specified group event.



The following example shows the response.

HTTP/1.1 204 No Content