AlbumResponseDto
| Field | Required | Description |
|---|---|---|
albumName | Yes | Album name |
albumThumbnailAssetId | Yes | Thumbnail asset ID |
albumUsers | Yes | First entry is always the album owner. Second entry is the auth user, if it differs from the owner. The rest are ordered alphabetically. |
assetCount | Yes | Number of assets |
contributorCounts | No | array |
coverFollowsNewest | No | True when the cover always follows the newest item. Populated by GET /albums/{id} and PATCH /albums/{id}. |
createdAt | Yes | Creation date |
description | Yes | Album description |
endDate | No | End date (latest asset) |
hasSharedLink | Yes | Has shared link |
icon | Yes | Icon: a Material Design Icons name or legacy key (null = default icon) |
id | Yes | Album ID |
isActivityEnabled | Yes | Activity feed enabled |
isSmart | No | True when the album is filled by smart album rules. Populated by GET /albums/tree and GET /albums/{id}. |
kind | Yes | See definition below |
lastModifiedAssetTimestamp | No | Last modified asset timestamp |
order | No | See definition below |
origin | No | present on your own album when partner sharing copied it from another library |
parentId | Yes | Collection this album belongs to (null = top-level) |
shared | Yes | Is shared album |
smartKind | No | Built-in smart album kind behind this album, when it is a built-in smart album |
smartRuleId | No | Your classification rule behind this smart album, when it is one of yours |
sortOrder | Yes | Sibling display position. Lower values appear first. |
startDate | No | Start date (earliest asset) |
updatedAt | Yes | Last update date |
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: AlbumUserResponseDto, ContributorCountResponseDto, AlbumKind, AssetOrder, PartnerOriginDto, SmartAlbumBuiltInKind
{
"properties": {
"albumName": {
"description": "Album name",
"type": "string"
},
"albumThumbnailAssetId": {
"description": "Thumbnail asset ID",
"format": "uuid",
"nullable": true,
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"albumUsers": {
"description": "First entry is always the album owner. Second entry is the auth user, if it differs from the owner. The rest are ordered alphabetically.",
"items": {
"$ref": "#/components/schemas/AlbumUserResponseDto"
},
"minItems": 1,
"type": "array"
},
"assetCount": {
"description": "Number of assets",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"contributorCounts": {
"items": {
"$ref": "#/components/schemas/ContributorCountResponseDto"
},
"type": "array"
},
"coverFollowsNewest": {
"description": "True when the cover always follows the newest item. Populated by GET /albums/{id} and PATCH /albums/{id}.",
"type": "boolean"
},
"createdAt": {
"description": "Creation date",
"format": "date-time",
"type": "string"
},
"description": {
"description": "Album description",
"type": "string"
},
"endDate": {
"description": "End date (latest asset)",
"format": "date-time",
"type": "string"
},
"hasSharedLink": {
"description": "Has shared link",
"type": "boolean"
},
"icon": {
"description": "Icon: a Material Design Icons name or legacy key (null = default icon)",
"nullable": true,
"type": "string"
},
"id": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isActivityEnabled": {
"description": "Activity feed enabled",
"type": "boolean"
},
"isSmart": {
"description": "True when the album is filled by smart album rules. Populated by GET /albums/tree and GET /albums/{id}.",
"type": "boolean"
},
"kind": {
"$ref": "#/components/schemas/AlbumKind"
},
"lastModifiedAssetTimestamp": {
"description": "Last modified asset timestamp",
"format": "date-time",
"type": "string"
},
"order": {
"$ref": "#/components/schemas/AssetOrder"
},
"origin": {
"$ref": "#/components/schemas/PartnerOriginDto",
"description": "present on your own album when partner sharing copied it from another library"
},
"parentId": {
"description": "Collection this album belongs to (null = top-level)",
"nullable": true,
"type": "string"
},
"shared": {
"description": "Is shared album",
"type": "boolean"
},
"smartKind": {
"allOf": [
{
"$ref": "#/components/schemas/SmartAlbumBuiltInKind"
}
],
"description": "Built-in smart album kind behind this album, when it is a built-in smart album",
"nullable": true
},
"smartRuleId": {
"description": "Your classification rule behind this smart album, when it is one of yours",
"nullable": true,
"type": "string"
},
"sortOrder": {
"description": "Sibling display position. Lower values appear first.",
"format": "double",
"nullable": true,
"type": "number"
},
"startDate": {
"description": "Start date (earliest asset)",
"format": "date-time",
"type": "string"
},
"updatedAt": {
"description": "Last update date",
"format": "date-time",
"type": "string"
}
},
"required": [
"albumName",
"albumThumbnailAssetId",
"albumUsers",
"assetCount",
"createdAt",
"description",
"hasSharedLink",
"icon",
"id",
"isActivityEnabled",
"kind",
"parentId",
"shared",
"sortOrder",
"updatedAt"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.