Inactive SharePoint Sites (90 days)
The question it answers: Which SharePoint sites have had no change by a user in the last 90 days?
Because of technical limitations on the Microsoft side this report can take a while!
At a glance
Section titled “At a glance”| Where in the app | SharePoint Online › Sites › Inactive Sites |
| Workload | SharePoint Online |
| Kind | Table |
| Data | Read from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report. |
| Licence | No extra licence needed. |
| Report id (API and MCP) | sharepoint.sites.inactive |
Columns
Section titled “Columns”| Column | Key | Type |
|---|---|---|
| Title | Title | Text |
| Url | Url | Text |
| Storage Used (GB) | StorageUsageGb | Text |
| Storage Quota (GB) | StorageQuotaGb | Text |
| Last Item Modified by a User | LastItemUserModifiedDate | DateTime |
| Last Item Modified | LastItemModifiedDate | DateTime |
| Last Content Modified | LastContentModifiedDate | DateTime |
| Check Error | ScanError | Text |
What it needs
Section titled “What it needs”Licence: No extra licence needed.
Application permissions on the IntensiveReports app registration (all permissions):
| Permission | API | What it allows | Note |
|---|---|---|---|
Sites.FullControl.All | Office 365 SharePoint Online | Have full control of all site collections | certificate PnP |
Data sources it reads
PowerShell (PnP): Get-PnPTenantSite -DetailedPowerShell (PnP): Connect-PnPOnline + Get-PnPWeb -Includes LastItemModifiedDate, LastItemUserModifiedDate (one call per site)
Through the API and MCP
Section titled “Through the API and MCP”GET /ir-api/v1/reports/sharepoint.sites.inactive?size=100An AI assistant reads it with the MCP tool get_report and the id sharepoint.sites.inactive. The client needs the Read grant for SharePoint Online. See Using the API.