Skip to main content

ExportBookDto

One book inside a series, keyed for matching by path, name, and hash rather than by id: the whole point of the file is that ids on the far side are expected to be different.

completions object[]
  • Array [
  • completed_atstring<date-time>required
    idstring<uuid>required
    started_atstring<date-time>required
  • ]
  • file_hashstring

    Empty when the book was never analyzed; never treated as a value to match on in that case.

    file_namestringrequired
    Example: v01.cbz
    partial_hashstring
    pathstringrequired

    Relative to the series folder, so a series move does not invalidate it.

    Example: Vol 01/v01.cbz
    progress object

    The live resume position for one book. Retains r2_progression: it is the only place the EPUB locator survives, since sessions strip it.

    completedbooleanrequired
    completed_at(string | null)<date-time>nullable
    current_pageinteger<int32>required
    progress_percentage(number | null)<double>nullable
    r2_progressionstring | nullnullable
    started_atstring<date-time>required
    updated_atstring<date-time>required
    sessions object[]

    Omitted entirely (not an empty array) when the export was taken with include_sessions=false.

  • Array [
  • active_duration_ms(integer | null)<int64>nullable
    client_ended_atstring<date-time>required
    client_started_atstring<date-time>required
    device_idstringrequired
    device_namestring | nullnullable
    duration_sourcestringrequired

    "measured", "inferred", or "unknown".

    Example: measured
    idstring<uuid>required
    kindstringrequired

    "progress", "completed", or "reset".

    Example: progress
    pages_read(integer | null)<int32>nullable
    passinteger<int32>required
    server_recorded_atstring<date-time>required
    to_page(integer | null)<int32>nullable
    to_percentage(number | null)<double>nullable
  • ]
  • ExportBookDto
    {
    "completions": [
    {
    "completed_at": "2024-07-29T15:51:28.071Z",
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "started_at": "2024-07-29T15:51:28.071Z"
    }
    ],
    "file_hash": "string",
    "file_name": "v01.cbz",
    "partial_hash": "string",
    "path": "Vol 01/v01.cbz",
    "progress": {
    "completed": true,
    "completed_at": "2024-07-29T15:51:28.071Z",
    "current_page": 0,
    "progress_percentage": 0,
    "r2_progression": "string",
    "started_at": "2024-07-29T15:51:28.071Z",
    "updated_at": "2024-07-29T15:51:28.071Z"
    },
    "sessions": "Unknown Type: array,null"
    }