Skip to content

SharedLinkResponseDto

Endpoints · All schemas

Shared link response

FieldRequiredDescription
albumNoSee definition below
allowDownloadYesAllow downloads
allowUploadYesAllow uploads
assetsYesarray
createdAtYesCreation date
descriptionYesLink description
expiresAtYesExpiration date
idYesShared link ID
keyYesEncryption key (base64url)
ownerNoDisplay name of the user who created the link, for "Shared by" on the public page
passwordYesHas password: a fixed mask when the link has one, never the password itself
showMetadataYesShow metadata
slugYesCustom URL slug
typeYesSee definition below
urlYesThe link's public address: the server's external domain, then /s/<slug> (URL-encoded) or /share/<key>. Null when no external domain is set; a client then puts the same path after the address it uses.
userIdYesOwner user ID

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: AlbumResponseDto, AssetResponseDto, SharedLinkOwnerResponseDto, SharedLinkType

{
  "description": "Shared link response",
  "properties": {
    "album": {
      "$ref": "#/components/schemas/AlbumResponseDto"
    },
    "allowDownload": {
      "description": "Allow downloads",
      "type": "boolean"
    },
    "allowUpload": {
      "description": "Allow uploads",
      "type": "boolean"
    },
    "assets": {
      "items": {
        "$ref": "#/components/schemas/AssetResponseDto"
      },
      "type": "array"
    },
    "createdAt": {
      "description": "Creation date",
      "example": "2024-01-01T00:00:00.000Z",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      "type": "string"
    },
    "description": {
      "description": "Link description",
      "nullable": true,
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiration date",
      "example": "2024-01-01T00:00:00.000Z",
      "format": "date-time",
      "nullable": true,
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      "type": "string"
    },
    "id": {
      "description": "Shared link 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"
    },
    "key": {
      "description": "Encryption key (base64url)",
      "type": "string"
    },
    "owner": {
      "$ref": "#/components/schemas/SharedLinkOwnerResponseDto",
      "description": "Display name of the user who created the link, for \"Shared by\" on the public page"
    },
    "password": {
      "description": "Has password: a fixed mask when the link has one, never the password itself",
      "nullable": true,
      "type": "string"
    },
    "showMetadata": {
      "description": "Show metadata",
      "type": "boolean"
    },
    "slug": {
      "description": "Custom URL slug",
      "nullable": true,
      "type": "string"
    },
    "type": {
      "$ref": "#/components/schemas/SharedLinkType"
    },
    "url": {
      "description": "The link's public address: the server's external domain, then /s/<slug> (URL-encoded) or /share/<key>. Null when no external domain is set; a client then puts the same path after the address it uses.",
      "nullable": true,
      "type": "string"
    },
    "userId": {
      "description": "Owner user 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"
    }
  },
  "required": [
    "allowDownload",
    "allowUpload",
    "assets",
    "createdAt",
    "description",
    "expiresAt",
    "id",
    "key",
    "password",
    "showMetadata",
    "slug",
    "type",
    "url",
    "userId"
  ],
  "type": "object"
}