Report-Routes
GET /reports
Returns a paginated list of user-submitted reports for moderation and review. Each report is enriched with related user and content metadata.
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-report
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| order | string | No | added-desc |
Sorting order of reports |
| limit | number | No | MAX_SAFE_INT |
Maximum number of reports to return |
| offset | number | No | 0 |
Number of reports to skip (pagination) |
| search | string | No | undefined |
Search term applied to report content |
order
added-asc– Oldest reports firstadded-desc– Newest reports first (default)
200 OK
Returned when reports are retrieved successfully.
{
"reports": [
{
"id": "number",
"report_type": "series | volume",
"item_id": "number",
"reason": "string",
"timestamp": "string",
"series": {
"name": "string",
"slug": "string"
},
"volume": {
"name": "string",
"slug": "string"
},
"user": {
"id": "number",
"username": "string",
"slug": "string",
"profile_image": "string | null"
},
"reviewed_by": {
"id": "number",
"username": "string",
"slug": "string",
"profile_image": "string | null"
} | null
}
],
"total": "number"
}
Models used
Report Model
User Model
Series Model
Volume Model
POST /reports/add/:type
Creates a new report for a series or volume. This endpoint is used by authenticated users to submit moderation reports.
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: create-report
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Target type of the report |
type
seriesvolume
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| type | string | Yes | — | Report category/type |
| description | string | Yes | — | Detailed description of the issue |
| item_id | number | Yes | — | Identifier of the reported series or volume |
200 OK
Returned when the report is created successfully.
{
"data": "Report added successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing or the report type is invalid.
{
"data": "Required parameters missing | Invalid report type",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the authenticated user cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while creating the report.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
GET /reports/:type/:id
Returns all reports associated with a specific series or volume. This endpoint is primarily used for moderation and review purposes.
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-report
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Target type of the reports |
| id | number | Yes | Identifier of the reported item |
type
seriesvolume
200 OK
Returned when the reports are retrieved successfully.
[
{
"id": "number",
"type": "string",
"description": "string",
"status": "string",
"timestamp": "string",
"user": {
"id": "number",
"slug": "string",
"username": "string"
},
"reviewer": {
"id": "number",
"slug": "string",
"username": "string"
} | null
}
]
Models used
Report Model
User Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
POST /reports/update/:id/:type
Updates the status and moderation note of an existing report. This endpoint is used by moderators to review and resolve reports.
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-report
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Identifier of the report |
| type | string | Yes | Target report type |
type
seriesvolume
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| status | string | Yes | — | New moderation status of the report |
| note | string | No | null |
Optional moderator note |
status
openunder-reviewresolvedrefused
200 OK
Returned when the report is updated successfully.
{
"data": "Report updated successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing or invalid enum values are provided.
{
"data": "Required parameters missing | Invalid report type | Invalid status value",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the authenticated user cannot be found.
{
"data": "User not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while updating the report.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model
DELETE /reports/delete/:id/:type
Deletes an existing report. This endpoint is intended for moderators and administrators to permanently remove reports.
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-report
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Identifier of the report |
| type | string | Yes | Target report type |
type
seriesvolume
200 OK
Returned when the report is deleted successfully.
{
"data": "Report deleted successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing or the report type is invalid.
{
"data": "Required parameters missing | Invalid report type",
"code": 400
}
Models used
Response Model
500 Internal Server Error
Returned when an unexpected error occurs while deleting the report.
{
"data": "Internal server error",
"code": 500
}
Models used
Response Model