AnalyticsReportResponseDto
| Field | Required | Description |
|---|---|---|
albums | Yes | See definition below |
cameras | Yes | array |
days | Yes | array |
definitions | Yes | array |
from | Yes | string |
generatedAt | Yes | string |
history | Yes | See definition below |
host | Yes | See definition below |
insights | No | Dashboard breakdowns of the same items as summary. People, places and file names are only for the owner reading their own scope |
metadata | Yes | array |
processing | Yes | See definition below |
range | Yes | See definition below |
scope | Yes | string |
scopeKind | Yes | See definition below |
scopeLabel | Yes | Account or library name; empty for the whole server |
series | Yes | array |
summary | Yes | See definition below |
through | Yes | string |
views | Yes | array |
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.
Field definitions: AnalyticsAlbumsDto, AnalyticsCameraDto, AnalyticsDayDto, AnalyticsSeriesDefinitionDto, AnalyticsHistoryDto, AnalyticsHostDto, AnalyticsInsightsDto, AnalyticsMetadataDto, AnalyticsProcessingDto, AnalyticsRange, AnalyticsScopeKind, AnalyticsBucketDto, AnalyticsSummaryDto, AnalyticsViewDto
{
"properties": {
"albums": {
"$ref": "#/components/schemas/AnalyticsAlbumsDto"
},
"cameras": {
"items": {
"$ref": "#/components/schemas/AnalyticsCameraDto"
},
"type": "array"
},
"days": {
"items": {
"$ref": "#/components/schemas/AnalyticsDayDto"
},
"type": "array"
},
"definitions": {
"items": {
"$ref": "#/components/schemas/AnalyticsSeriesDefinitionDto"
},
"type": "array"
},
"from": {
"format": "date",
"type": "string"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"history": {
"$ref": "#/components/schemas/AnalyticsHistoryDto"
},
"host": {
"$ref": "#/components/schemas/AnalyticsHostDto"
},
"insights": {
"$ref": "#/components/schemas/AnalyticsInsightsDto",
"description": "Dashboard breakdowns of the same items as summary. People, places and file names are only for the owner reading their own scope"
},
"metadata": {
"items": {
"$ref": "#/components/schemas/AnalyticsMetadataDto"
},
"type": "array"
},
"processing": {
"$ref": "#/components/schemas/AnalyticsProcessingDto"
},
"range": {
"$ref": "#/components/schemas/AnalyticsRange"
},
"scope": {
"type": "string"
},
"scopeKind": {
"$ref": "#/components/schemas/AnalyticsScopeKind"
},
"scopeLabel": {
"description": "Account or library name; empty for the whole server",
"type": "string"
},
"series": {
"items": {
"$ref": "#/components/schemas/AnalyticsBucketDto"
},
"type": "array"
},
"summary": {
"$ref": "#/components/schemas/AnalyticsSummaryDto"
},
"through": {
"format": "date",
"type": "string"
},
"views": {
"items": {
"$ref": "#/components/schemas/AnalyticsViewDto"
},
"type": "array"
}
},
"required": [
"albums",
"cameras",
"days",
"definitions",
"from",
"generatedAt",
"history",
"host",
"metadata",
"processing",
"range",
"scope",
"scopeKind",
"scopeLabel",
"series",
"summary",
"through",
"views"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.