Every version SharePoint Online keeps for a file or list item carries its own set of metadata, separate from the current-version fields most admins are used to querying. This reference lists what's actually stored per version, where it's exposed in the UI and API, and what does or doesn't carry a snapshot value.
What Is Version-Level Metadata?
When SharePoint creates a new version of a file, it doesn't just store a new binary. It stores a full metadata snapshot alongside it: who made the change, when, what version label it received, and (for most custom columns) what value each field held at that moment. This is why opening an old version of a file can show a different value in a custom column than the current version displays, even though the column definition hasn't changed.
Core Version Metadata Fields
| Field | Internal name / API | What it stores |
|---|---|---|
| Version Number | VersionLabel |
Major.Minor label, e.g. 3.0 for a published major version or 3.2 for a minor draft. |
| Modified | Modified (per version) |
Timestamp the version was saved. This is version-specific, distinct from the item's current Modified field. |
| Modified By | Editor |
The user account that created this specific version, which may differ from the file's overall Author field. |
| Size | Size (CSOM FileVersion.Size) |
Storage size of that version's content, in bytes. |
| Check-in Comment | CheckInComment |
Optional free-text comment entered at check-in. Empty unless the library requires check-out and the user filled it in. |
| Is Current Version | IsCurrentVersion |
Boolean flag marking which version in the list is the current, live copy. |
| Custom column values | Column internal name | Snapshot of most custom column values at save time. Some field types are exceptions; see below. |
What Does Not Get a Per-Version Snapshot
Not every field behaves like a version snapshot. A few important exceptions:
- Managed metadata (term store) columns store the term reference per version, but if the term itself is renamed or deleted in the term store later, old versions display the updated or missing term label rather than the historical one, since the reference is resolved at view time.
- Lookup columns pointing to another list follow the same pattern: the version stores the item ID reference, and the displayed value resolves against whatever that lookup item currently contains, not what it contained when the version was saved.
- Permissions and sharing links are never versioned. They apply to the current item regardless of which version is being viewed.
- Workflow status and approval status reflect current state, not a per-version snapshot, in most standard configurations.
Where to Find Version Metadata
| Location | What you can see |
|---|---|
| Version History panel (UI) | Version number, modified date, modified by, size, and check-in comment for each version in a scrollable list. |
CSOM File.Versions / ListItem.Versions |
Full programmatic access to every version-level field listed above, including custom column snapshots. |
REST API _api/web/lists/getbytitle('Name')/items(id)/versions |
Same data as CSOM, returned as JSON. Requires pagination for items with large version counts. |
PnP PowerShell Get-PnPFileVersion |
Version list for a specific file, useful for scripted audits of version counts and ages. |
Why This Matters for Migration and Version Trimming
Version metadata fidelity is one of the more overlooked details of a SharePoint migration. A migration tool that copies only the current version discards the entire audit trail of who changed what and when, which matters for regulated content where version-level accountability is a compliance requirement, not a nice-to-have. Before deciding to trim or drop version history ahead of a migration, review the version history storage cost breakdown to weigh the storage savings against the audit trail you'd be discarding.
ShareMaster's Space Master Version Trimmer reports version counts and per-version metadata before any deletion, so an admin can review what a trim operation would discard before committing to it, rather than finding out after the fact that a compliance-relevant comment field was removed along with the version.
Try ShareMaster free for 14 days