---
title: "Abuse-report triage queue"
method: GET
path: "/abuse-reports"
tags: ["Abuse Reports"]
---

# Abuse-report triage queue

`GET /abuse-reports`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/abuse-reports`
- Auth: `bearer` (a scheme the document does not define)

Admin-only paginated list of abuse reports, newest first, optionally filtered by triage status. Each row carries the matched site’s current status (read live) so the queue shows whether a reported site is already suspended or gone.

## Query parameters

- `status` 'open' | 'resolved' | 'dismissed'
- `page` number
- `pageSize` number

## Response `200`

- APIPaginatedAbuseReportsResponse
  - `data` APIAbuseReport[], required
    - `id` string, required: Report id (UUID).
    - `category` 'phishing' | 'malware' | 'csam' | 'copyright' | 'spam' | 'other', required: Reported abuse category.
    - `reportedUrl` string, required: URL of the offending content, as submitted.
    - `description` string, required: Reporter’s free-text explanation.
    - `reporterEmail` string, nullable, required: Reporter email, when supplied.
    - `reporterName` string, nullable, required: Reporter name, when supplied.
    - `siteId` string, nullable, required: The site the reported URL matched at submit time — null when the URL was not on the public host or matched nothing.
    - `subdomain` string, nullable, required: Write-time snapshot of the matched site’s subdomain.
    - `siteStatus` 'pending' | 'awaiting_verification' | 'live' | 'inactive' | 'suspended', nullable, required: Current status of the matched site — null when the report matched no site or the site has since been deleted.
    - `status` 'open' | 'resolved' | 'dismissed', required: Triage status.
    - `resolvedByUserId` string, nullable, required: Admin who last moved the report out of `open`.
    - `resolvedAt` string, nullable, required: When the report left `open` (ISO 8601).
    - `createdAt` string, required: Submission time (ISO 8601).
  - `page` number, required
  - `pageSize` number, required
  - `total` number, required
  - `totalPages` number, required

## Other responses

- `403`: Admin access required

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
