Skip to content

Tankoubon API

13 endpoints.

GEThttp://localhost:3000/api/tankoubons

Get list of Tankoubons paginated.

Query parameters

pageintegeroptional
Page of the list of Tankoubons. The amount of tanks per page depends on the server archives_per_page setting.

Responses

200Tankoubons
{
  "filtered": 0,
  "result": [
    {
      "archives": [
        "e69e43e1355267f7d32a4f9b7f2fe108d2401ebf",
        "e69e43e1355267f7d32a4f9b7f2fe108d2401eba"
      ],
      "id": "TANK_1749925516",
      "name": "sailor moon",
      "progress": 0,
      "summary": "",
      "tags": ""
    }
  ],
  "total": 0
}

Your own instance address. Requests go from this browser straight to it.

PUThttp://localhost:3000/api/tankoubons

Create a new Tankoubon or update the name of an existing one.

Request body

application/x-www-form-urlencoded, multipart/form-data

Responses

200Success response
{
  "operation": "create_tankoubon",
  "success": 0,
  "tankoubon_id": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

DELETEhttp://localhost:3000/api/tankoubons/{id}

Remove a Tankoubon from the server. This doesn’t delete underlying Archives.

Responses

200Success response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423The Tankoubon is currently locked for modification
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

GEThttp://localhost:3000/api/tankoubons/{id}

Get the details of the specified tankoubon ID.

Responses

200Tankoubon
{
  "archives": [
    ""
  ],
  "id": "",
  "name": "",
  "progress": 0,
  "summary": "",
  "tags": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

Your own instance address. Requests go from this browser straight to it.

PUThttp://localhost:3000/api/tankoubons/{id}

Modify the full metadata (name, summary, additional tags) or the contents of a Tankoubon.
If you only need to change the name of Tank, consider just using PUT /api/tankoubons.

Note: If there is no need to update something in one of the data keys, do not send the key – This otherwise can result in unwanted results.

Path parameters

idstring · min: 15 · max: 15 · patternrequired
ID of the Tankoubon to update.

Request body

application/json

Responses

200Success response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423The Tankoubon is currently locked for modification
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

DELETEhttp://localhost:3000/api/tankoubons/{id}/{archive}

Path parameters

idstring · min: 15 · max: 15 · patternrequired
ID of the Tankoubon to update.
archivestring · min: 40 · max: 40 · patternrequired
ID of the Archive to remove.

Responses

200Result
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423The Tankoubon is currently locked for modification
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

PUThttp://localhost:3000/api/tankoubons/{id}/{archive}

Append an archive at the final position of a Tankoubon.

Path parameters

idstring · min: 15 · max: 15 · patternrequired
ID of the Tankoubon to update.
archivestring · min: 40 · max: 40 · patternrequired
ID of the Archive to append.

Responses

200Success response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423The Tankoubon is currently locked for modification
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

POSThttp://localhost:3000/api/tankoubons/{id}/ai/rename-chapter

Not yet described in this reference. This endpoint is listed because the server registers it, but its request and response shapes have not been written down yet.

The handler is ai_rename_chapter in crates/lanrurugi-api/src/tankoubons.rs:1693.

Responses

200The endpoint responded. Its exact shape is not documented yet — see the handler at crates/lanrurugi-api/src/tankoubons.rs:107.

This response carries no example body.

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

POST /api/tankoubons/{id}/ai/rename-suggestions

Section titled “POST /api/tankoubons/{id}/ai/rename-suggestions”
POSThttp://localhost:3000/api/tankoubons/{id}/ai/rename-suggestions

Not yet described in this reference. This endpoint is listed because the server registers it, but its request and response shapes have not been written down yet.

The note below is the handler’s own documentation comment (crates/lanrurugi-api/src/tankoubons.rs:1585), quoted verbatim. It is written for maintainers of this codebase and may reference internal identifiers.


POST /api/tankoubons/{id}/ai/rename-suggestions

Sends the tankoubon title, member archive names, and order to DeepSeek and returns AI-generated rename suggestions (tankoubon name + per-archive chapter names). The LLM key must be configured; returns 400 if not.

Responses

200The endpoint responded. Its exact shape is not documented yet — see the handler at crates/lanrurugi-api/src/tankoubons.rs:103.

This response carries no example body.

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

GEThttp://localhost:3000/api/tankoubons/{id}/full

Get the details of the specified tankoubon ID with paginated archive metadata. The amount of archives per page depends on the server archives_per_page setting.

Query parameters

pageinteger · default: -1optional
Page of the Archives list. Defaults to -1, which returns all archives.

Responses

200Tankoubon
{
  "filtered": 0,
  "result": {
    "archives": [
      ""
    ],
    "full_data": [
      null
    ],
    "id": "",
    "name": "",
    "progress": 0,
    "summary": "",
    "tags": ""
  },
  "total": 0
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

Your own instance address. Requests go from this browser straight to it.

PUThttp://localhost:3000/api/tankoubons/{id}/progress/{page}

Tell the server which page of this Tankoubon you’re currently reading, so that it updates its internal reading progression accordingly. The page number is global across all Archives in the tank (If a tank has two Archives with 20 and 25 pages, page 26 will be page 6 in Archive #2). ⚠ If the server is configured to use clientside progress tracking, this API call will return an error! Make sure to check using /api/info whether the server tracks reading progression or not before calling this endpoint.

Path parameters

idstring · min: 15 · max: 15 · patternrequired
ID of the Tankoubon to update.
pageinteger · min: 1required
Global 1-indexed page number to update the reading progress to. Must be a positive integer.

Responses

200Success response
{
  "id": "TANK_1589141306",
  "lastreadtime": 123943543,
  "operation": "update_tank_progress",
  "page": 5,
  "success": 1
}
400Generic error response
{
  "error": "Server-side Progress Tracking is disabled on this instance.",
  "operation": "update_tank_progress",
  "success": 0
}
401Authentication required when authprogress is enabled
{
  "error": "This operation requires authentication.",
  "operation": "update_tank_progress",
  "success": 0
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.

GEThttp://localhost:3000/api/tankoubons/{id}/thumbnail

Get the cover thumbnail for a given Tankoubon. By default, the thumbnail is sourced from the first page of the first archive. This endpoint will return a placeholder image if it doesn’t already exist. If you want to queue generation of the thumbnail in the background, you can use the no_fallback query parameter.

Query parameters

no_fallbackstring · enum: true | falseoptional
Disables the placeholder image, queues the thumbnail for extraction and returns a JSON with code 202. This parameter does nothing if the image already exists. (You will get the image with code 200 no matter what)

Responses

200If the thumbnail was already extracted, you get it directly.

This response carries no example body.

202The thumbnail is queued for extraction. Use `/api/minion/:jobid` to track when your thumbnail is ready.
{
  "job": 0,
  "operation": "",
  "success": 1
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

Your own instance address. Requests go from this browser straight to it.

PUThttp://localhost:3000/api/tankoubons/{id}/thumbnail

Set the cover thumbnail for the given Tankoubon using a global page number that spans all archives in the tank (in order). The global page is translated to the correct archive and local page automatically.

Query parameters

pageinteger · min: 1required
Global 1-indexed page number across all archives in the tankoubon. Page 1 is the first page of the first archive, and so on.

Responses

200Tankoubon thumbnail updated
{
  "new_thumbnail": "",
  "operation": "update_tankoubon_thumbnail",
  "success": 0
}
400Error response
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

This endpoint needs an administrator token — a guest (read-only) token is refused by the server.

Your own instance address. Requests go from this browser straight to it.