3 Ways to Unassign Licenses from Microsoft 365 Users

Unassigning Microsoft 365 licenses sounds simple until you face different scenarios: a single leaver, a team reshuffle, or a tenant-wide cleanup. Getting it wrong can disrupt access or waste spend.
This guide shows three reliable ways to remove licenses: the Microsoft 365 admin center for one-offs, PowerShell for bulk updates, and group-based licensing in Entra ID for policy-driven control. You’ll learn when to use each, what it changes, and how to avoid common pitfalls.
Table of Contents
Use Microsoft 365’s UI
Here, you’ll use the Microsoft 365 admin center UI to remove a product license from one or more users.
Before you start
- Make sure your account has one of these roles:
- Global admin
- License admin
- User admin
- When you remove a license, the user loses access to the services in that product right away. Microsoft’s docs note that service data and retention can differ by app, so review any data retention needs first.
Open the admin center
Go to admin.microsoft.com and sign in with your admin account.
Unassign a license from one user
- Go to Users > Active users.
- Select the user’s name to open their details.
- Open the Licenses and apps tab.
- Turn off the license you want to remove:
- Either switch the product license toggle to Off
- Or clear the checkbox next to the product name
- Select Save changes.
Tip: Microsoft’s documentation calls this the Licenses and apps page in the user’s profile. You remove a license by turning off the product and saving.
Unassign licenses from multiple users at once
- Go to Users > Active users.
- Check the boxes for all the users you want to update.
- Select Manage product licenses in the toolbar.
- In the panel, adjust licenses:
- Turn Off the specific product(s) you want to remove for the selected users
- If offered, choose to replace current assignments or remove them, then proceed
- Select Save changes, then Done.
This follows the bulk assignment wizard described in Microsoft’s docs. It lets you update many users without opening each profile.
Unassign from a product’s page (another UI path)
- Go to Billing > Licenses. In some tenants this appears as Billing > Your products.
- Select the product name.
- Open Licensed users.
- Select the users to remove from this product.
- Choose Unassign licenses, then confirm and Save.
Microsoft’s documentation shows both the user-centric path (Active users) and the product-centric path (Billing > Licenses). Use whichever fits your workflow.
Confirm it worked
- Go back to the user’s Licenses and apps page to confirm the product is Off.
- Or check Billing > Licenses to see the Available licenses count increase for that product.
Still need to keep some services for compliance or hold? Microsoft’s docs recommend reviewing retention policies before removing certain licenses.
Use Torii
Instead of going into Microsoft 365 directly, you can leverage Torii, a SaaS Management Platform, to unassign license in Microsoft 365. SMPs give you a single place to manage SaaS apps and integrations, making it simple to programmatically onboard/offboard users, review subscription information, and more.
Unlike doing it manually in Microsoft 365, Torii allows you to automate the task so it runs automatically when a trigger occurs-such as a new hire, employee departure, contract renewal, and similar events. This can save time when the process needs to be repeated often.
To unassign license in Microsoft 365 directly from Torii, use the steps below:
1. Sign up for Torii
Contact Torii, and ask for your free two-week proof-of-concept.
2. Connect your Microsoft 365 account to Torii
Once your account is live, connect Microsoft 365 to Torii (assuming you already have an account). Here are the instructions for the Microsoft 365 integration.

3. Create a Torii workflow for Microsoft 365
Within Torii, you can create automated workflows to unassign license in Microsoft 365. You need to go to the Workflows tab, set up a trigger, and then set up an action that will unassign license in Microsoft 365. From there, any time the trigger is met, Microsoft 365 will be updated.

Use Microsoft 365’s API
Here, you’ll use Microsoft Graph to remove a product license from a user. The call uses the assignLicense endpoint with removeLicenses.
Step 1: Get the right permissions and an access token
You need an access token for Microsoft Graph v1.0 with one of these scopes:
- Required Graph permissions:
- Delegated: User.ReadWrite.All or Directory.AccessAsUser.All
- Application: User.ReadWrite.All or Directory.ReadWrite.All
Your requests must include a valid token in the Authorization header:
Authorization: Bearer {token}
Microsoft Graph docs to reference: Assign license API, Users API.
Step 2: Identify the user you will update
You can target the user by object id or UPN. Fetch the id if you do not have it yet.
Example curl is:
curl -s -X GET \
-H "Authorization: Bearer {token}" \
-H "ConsistencyLevel: eventual" \
"https://graph.microsoft.com/v1.0/users/{userPrincipalName}?$select=id,displayName,userPrincipalName"
Save the id from the response.
Relevant docs: Get user.
Step 3: Find the SKU ID you want to remove
You must pass the SKU GUID for the license to remove.
Option A. Read licenses now on the user:
curl -s -X GET \
-H "Authorization: Bearer {token}" \
"https://graph.microsoft.com/v1.0/users/{user-id}/licenseDetails"
Option B. List all product SKUs in your tenant to match names to GUIDs:
curl -s -X GET \
-H "Authorization: Bearer {token}" \
"https://graph.microsoft.com/v1.0/subscribedSkus"
From either response, copy the skuId value of the product you want to remove.
Relevant docs: List licenseDetails, List subscribedSkus.
Step 4: Unassign the license using assignLicense
Call assignLicense with removeLicenses set to the SKU GUID. Leave addLicenses empty.
Example curl is:
curl -s -X POST \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-D '{
"addLicenses": [],
"removeLicenses": ["{sku-guid-to-remove}"]
}' \
"https://graph.microsoft.com/v1.0/users/{user-id}/assignLicense"
- You can remove multiple SKUs by adding more GUIDs to removeLicenses.
- The response returns the updated user object.
Relevant docs: Assign license.
Step 5: Verify the license was removed
Read licenseDetails again and confirm the skuId no longer appears.
Example curl is:
curl -s -X GET \
-H "Authorization: Bearer {token}" \
"https://graph.microsoft.com/v1.0/users/{user-id}/licenseDetails"
Step 6: Optional, unassign the same SKU for many users with a batch request
If you need to remove a license across many users, send a single $batch request with multiple assignLicense calls.
Example $batch body is:
curl -s -X POST \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-D '{
"requests": [
{
"id": "1",
"method": "POST",
"url": "/v1.0/users/{user-id-1}/assignLicense",
"headers": { "Content-Type": "application/json" },
"body": { "addLicenses": [], "removeLicenses": ["{sku-guid}"] }
},
{
"id": "2",
"method": "POST",
"url": "/v1.0/users/{user-id-2}/assignLicense",
"headers": { "Content-Type": "application/json" },
"body": { "addLicenses": [], "removeLicenses": ["{sku-guid}"] }
}
]
}' \
"https://graph.microsoft.com/beta/$batch"
Notes:
- For production, prefer v1.0. Use beta only if you need beta-only behavior and can accept change.
- Handle 429s and 5xx with retries. Graph throttles bursty calls.
Docs to reference: Batch endpoint, Assign license, Users, licenseDetails, subscribedSkus.
Frequently Asked Questions
You have three reliable options to unassign Microsoft 365 licenses: use the Microsoft 365 admin center UI for one-offs or bulk via Active users/Billing; use Microsoft Graph or PowerShell for scripted bulk changes; or use group-based licensing in Entra ID or an SMP like Torii for automation.
To unassign licenses you need one of these roles: Global administrator, License administrator, or User administrator. Remember removal revokes access immediately; review application-specific data retention and compliance holds before removing licenses to avoid accidental data loss or compliance breaches.
After removal, confirm the product toggle shows Off on the user's Licenses and apps page or check Billing > Licenses for increased Available count. For API changes, call users/{id}/licenseDetails and ensure the SKU GUID no longer appears in the response.
Use the admin center for single or small updates and quick bulk edits via Active users. Use Microsoft Graph or PowerShell for scripted or large-scale bulk changes. Use Torii or Entra ID group-based licensing when you need automated workflows, policy-driven control, or integration with HR systems.
Call the assignLicense endpoint with addLicenses:[] and removeLicenses:[{skuId}] for each user. For many users, send a $batch with multiple assignLicense calls. Authenticate with a Graph token, prefer v1.0, and implement retries to handle 429/5xx throttling.
Avoid accidental data loss or compliance violations: removing a license immediately revokes services and retention varies by app. Confirm SKU GUIDs before calls, ensure you have correct admin scope, test on a small group, and verify results after changes.