Skip to content

TimeBucketAssetResponseDto

Endpoints · All schemas

FieldRequiredDescription
cityNoArray of city names extracted from EXIF GPS data
countryNoArray of country names extracted from EXIF GPS data
createdAtYesArray of UTC timestamps when each asset was originally uploaded to Frameleaf
durationYesArray of video/gif durations in milliseconds (null for static images)
fileCreatedAtYesArray of file creation timestamps in UTC
fileSizeInByteNoArray of file sizes in bytes (null when unknown). Omitted for shared links that hide EXIF
heightNoArray of heights in pixels (null when unknown). Omitted for shared links that hide EXIF
idYesArray of asset IDs in the time bucket
isFavoriteYesArray indicating whether each asset is favorited
isImageYesArray indicating whether each asset is an image (false for videos)
isOfflineNoArray indicating whether each asset is offline (its file is missing from an external library)
isTrashedYesArray indicating whether each asset is in the trash
latitudeNoArray of latitude coordinates extracted from EXIF GPS data
livePhotoVideoIdYesArray of live photo video asset IDs (null for non-live photos)
localOffsetHoursYesArray of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective.
lockReasonNoWhy each asset is locked, or null when it is not. Returned with visibility LOCKED and for the timeline of an elevated owner, which reveals their marked and detected items
longitudeNoArray of longitude coordinates extracted from EXIF GPS data
originalFileNameNoArray of original file names. Omitted for shared links that hide EXIF
ownerIdYesArray of owner IDs for each asset
projectionTypeYesArray of projection types for 360° content (e.g., "EQUIRECTANGULAR", "CUBEFACE", "CYLINDRICAL")
ratingNoArray of star ratings from EXIF (-1 rejected, 0 unrated, 1-5 stars; null when unknown). Omitted for shared links that hide EXIF
ratioYesArray of aspect ratios (width/height) for each asset
stackNoArray of stack information as [stackId, assetCount] tuples (null for non-stacked assets)
thumbhashYesArray of BlurHash strings for generating asset previews (base64 encoded)
visibilityYesArray of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)
widthNoArray of widths in pixels (null when unknown). Omitted for shared links that hide EXIF

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: AssetLockReason, AssetVisibility

{
  "properties": {
    "city": {
      "description": "Array of city names extracted from EXIF GPS data",
      "items": {
        "nullable": true,
        "type": "string"
      },
      "type": "array"
    },
    "country": {
      "description": "Array of country names extracted from EXIF GPS data",
      "items": {
        "nullable": true,
        "type": "string"
      },
      "type": "array"
    },
    "createdAt": {
      "description": "Array of UTC timestamps when each asset was originally uploaded to Frameleaf",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "duration": {
      "description": "Array of video/gif durations in milliseconds (null for static images)",
      "items": {
        "maximum": 2147483647,
        "minimum": 0,
        "nullable": true,
        "type": "integer"
      },
      "type": "array"
    },
    "fileCreatedAt": {
      "description": "Array of file creation timestamps in UTC",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "fileSizeInByte": {
      "description": "Array of file sizes in bytes (null when unknown). Omitted for shared links that hide EXIF",
      "items": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "nullable": true,
        "type": "integer"
      },
      "type": "array"
    },
    "height": {
      "description": "Array of heights in pixels (null when unknown). Omitted for shared links that hide EXIF",
      "items": {
        "maximum": 2147483647,
        "minimum": -2147483648,
        "nullable": true,
        "type": "integer"
      },
      "type": "array"
    },
    "id": {
      "description": "Array of asset IDs in the time bucket",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "isFavorite": {
      "description": "Array indicating whether each asset is favorited",
      "items": {
        "type": "boolean"
      },
      "type": "array"
    },
    "isImage": {
      "description": "Array indicating whether each asset is an image (false for videos)",
      "items": {
        "type": "boolean"
      },
      "type": "array"
    },
    "isOffline": {
      "description": "Array indicating whether each asset is offline (its file is missing from an external library)",
      "items": {
        "type": "boolean"
      },
      "type": "array"
    },
    "isTrashed": {
      "description": "Array indicating whether each asset is in the trash",
      "items": {
        "type": "boolean"
      },
      "type": "array"
    },
    "latitude": {
      "description": "Array of latitude coordinates extracted from EXIF GPS data",
      "items": {
        "format": "double",
        "nullable": true,
        "type": "number"
      },
      "type": "array"
    },
    "livePhotoVideoId": {
      "description": "Array of live photo video asset IDs (null for non-live photos)",
      "items": {
        "nullable": true,
        "type": "string"
      },
      "type": "array"
    },
    "localOffsetHours": {
      "description": "Array of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective.",
      "items": {
        "format": "double",
        "type": "number"
      },
      "type": "array"
    },
    "lockReason": {
      "description": "Why each asset is locked, or null when it is not. Returned with visibility LOCKED and for the timeline of an elevated owner, which reveals their marked and detected items",
      "items": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AssetLockReason"
          }
        ],
        "nullable": true
      },
      "type": "array"
    },
    "longitude": {
      "description": "Array of longitude coordinates extracted from EXIF GPS data",
      "items": {
        "format": "double",
        "nullable": true,
        "type": "number"
      },
      "type": "array"
    },
    "originalFileName": {
      "description": "Array of original file names. Omitted for shared links that hide EXIF",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "ownerId": {
      "description": "Array of owner IDs for each asset",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "projectionType": {
      "description": "Array of projection types for 360° content (e.g., \"EQUIRECTANGULAR\", \"CUBEFACE\", \"CYLINDRICAL\")",
      "items": {
        "nullable": true,
        "type": "string"
      },
      "type": "array"
    },
    "rating": {
      "description": "Array of star ratings from EXIF (-1 rejected, 0 unrated, 1-5 stars; null when unknown). Omitted for shared links that hide EXIF",
      "items": {
        "maximum": 5,
        "minimum": -1,
        "nullable": true,
        "type": "integer"
      },
      "type": "array"
    },
    "ratio": {
      "description": "Array of aspect ratios (width/height) for each asset",
      "items": {
        "format": "double",
        "type": "number"
      },
      "type": "array"
    },
    "stack": {
      "description": "Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets)",
      "items": {
        "items": {
          "type": "string"
        },
        "maxItems": 2,
        "minItems": 2,
        "nullable": true,
        "type": "array"
      },
      "type": "array"
    },
    "thumbhash": {
      "description": "Array of BlurHash strings for generating asset previews (base64 encoded)",
      "items": {
        "nullable": true,
        "type": "string"
      },
      "type": "array"
    },
    "visibility": {
      "description": "Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
      "items": {
        "$ref": "#/components/schemas/AssetVisibility"
      },
      "type": "array"
    },
    "width": {
      "description": "Array of widths in pixels (null when unknown). Omitted for shared links that hide EXIF",
      "items": {
        "maximum": 2147483647,
        "minimum": -2147483648,
        "nullable": true,
        "type": "integer"
      },
      "type": "array"
    }
  },
  "required": [
    "createdAt",
    "duration",
    "fileCreatedAt",
    "id",
    "isFavorite",
    "isImage",
    "isTrashed",
    "livePhotoVideoId",
    "localOffsetHours",
    "ownerId",
    "projectionType",
    "ratio",
    "thumbhash",
    "visibility"
  ],
  "type": "object"
}