GET /reports

Returns a paginated list of user-submitted reports for moderation and review. Each report is enriched with related user and content metadata.

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-report

Query Parameters
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
Enum Values

order

  • added-asc – Oldest reports first
  • added-desc – Newest reports first (default)
Responses
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.

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: create-report

Path Parameters
Parameter Type Required Description
type string Yes Target type of the report
Enum Values

type

  • series
  • volume
Request Body
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
Responses
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.

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-report

Path Parameters
Parameter Type Required Description
type string Yes Target type of the reports
id number Yes Identifier of the reported item
Enum Values

type

  • series
  • volume
Responses
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.

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-report

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the report
type string Yes Target report type
Enum Values

type

  • series
  • volume
Request Body
Field Type Required Default Description
status string Yes New moderation status of the report
note string No null Optional moderator note
Enum Values

status

  • open
  • under-review
  • resolved
  • refused
Responses
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.

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-report

Path Parameters
Parameter Type Required Description
id number Yes Identifier of the report
type string Yes Target report type
Enum Values

type

  • series
  • volume
Responses
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