4 Ways to Check License Count in Microsoft 365

Discover four ways to check license counts in Microsoft 365 so you can verify totals and choose a method that fits your workflow
The author of the article Chris Shuptrine
Aug 2025
4 Ways to Check License Count in Microsoft 365

Need a quick way to check Microsoft 365 license counts without second‑guessing totals? Whether you’re reconciling invoices, auditing assignments, or planning renewals, the right view saves time and avoids surprise overages.

This guide covers four options, Microsoft 365 admin center, Entra ID (Azure AD), PowerShell, and Microsoft Graph, to verify assigned and available SKUs and confirm subscription totals. Still, each method fits different workflows, so you’ll know what to use when.

Table of Contents

Use Microsoft 365’s UI

Here, you’ll use the Microsoft 365 admin center to see how many licenses you own, how many are assigned, and how many are still open. These steps follow Microsoft’s “View and manage licenses in the Microsoft 365 admin center” guidance.

Open the Microsoft 365 admin center

Sign in at admin.microsoft.com with an account that can view licenses. Global admin, Billing admin, or License admin roles work best.

Go to Billing > Licenses

In the left navigation, select Billing, then Licenses. The Licenses page lists every product (SKU) your organization has.

Read your license counts

On the Licenses page, look across each product row. You’ll see columns for:

  • Total licenses: the number you’ve purchased for that product.
  • Assigned: how many are now given to users.
  • Available: how many are still unassigned.

If you need to confirm the math:

Available should equal Total minus Assigned.

Drill into a product for more detail

Click the product name to open its details. Here you can:

  • View a quick summary of assigned and available licenses.
  • Select Licensed users to see who holds a license for that product.

If you don’t see the Licenses page

You might not have the right permissions or your view is limited by role. Ask a Global admin, Billing admin, or License admin to check, or have them grant you the proper role.

Use Torii

Instead of checking Microsoft 365 directly, you can use Torii, a SaaS Management Platform, to see your Microsoft 365 license totals. SMPs centralize all your SaaS subscriptions in one place, giving you a single source of truth across your tools.

To view license counts for Microsoft 365 from Torii, do the following:

1. Sign up for Torii

Contact Torii, and request a free two-week proof-of-concept.

2. Connect your Microsoft 365 account to Torii

After your account is active, link Microsoft 365 to Torii (assuming you already have an account). Here are the instructions for the Microsoft 365 integration.

3. Search for Microsoft 365 within Torii

Use the search bar at the top of the Torii dashboard to find Microsoft 365. Open the Microsoft 365 page to view details such as total licenses, spend, upcoming renewal date, and more.

torii and microsoft 365

Or, chat with Eko

Torii’s AI assistant, Eko, also lets you retrieve Microsoft 365 details inside Torii using natural-language chat. Click the Eko icon in the bottom-right corner of the dashboard, then ask it to pull Microsoft 365 information. Eko will return the relevant data right in the chat window.

using eko to find license count in microsoft 365

Use Microsoft 365’s API

Here, you’ll call Microsoft Graph to list your tenant’s subscribed SKUs and compute total, assigned, and available seats. This follows Microsoft Graph’s “List subscribedSkus” guidance.

Set permissions and get an access token

You need an access token for Microsoft Graph. The Microsoft identity platform’s OAuth 2.0 client credentials flow works well for server-to-server jobs.

  • Required Microsoft Graph permissions:
    • Application: Organization.Read.All or Directory.Read.All
    • Delegated: Organization.Read.All or Directory.Read.All

Example curl to get a token with client credentials is:

TENANT_ID=""
CLIENT_ID=""
CLIENT_SECRET=""
ACCESS_TOKEN=$(curl -s -X POST "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-D "client_id=$CLIENT_ID&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \
jq -r '.access_token')

If you’re using delegated flow, sign in a user and request the same Graph scopes, then capture the issued access token.

List subscribed SKUs and see seat counts

Call the Graph endpoint that returns your products and seat numbers. The response includes prepaidUnits and consumedUnits, which you’ll use to compute what’s available.

Example curl is:

curl -s -X GET "https://graph.microsoft.com/v1.0/subscribedSkus" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"

A trimmed sample response looks like:

{
    "value": [
        {
            "skuId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
            "skuPartNumber": "ENTERPRISEPACK",
            "capabilityStatus": "Enabled",
            "consumedUnits": 125,
            "prepaidUnits": {
                "enabled": 150,
                "suspended": 0,
                "warning": 0
            },
            "servicePlans": [
                { "servicePlanId": ".", "servicePlanName": "EXCHANGE_S_FOUNDATION", "provisioningStatus": "Success" }
            ]
        }
    ]
}
  • Key fields:
    • skuPartNumber: product code, for example ENTERPRISEPACK
    • prepaidUnits.enabled: total purchased and active seats
    • consumedUnits: seats assigned to users

Calculate available seats per SKU

Available seats are simply enabled minus consumed. You can compute that in your client code or with a quick jq filter.

Example jq to summarize:

curl -s -X GET "https://graph.microsoft.com/v1.0/subscribedSkus" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
jq -r '
.value[]
{
    product: .skuPartNumber,
    total: (.prepaidUnits.enabled // 0),
    assigned: (.consumedUnits // 0),
    available: ((.prepaidUnits.enabled // 0) - (.consumedUnits // 0))
}'

This gives you a clean list of products with total, assigned, and available counts. If prepaidUnits.warning or prepaidUnits.suspended are nonzero, those represent seats not now usable. Stick to prepaidUnits.enabled for the active total.

(Optional) Reconcile assignments by user

If you need to audit who holds which licenses, read users and inspect assignedLicenses. This uses Microsoft Graph’s Users API.

Example curl is:

curl -s -X GET "https://graph.microsoft.com/v1.0/users?$select=id,userPrincipalName,assignedLicenses&$top=999" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "ConsistencyLevel: eventual"

You can then group by assignedLicenses[].skuId in your code to count holders of a specific product. This is helpful if your consumedUnits don’t match expectations and you need to track down over-assignment.

What to remember

  • The authoritative counts come from subscribedSkus in Microsoft Graph.
  • Fields to use: prepaidUnits.enabled for total active seats, consumedUnits for assigned seats, and enabled minus consumed for available seats.
  • The relevant Microsoft docs are “List subscribedSkus” in Microsoft Graph and the Microsoft identity platform OAuth 2.0 flows for obtaining tokens.

Use Claude (via MCP)

You can also retrieve this data directly from Claude using the Model Context Protocol (MCP). Claude is Anthropic’s AI assistant and a competitor to ChatGPT.

To pull Microsoft 365 license counts directly in Claude, follow these steps:

1. Set up Torii

Follow the above Torii steps to connect your Microsoft 365 account to Torii.

In your Torii settings, generate a new API key.

2. Set up MCP in Claude

Here are the Torii MCP instructions. There is also a blog post on the topic.

Install the Claude Desktop app and add the following to your claude_desktop_config.json file:

{
    "mcpServers": {
        "Torii MCP": {
            "command": "env",
            "args": [
                "TORII_API_KEY=YOUR_API_KEY",
                "npx",
                "@toriihq/torii-mcp"
            ]
        }
    }
}

Create this API key from the Settings tab in Torii.

3. Chat with Claude

Once configured, you can interact with your Torii environment right inside Claude. For example, ask it to review your Microsoft 365 tenant and provide license counts, total spend, upcoming renewal dates, and other relevant details.

torii mcp with microsoft 365

Frequently Asked Questions

Use four options: Microsoft 365 admin center (Billing > Licenses), Torii SaaS management (connect M365 and use Eko chat), Microsoft Graph subscribedSkus API, or Claude via Torii MCP. Choose based on role, automation needs, and auditing requirements.

Global admin, Billing admin, and License admin can view license counts in the Microsoft 365 admin center. If you lack access, request one of these roles from your tenant's administrator to see Billing > Licenses and product-level assigned, total, and available counts.

Call the subscribedSkus endpoint and use prepaidUnits.enabled minus consumedUnits to compute available seats per SKU. Prefer prepaidUnits.enabled for active totals; account for prepaidUnits.warning or suspended if nonzero since those reduce usable seats.

Yes. Use Microsoft Graph to list users ($select=id,userPrincipalName,assignedLicenses&$top=999), include ConsistencyLevel when querying, then group assignedLicenses[].skuId to count holders. This approach reconciles consumedUnits with actual assignments and helps locate over‑assigned or unexpected licenses.

For server-to-server use the OAuth 2.0 client credentials flow and an app with Organization.Read.All or Directory.Read.All application permissions. Delegated scenarios also need Organization.Read.All or Directory.Read.All. Then request a token and call the Graph subscribedSkus endpoint.

Torii centralizes SaaS subscriptions; connect Microsoft 365 to see totals, spend, and renewal dates in one dashboard. Torii's Eko AI lets you ask natural-language questions to retrieve license counts and details instantly, speeding audits and reducing manual admin center checks.