GET /admin-series

Returns a paginated list of series for administrative management. This endpoint is intended for backend/admin tooling and includes additional metadata such as lock information.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: view-series

Query Parameters
Parameter Type Required Default Description
order string No name-asc Sorting order
limit number No Number.MAX_SAFE_INTEGER Maximum number of results
offset number No 0 Pagination offset
search string No undefined Search term applied to series name and aliases
client number Yes Client identifier
Enum Values

order

  • name-asc
  • name-desc
  • added-asc
  • added-desc
Responses
200 OK
{
  "series": [
    {
      "id": "number",
      "name": "string",
      "type": "string",
      "slug": "string",
      "public": "number",
      "origin": "string",
      "aliases": ["Alias A", "Alias B"],
      "locked_by": {
        "id": "number",
        "username": "string"
      }
    }
  ],
  "max": 5,
  "from": 1,
  "to": 20
}

Models used
Series Model

400 Bad Request

Returned when required parameters are missing.

{
    "data": "Required parameters missing",
    "code": 400
}

Models used
Response Model

GET /admin-series/id/:id

Returns the full administrative representation of a series, including all editable metadata such as aliases, contributors, publishers, editions, tags, descriptions, relations, and relation diagrams. This endpoint is intended for admin/editor tooling.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: edit-series

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the series
Responses
200 OK

Returned when the series is found and the admin has sufficient permissions.

{
  "id": "number",
  "name": "string",
  "type": "string",
  "slug": "string",
  "public": "number",
  "origin": "string",
  "relation_diagram": {},
  "aliases": [],
  "contributors": [],
  "publishers": [],
  "publisher_editions": [],
  "tags": [],
  "descriptions": [],
  "relations": [],
  "volume": {}
}

Models used
Series Model
Volume Model
Publisher Model
Contributor Model
Tag Model

400 Bad Request

Returned when the series ID is missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

404 Not Found

Returned when the series does not exist.

{
  "data": "Series not found",
  "code": 404
}

Models used
Response Model

POST /admin-series/regen-slug/:id

Regenerates the slug of an existing series based on its current name and type. This endpoint is intended for administrative use when a slug needs to be recalculated or corrected.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: edit-series

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the series
Responses
200 OK

Returned when the slug is regenerated successfully.

{
  "data": "Slug regenerated successfully",
  "code": 200
}

Models used
Response Model

400 Bad Request

Returned when the series ID is missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

404 Not Found

Returned when the series does not exist.

{
  "data": "Series not found",
  "code": 404
}

Models used
Response Model

500 Internal Server Error

Returned when an unexpected error occurs while regenerating the slug.

{
  "data": "Internal server error",
  "code": 500
}

Models used
Response Model

POST /admin-series/edit/:id

Updates an existing series and all of its related metadata. This endpoint is used by administrative tooling to fully manage a series, including aliases, descriptions, relations, publishers, editions, contributors, tags, visibility, and relation diagrams.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: edit-series

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the series
Request Body
Field Type Required Default Description
name string Yes Series name
type string Yes Series type
public number No 0 Public visibility flag
relation_diagram object No null Relation diagram JSON
added_aliases array No [] Aliases to add
removed_aliases array No [] Aliases to remove
added_descriptions array No [] Descriptions to add
removed_descriptions array No [] Descriptions to remove
modified_descriptions array No [] Descriptions to update
added_relations array No [] Relations to add
removed_relations array No [] Relations to remove
modified_relations array No [] Relations to update
added_publishers array No [] Publishers to add
removed_publishers array No [] Publishers to remove
modified_publishers array No [] Publishers to update
added_editions array No [] Editions to add
removed_editions array No [] Editions to remove
modified_editions array No [] Editions to update
added_contributors array No [] Contributors to add
removed_contributors array No [] Contributors to remove
modified_contributors array No [] Contributors to update
added_tags array No [] Tags to add
removed_tags array No [] Tags to remove
Responses
200 OK

Returned when the series and all related entities are updated successfully.

{
  "data": "Series edited successfully",
  "code": 200
}

Models used
Response Model

400 Bad Request

Returned when required parameters are missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

404 Not Found

Returned when the series does not exist.

{
  "data": "Series not found",
  "code": 404
}

Models used
Response Model

500 Internal Server Error

Returned when an unexpected error occurs while editing the series.

{
  "data": "Internal server error",
  "code": 500
}

Models used
Response Model

POST /admin-series/move/:id

Moves an existing series to a different client. This endpoint is intended for administrative tooling when a series needs to be reassigned between clients.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: edit-series

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the series
Request Body
Field Type Required Description
client number Yes Target client identifier
Responses
200 OK

Returned when the series is moved to the new client successfully.

{
  "data": "Series moved successfully",
  "code": 200
}

Models used
Response Model

400 Bad Request

Returned when required parameters are missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

404 Not Found

Returned when the series does not exist.

{
  "data": "Series not found",
  "code": 404
}

Models used
Response Model

500 Internal Server Error

Returned when an unexpected error occurs while moving the series.

{
  "data": "Internal server error",
  "code": 500
}

Models used
Response Model

POST /admin-series/add

Creates a new series for a specific client. This endpoint is intended for administrative use and initializes the series with a generated slug and non-public visibility.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: add-series

Request Body
Field Type Required Description
name string Yes Name of the series
type string Yes Type of the series
client number Yes Client identifier
Responses
200 OK

Returned when the series is created successfully.

{
  "data": "Series added successfully",
  "code": 200
}

Models used
Response Model

400 Bad Request

Returned when required parameters are missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

409 Conflict

Returned when a series with the same name and type already exists for the client.

{
  "data": "Series with this Name and Type exists already.",
  "code": 409
}

Models used
Response Model

500 Internal Server Error

Returned when an unexpected error occurs while creating the series.

{
  "data": "Internal server error",
  "code": 500
}

Models used
Response Model

DELETE /admin-series/delete/:id

Deletes a series and all associated metadata from the system. This operation is destructive and intended strictly for administrative use. All related entities (aliases, descriptions, contributors, publishers, relations, reports, and click statistics) are removed, and volume groups are reassigned to the unassigned series.

Authentication

This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.

Cookie Name Required Description
refreshToken Yes Refresh token used to authenticate

Required Permission: delete-series

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the series
Responses
200 OK

Returned when the series and all related data are deleted successfully.

{
  "data": "Series deleted successfully",
  "code": 200
}

Models used
Response Model

400 Bad Request

Returned when the series ID is missing.

{
  "data": "Required parameters missing",
  "code": 400
}

Models used
Response Model

404 Not Found

Returned when the series does not exist.

{
  "data": "Series not found",
  "code": 404
}

Models used
Response Model

500 Internal Server Error

Returned when an unexpected error occurs while deleting the series.

{
  "data": "Internal server error",
  "code": 500
}

Models used
Response Model