AnalyticsSummaryDto
| Field | Required | Description |
|---|---|---|
duplicateReferences | Yes | Items sharing an original file with another item in this selection |
externalLogicalBytes | Yes | Originals in external libraries, usually outside the library volume |
externalPhysicalBytes | Yes | Bytes |
files | Yes | Original files, Live Photo motion parts included |
items | Yes | Photos and videos, Trash included, Locked media and Live Photo motion parts excluded |
logicalBytes | Yes | Every original reference, before physical deduplication |
photos | Yes | integer |
physicalBytes | Yes | Original files, each shared file counted once within this selection |
raw | Yes | RAW photos; a subset of photos |
savedBytes | Yes | logicalBytes minus physicalBytes of this same selection |
unmeasuredFiles | Yes | Original files whose size has not been read; excluded from byte totals |
uploadedLogicalBytes | Yes | Bytes |
uploadedPhysicalBytes | Yes | Bytes |
videos | Yes | integer |
Complete definition
required lists fields that must be present. nullable allows a null value; it does not make the field optional. Response enums retain exact wire values for compatibility.
{
"properties": {
"duplicateReferences": {
"description": "Items sharing an original file with another item in this selection",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"externalLogicalBytes": {
"description": "Originals in external libraries, usually outside the library volume",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"externalPhysicalBytes": {
"description": "Bytes",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"files": {
"description": "Original files, Live Photo motion parts included",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"items": {
"description": "Photos and videos, Trash included, Locked media and Live Photo motion parts excluded",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"logicalBytes": {
"description": "Every original reference, before physical deduplication",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"photos": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"physicalBytes": {
"description": "Original files, each shared file counted once within this selection",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"raw": {
"description": "RAW photos; a subset of photos",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"savedBytes": {
"description": "logicalBytes minus physicalBytes of this same selection",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unmeasuredFiles": {
"description": "Original files whose size has not been read; excluded from byte totals",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"uploadedLogicalBytes": {
"description": "Bytes",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"uploadedPhysicalBytes": {
"description": "Bytes",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"videos": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"duplicateReferences",
"externalLogicalBytes",
"externalPhysicalBytes",
"files",
"items",
"logicalBytes",
"photos",
"physicalBytes",
"raw",
"savedBytes",
"unmeasuredFiles",
"uploadedLogicalBytes",
"uploadedPhysicalBytes",
"videos"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.