ReadingProgressExportDocument
The whole export: one user's reading state, self-describing enough to be matched back against a differently organised library.
codex-reading-progressseries object[]
books object[]
completions object[]
Empty when the book was never analyzed; never treated as a value to match on in that case.
v01.cbzRelative to the series folder, so a series move does not invalidate it.
Vol 01/v01.cbzprogress object
The live resume position for one book. Retains r2_progression: it is the
only place the EPUB locator survives, since sessions strip it.
sessions object[]
Omitted entirely (not an empty array) when the export was taken with
includeSessions=false.
"measured", "inferred", or "unknown".
measured"progress", "completed", or "reset".
progressexternalIds object[]
12345plugin:<name>, comicinfo, epub, or manual.
plugin:mangabakaThe series path as stored, relative to the library root.
shonen/NarutoNarutoWhen the rating was last changed. The newest conflict policy needs it
to tell a stale rating from a fresh one; a file without it never
overwrites an existing rating except under overwrite.
1{
"exportedAt": "2024-07-29T15:51:28.071Z",
"format": "codex-reading-progress",
"includesSessions": true,
"series": [
{
"books": [
{
"completions": [
{
"completedAt": "2024-07-29T15:51:28.071Z",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"startedAt": "2024-07-29T15:51:28.071Z"
}
],
"fileHash": "string",
"fileName": "v01.cbz",
"partialHash": "string",
"path": "Vol 01/v01.cbz",
"progress": {
"completed": true,
"completedAt": "2024-07-29T15:51:28.071Z",
"currentPage": 0,
"progressPercentage": 0,
"r2Progression": "string",
"startedAt": "2024-07-29T15:51:28.071Z",
"updatedAt": "2024-07-29T15:51:28.071Z"
},
"sessions": "Unknown Type: array,null"
}
],
"externalIds": [
{
"id": "12345",
"source": "plugin:mangabaka"
}
],
"libraryRelativePath": "shonen/Naruto",
"name": "Naruto",
"notes": "string",
"rating": 0,
"ratingUpdatedAt": "2024-07-29T15:51:28.071Z"
}
],
"version": 1
}