LibraryScanResponseDto
| Field | Required | Description |
|---|---|---|
added | Yes | New items indexed |
checked | Yes | Indexed items checked against their folder |
createdAt | Yes | When the scan was asked for |
error | Yes | Failure detail for the administrator |
errorCode | Yes | Stable failure code |
finishedAt | Yes | When the scan ended |
offlined | Yes | Items whose file is missing, marked offline |
onlined | Yes | Offline items whose file is back |
operationId | Yes | The scan job, a media operation of kind library_scan |
pauseRequested | Yes | A pause was asked for and the scan has not reached it yet |
phase | Yes | See definition below |
processedUnits | Yes | Files and items handled so far |
progress | Yes | Progress, 0 to 100 |
retrying | Yes | The scan failed once and waits for its automatic retry |
startedAt | Yes | When the scan first started |
status | Yes | See definition below |
stopReason | Yes | See definition below |
totalUnits | Yes | Files and items known so far; grows while the folders are read |
updated | Yes | Items whose file changed and are read again |
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: LibraryScanPhase, MediaOperationStatus, LibraryScanStopReason
{
"properties": {
"added": {
"description": "New items indexed",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"checked": {
"description": "Indexed items checked against their folder",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"createdAt": {
"description": "When the scan was asked for",
"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"
},
"error": {
"description": "Failure detail for the administrator",
"nullable": true,
"type": "string"
},
"errorCode": {
"description": "Stable failure code",
"nullable": true,
"type": "string"
},
"finishedAt": {
"description": "When the scan ended",
"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"
},
"offlined": {
"description": "Items whose file is missing, marked offline",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"onlined": {
"description": "Offline items whose file is back",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationId": {
"description": "The scan job, a media operation of kind library_scan",
"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"
},
"pauseRequested": {
"description": "A pause was asked for and the scan has not reached it yet",
"type": "boolean"
},
"phase": {
"$ref": "#/components/schemas/LibraryScanPhase"
},
"processedUnits": {
"description": "Files and items handled so far",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"progress": {
"description": "Progress, 0 to 100",
"format": "double",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"retrying": {
"description": "The scan failed once and waits for its automatic retry",
"type": "boolean"
},
"startedAt": {
"description": "When the scan first started",
"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"
},
"status": {
"$ref": "#/components/schemas/MediaOperationStatus"
},
"stopReason": {
"allOf": [
{
"$ref": "#/components/schemas/LibraryScanStopReason"
}
],
"nullable": true
},
"totalUnits": {
"description": "Files and items known so far; grows while the folders are read",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"updated": {
"description": "Items whose file changed and are read again",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"added",
"checked",
"createdAt",
"error",
"errorCode",
"finishedAt",
"offlined",
"onlined",
"operationId",
"pauseRequested",
"phase",
"processedUnits",
"progress",
"retrying",
"startedAt",
"status",
"stopReason",
"totalUnits",
"updated"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.