User Routes
POST /users/:id/save-settings
Creates or updates user-specific settings for the specified user. If a settings record already exists, it is updated; otherwise, a new record is created.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the user |
The request body contains the user settings to be saved. The structure depends on the supported settings model.
{
"theme-accent-color":"#6394c6",
"prefered-content-language":"interface",
"theme":"light",
"nsfw-mode":"settings.nsfw.show-nsfw-18",
"view-mode":"column",
"show-drag-indicator":false
}
200 OK
Returned when the settings are saved successfully.
{
"data": "Settings saved 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 user associated with the refresh token cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while saving the settings.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
— Reading History —
GET /user/reading-history
Returns the authenticated user’s reading history. The result can be filtered, searched, paginated, and ordered using query parameters, and is enriched with localized metadata where available.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| order | string | No | Sort order for the results (see supported values below) |
| limit | number | No | Maximum number of results to return |
| offset | number | No | Number of results to skip (for pagination) |
| search | string | No | Search term used to filter results |
| user_lang | string | No | Preferred language used for localized titles and descriptions |
| client | string | No | Client identifier used for client-specific filtering or behavior |
The order parameter supports the following values:
name-asc,name-descupdate-asc,update-descpriority-asc,priority-descscore-asc,score-descstart-date-asc,start-date-descend-date-asc,end-date-desc
If no order is provided, the default ordering behavior is applied (update-desc).
200 OK
Returned when the reading history is retrieved successfully.
{
"series": [
{
/* Series data with reading status and metadata */
}
],
"max": "number",
"from": "number",
"to": "number"
}
Models used
Series Model
404 Not Found
Returned when the user associated with the refresh token cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
GET /user/reading-status/id/:id
Returns the authenticated user’s reading status for a specific series.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
200 OK
Returned when the reading status is retrieved successfully.
{
/* Reading status data for the series */
}
Models used
Series Model
400 Bad Request
Returned when the required series identifier is missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the user associated with the refresh token cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
POST /user/reading-status/add/:id
Adds a new reading status entry for the authenticated user and the specified series. This endpoint is used when a reading status does not yet exist for the series.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
| Field | Type | Required | Description |
|---|---|---|---|
| visibility | string | Yes | Visibility settings for the reading status |
| progressType | string | Yes | Type used to track reading progress |
| progress | number | Yes | Current reading progress |
| status | string | Yes | Current reading status |
| reread | number | No | Indicates how often the series was reread |
| score | number | No | User-assigned score |
| priority | string | Yes | Reading priority |
| start | string | No | Start date |
| end | string | No | End date |
| notes | string | No | User notes |
| client | string | Yes | Client identifier |
visibility
private(default)public
status
started(default)completedpauseddropped
progress_type
chapters(default)volumes
priority
lowmidhigh
200 OK
Returned when the reading status is added successfully.
{
"data": "Reading status 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
404 Not Found
Returned when the user cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
409 Conflict
Returned when a reading status already exists for the specified series.
{
"data": "Reading status already exists for this series",
"code": 409
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while adding the reading status.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
POST /user/reading-status/update/:id
Updates an existing reading status entry for the authenticated user and the specified series. This endpoint is used when a reading status already exists.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
| Field | Type | Required | Description |
|---|---|---|---|
| visibility | string | Yes | Visibility settings for the reading status |
| progressType | string | Yes | Type used to track reading progress |
| progress | number | Yes | Current reading progress |
| status | string | Yes | Current reading status |
| reread | number | No | Indicates how often the series was reread |
| score | number | No | User-assigned score |
| priority | string | Yes | Reading priority |
| start | string | No | Start date |
| end | string | No | End date |
| notes | string | No | User notes |
| client | string | Yes | Client identifier |
visibility
private(default)public
status
started(default)completedpauseddropped
progress_type
chapters(default)volumes
priority
lowmidhigh
200 OK
Returned when the reading status is updated successfully.
{
"data": "Reading status updated 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 user cannot be found or no reading status exists for the specified series.
{
"data": "Reading status does not exist for this series",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while updating the reading status.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
DELETE /user/reading-status/delete/:id
Deletes an existing reading status entry for the authenticated user and the specified series.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
200 OK
Returned when the reading status is deleted successfully.
{
"data": "Reading status deleted successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when the required series identifier is missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the user cannot be found or no reading status exists for the specified series.
{
"data": "Reading status does not exist for this series",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while deleting the reading status.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
— Rating —
GET /user/series-rating/:id
Returns the authenticated user’s rating for a specific series.
This endpoint requires authentication via a refresh token stored in cookies.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
200 OK
Returned when the rating is retrieved successfully.
{
/* Rating data for the series */
}
Models used
Series Model
400 Bad Request
Returned when the required series identifier is missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the user associated with the refresh token cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
POST /user/series-rating/add/:id
Adds a new rating for a specific series on behalf of the authenticated user. A rating can only be created if one does not already exist for the series.
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: rate-series
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
| Field | Type | Required | Description |
|---|---|---|---|
| rating | number | Yes | Rating value for the series |
200 OK
Returned when the rating is added successfully.
{
"data": "Rating 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
404 Not Found
Returned when the user cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
409 Conflict
Returned when a rating already exists for the specified series.
{
"data": "Rating already exists for this series",
"code": 409
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while adding the rating.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
POST /user/series-rating/update/:id
Updates an existing rating for a specific series on behalf of the authenticated user. This endpoint is used when a rating already exists.
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: rate-series
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
| Field | Type | Required | Description |
|---|---|---|---|
| rating | number | Yes | Updated rating value |
200 OK
Returned when the rating is updated successfully.
{
"data": "Rating updated 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 no existing rating is found for the specified series.
{
"data": "Rating does not exist for this series",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while updating the rating.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
DELETE /user/series-rating/delete/:id
Deletes an existing rating for a specific series on behalf of the authenticated user.
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: rate-series
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Identifier of the series |
200 OK
Returned when the rating is deleted successfully.
{
"data": "Rating deleted successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when the required series identifier is missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when no rating exists for the specified series.
{
"data": "Rating does not exist for this series",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while deleting the rating.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model