SharedSpacePreviewResponseDto
| Field | Required | Description |
|---|---|---|
accepted | Yes | True once the recipient has joined the space |
albumName | Yes | Shared space name |
assetCount | Yes | Items the recipient would see. Media marked sensitive, and Locked media, are not counted. |
description | Yes | Shared space description |
endDate | No | Latest item date, sensitive and Locked media excluded |
icon | Yes | Icon: a Material Design Icons name (null = default icon) |
id | Yes | Shared space ID |
invitedAt | Yes | When the invitation was sent |
invitedBy | Yes | Who sent the invitation |
memberCount | Yes | People already in the shared space, including its owner |
owner | Yes | Who owns the shared space |
role | Yes | The role the recipient gets on accept |
startDate | No | Earliest item date, sensitive and Locked media excluded |
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: UserResponseDto, AlbumUserRole
{
"properties": {
"accepted": {
"description": "True once the recipient has joined the space",
"type": "boolean"
},
"albumName": {
"description": "Shared space name",
"type": "string"
},
"assetCount": {
"description": "Items the recipient would see. Media marked sensitive, and Locked media, are not counted.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"description": {
"description": "Shared space description",
"type": "string"
},
"endDate": {
"description": "Latest item date, sensitive and Locked media excluded",
"format": "date-time",
"type": "string"
},
"icon": {
"description": "Icon: a Material Design Icons name (null = default icon)",
"nullable": true,
"type": "string"
},
"id": {
"description": "Shared space 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"
},
"invitedAt": {
"description": "When the invitation was sent",
"format": "date-time",
"type": "string"
},
"invitedBy": {
"allOf": [
{
"$ref": "#/components/schemas/UserResponseDto"
}
],
"description": "Who sent the invitation",
"nullable": true
},
"memberCount": {
"description": "People already in the shared space, including its owner",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"owner": {
"$ref": "#/components/schemas/UserResponseDto",
"description": "Who owns the shared space"
},
"role": {
"$ref": "#/components/schemas/AlbumUserRole",
"description": "The role the recipient gets on accept"
},
"startDate": {
"description": "Earliest item date, sensitive and Locked media excluded",
"format": "date-time",
"type": "string"
}
},
"required": [
"accepted",
"albumName",
"assetCount",
"description",
"icon",
"id",
"invitedAt",
"invitedBy",
"memberCount",
"owner",
"role"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.