Tankoubon API
13 endpoints.
Get all Tankoubons
Section titled “Get all 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_pagesetting.
Responses
200Tankoubons
{
"filtered": 0,
"result": [
{
"archives": [
"e69e43e1355267f7d32a4f9b7f2fe108d2401ebf",
"e69e43e1355267f7d32a4f9b7f2fe108d2401eba"
],
"id": "TANK_1749925516",
"name": "sailor moon",
"progress": 0,
"summary": "",
"tags": ""
}
],
"total": 0
}Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Create a Tankoubon
Section titled “Create a Tankoubon”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Delete Tankoubon
Section titled “Delete Tankoubon”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Get a single Tankoubon
Section titled “Get a single Tankoubon”Get the details of the specified tankoubon ID.
Responses
200Tankoubon
{
"archives": [
""
],
"id": "",
"name": "",
"progress": 0,
"summary": "",
"tags": ""
}400Error response
{
"error": "",
"operation": "",
"success": 0,
"successMessage": ""
}Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Update Tankoubon metadata/contents
Section titled “Update Tankoubon metadata/contents”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Remove an Archive from a Tankoubon
Section titled “Remove an Archive from 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 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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Add an Archive to a Tankoubon
Section titled “Add an Archive to a Tankoubon”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
ai_rename_chapter
Section titled “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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
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”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Get a single Tankoubon with full detail
Section titled “Get a single Tankoubon with full detail”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": ""
}Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Update Tankoubon reading progression
Section titled “Update Tankoubon reading progression”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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Get Tankoubon thumbnail
Section titled “Get Tankoubon 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": ""
}Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.
Update Tankoubon thumbnail
Section titled “Update Tankoubon 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.
Request failed — Usual causes: the instance address is wrong or unreachable; cross-origin access is not enabled on the instance; or this page is HTTPS while the instance is plain HTTP on a LAN address, which the browser blocks as mixed content. “Copy as cURL” above sends the same request from a terminal.
Your own instance address. Requests go from this browser straight to it.