G Suite Unassign License Script
Play Video

Watch the video to understand how the script works
(then copy the script below)

Reference Script to unassign G Suite license from your users

					function removeLicense() {

    // You can also tweak the script to rather run it based on user suspention staus (by checking user.suspended property from Directory API) instead of OrgUnit membership

    // Please be careful before running this script, if run, it'll remove the license from your G Suite user.

    // I just created this for a quick reference, so feel free to polish it as required.

    // You would need to provide G Suite product name and SKU id which is currently assigned to suspended user or you can first make a get call to read license information for the user and then make delete call with it.
    // You can get this information from License Manager API documentation here 
    // https://developers.google.com/admin-sdk/directory/v1/reference/users
    // I will be using G Suite Enterprise Product Name and SKU ID as my suspended users are assigned G Suite enterprise license


    // Step 1. Get All users from suspended_users Organization Unit, Please change the org unit path to yours.

    var productId = "Google-Apps"
    var skuId = 1010020020

    var pageToken;
    do {
        var suspendedOu = AdminDirectory.Users.list({
            customer: "my_customer",
            query: 'orgUnitPath=/suspended_users', // change OU path here as required
            maxResults: 100,
            pageToken: pageToken

        var suspendedOuUsers = suspendedOu.users

        // Step 2. (Optional but recommended) Make sure to only suspend users from this OU who are in suspended state by checking their suspension status

        for (i = 0; i < suspendedOuUsers.length; i++) {

            if (suspendedOuUsers[i].suspended == true) {
                var suspendedUserEmail = suspendedOuUsers[i].primaryEmail

                // Step 3. Delete the license from users in our above defined suspended OU who are also in suspended user state.

                try {
                    var licenseRemovalStatus = AdminLicenseManager.LicenseAssignments.remove(productId, skuId, suspendedUserEmail)
                } catch (e) {


        pageToken = suspendedOu.nextPageToken;

        // Run the script till the time we have next set of users available as per pakeToken

    } while (pageToken);

You can learn more about Google License Manager API at https://developers.google.com/admin-sdk/licensing/v1/reference

Scroll to Top