Restrict app execution API
Applies to:
Want to experience Microsoft Defender for Endpoint? Sign up for a free trial.
Note
If you are a US Government customer, please use the URIs listed in Microsoft Defender for Endpoint for US Government customers.
Tip
For better performance, you can use server closer to your geo location:
- us.api.security.microsoft.com
- eu.api.security.microsoft.com
- uk.api.security.microsoft.com
- au.api.security.microsoft.com
- swa.api.security.microsoft.com
- ina.api.security.microsoft.com
Restrict execution of all applications on the device except a predefined set.
- Rate limitations for this API are 100 calls per minute and 1500 calls per hour.
Note
This page focuses on performing a machine action via API. See take response actions on a machine for more information about response actions functionality via Microsoft Defender for Endpoint.
Important
- This action is available for devices on Windows 10, version 1709 or later, and on Windows 11.
- This feature is available if your organization uses Microsoft Defender Antivirus.
- This action needs to meet the Windows Defender Application Control code integrity policy formats and signing requirements. For more information, see Code integrity policy formats and signing.
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Use Microsoft Defender for Endpoint APIs
Permission type | Permission | Permission display name |
---|---|---|
Application | Machine.RestrictExecution | 'Restrict code execution' |
Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' |
Note
When obtaining a token using user credentials:
- The user needs to have at least the following role permission: 'Active remediation actions' (See Create and manage roles for more information)
- The user needs to have access to the device, based on device group settings (See Create and manage device groups for more information)
Device group creation is supported in Defender for Endpoint Plan 1 and Plan 2.
POST https://api.securitycenter.microsoft.com/api/machines/{id}/restrictCodeExecution
Name | Type | Description |
---|---|---|
Authorization | String | Bearer {token}. Required. |
Content-Type | string | application/json. Required. |
In the request body, supply a JSON object with the following parameters:
Parameter | Type | Description |
---|---|---|
Comment | String | Comment to associate with the action. Required. |
If successful, this method returns 201 - Created response code and Machine Action in the response body.
If you send multiple API calls to restrict app execution for the same device, it returns "pending machine action" or HTTP 400 with the message "Action is already in progress".
Here is an example of the request.
POST https://api.securitycenter.microsoft.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/restrictCodeExecution
{
"Comment": "Restrict code execution due to alert 1234"
}
- To remove code execution restriction from a device, see Remove app restriction.
Tip
Do you want to learn more? Engage with the Microsoft Security community in our Tech Community: Microsoft Defender for Endpoint Tech Community.