Admin reports feed
Reports
Admin reports feed
List user-submitted abuse reports for moderation, each embedding the immutable transcript snapshot plus reporter + accused summaries.
GET
Admin reports feed
Overview
The moderation feed of user-submitted abuse reports. Defaults tostatus=OPEN (the unresolved state). Each row embeds the immutable transcript snapshot captured at report time so the moderator sees exactly what the reporter saw, plus reporter and accused user summaries. Available to any admin role — read-only.
The moderation actions (dismiss / warn / ban-from-report) are deferred to Phase 7. Phase 6 ships the read-only feed only. To act on a report today, use ban user against the accused.
Authentication
Bearer <accessToken> with scope: 'admin' required (requireAdmin).
Path parameters
None.Query parameters
| Name | Type | Required | Notes | Example |
|---|---|---|---|---|
status | enum | no | OPEN (default), DISMISSED, WARNED, BANNED. | OPEN |
cursor | string | no | Opaque base64url pagination cursor, 1..512 chars. | eyJjcmVhdGVkQXQ… |
limit | integer | no | Page size, 1..100. Default 25. | 50 |
Request body
None.Response — 200 OK
| Field | Type | Notes |
|---|---|---|
items | array | Array of report rows (below). |
nextCursor | string | null | Cursor for the next page, or null on the last page. |
Report row
| Field | Type | Notes |
|---|---|---|
id | string | Report ObjectId. |
reporterId | string | User who filed the report. |
accusedId | string | User being reported. |
conversationId | string | null | The conversation the report relates to, or null. |
messageId | string | null | The specific message reported, or null. |
reason | enum | HARASSMENT | SCAM | INCORRECT_PROPERTY | OTHER. |
freeText | string | null | Reporter’s free-text note, or null. |
transcriptSnapshot | array | Immutable list of { senderId, text, sentAt } captured at report time. |
status | enum | OPEN | DISMISSED | WARNED | BANNED. |
resolvedBy | string | null | Admin id who resolved it (Phase 7), or null. |
resolvedAt | string | null | ISO timestamp of resolution, or null. |
createdAt | string | ISO timestamp. |
reporter | object | null | { id, email, firstName, lastName }, or null. |
accused | object | null | { id, email, firstName, lastName }, or null. |
Error responses
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_FAILED | limit out of 1..100 or status unknown. |
| 401 | UNAUTHENTICATED | Missing, malformed, expired, or non-admin-scope token. |
See also
- Ban user — the current way to act on an accused user.
- Report user — the user-facing endpoint that creates these rows.
curl
Postman
Seedocs/postman/swappr.postman_collection.json → Admin Reports → List.