TimelineHighlightResponseDto
| Field | Required | Description |
|---|---|---|
count | Yes | Number of assets in this year or month, the same as the time buckets report |
highlightAssetIds | Yes | The next best assets in capture order (month cards only), never including the key photo |
keyAssetId | Yes | Key photo: highest Best Photos score, then highest star rating, then most recent capture |
places | Yes | Up to three most frequent places (city, else state, else country), busiest first. Empty when the viewer may not see locations |
timeBucket | Yes | First day of the year or month in YYYY-MM-DD format, as in GET /timeline/buckets |
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": {
"count": {
"description": "Number of assets in this year or month, the same as the time buckets report",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"highlightAssetIds": {
"description": "The next best assets in capture order (month cards only), never including the key photo",
"items": {
"type": "string"
},
"type": "array"
},
"keyAssetId": {
"description": "Key photo: highest Best Photos score, then highest star rating, then most recent capture",
"nullable": true,
"type": "string"
},
"places": {
"description": "Up to three most frequent places (city, else state, else country), busiest first. Empty when the viewer may not see locations",
"items": {
"type": "string"
},
"type": "array"
},
"timeBucket": {
"description": "First day of the year or month in YYYY-MM-DD format, as in GET /timeline/buckets",
"example": "2024-01-01",
"type": "string"
}
},
"required": [
"count",
"highlightAssetIds",
"keyAssetId",
"places",
"timeBucket"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.