Skip to content

SharePoint Version-history Storage

The question it answers: How much storage does version history use per site, and which sites have high or unlimited version limits?

Every file save keeps a version. With a high or unlimited version limit and no expiry, old versions can consume a large share of a site’s storage - and extra SharePoint storage is bought per GB. This scan shows the tenant policy and the largest sites’ libraries that keep many versions.

Where in the appSharePoint Online › SharePoint Operations & Legacy › Version-history Storage
WorkloadSharePoint Online
KindFindings list · dashboard tile
DataA scan: it runs only when someone presses Run scan (or calls the API’s scan action) and can take minutes. The last result is kept until the next scan. It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report.
LicenceNo extra licence needed.
Report id (API and MCP)sharepoint.operations.version-storage
ColumnKeyType
SeveritySeverityStatus
ScopeCategoryText
SiteSubjectLink
CheckSettingText
Version policyValueText
FindingFindingText
URLDetailText
DateWhenDate
Site storage (GB)NumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: No extra licence needed.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
Sites.FullControl.AllOffice 365 SharePoint OnlineHave full control of all site collectionscertificate PnP
Data sources it reads
  • Get-PnPTenant
  • Get-PnPTenantSite
  • Get-PnPSiteVersionPolicy (per site)
  • Get-PnPList (per site)
GET /ir-api/v1/reports/sharepoint.operations.version-storage?size=100
POST /ir-api/v1/reports/sharepoint.operations.version-storage/scan

An AI assistant reads it with the MCP tool get_report and the id sharepoint.operations.version-storage. The client needs the Run scan grant for SharePoint Online. See Using the API.