VideoMomentsResponseDto
| Field | Required | Description |
|---|---|---|
assetId | Yes | string |
captionModel | Yes | string |
captionedAt | Yes | string |
coverFrameId | Yes | string |
coverTimestampMs | Yes | The owner's chosen cover time; null means the best frame |
embeddingModel | Yes | string |
extractorVersion | Yes | string |
frames | Yes | array |
framesExtractedAt | Yes | string |
indexedAt | Yes | string |
moments | Yes | array |
staleReason | Yes | See definition below |
state | Yes | See definition below |
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: VideoMomentFrameDto, VideoMomentDto, EnrichmentStaleReason, VideoMomentIndexState
{
"properties": {
"assetId": {
"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"
},
"captionModel": {
"nullable": true,
"type": "string"
},
"captionedAt": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"coverFrameId": {
"format": "uuid",
"nullable": true,
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"coverTimestampMs": {
"description": "The owner's chosen cover time; null means the best frame",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"nullable": true,
"type": "integer"
},
"embeddingModel": {
"nullable": true,
"type": "string"
},
"extractorVersion": {
"nullable": true,
"type": "string"
},
"frames": {
"items": {
"$ref": "#/components/schemas/VideoMomentFrameDto"
},
"type": "array"
},
"framesExtractedAt": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"indexedAt": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"moments": {
"items": {
"$ref": "#/components/schemas/VideoMomentDto"
},
"type": "array"
},
"staleReason": {
"allOf": [
{
"$ref": "#/components/schemas/EnrichmentStaleReason"
}
],
"nullable": true
},
"state": {
"$ref": "#/components/schemas/VideoMomentIndexState"
}
},
"required": [
"assetId",
"captionModel",
"captionedAt",
"coverFrameId",
"coverTimestampMs",
"embeddingModel",
"extractorVersion",
"frames",
"framesExtractedAt",
"indexedAt",
"moments",
"staleReason",
"state"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.