# Reporting & Moderation Every externally visible surface on DevPlace is reportable through one polymorphic endpoint, and every report lands in one queue with one state machine. The reason list is served by `GET /reports/reasons`, so a native client renders the same dialog the web UI does. DevPlace commits to reviewing every report within the window published on the [content moderation](/docs/content-moderation.html) page. Filing a report always returns an acknowledgement carrying that window. The moderation endpoints under `/admin/moderation` are administrator-only and are subject to the admin seniority rule: a junior administrator cannot action a more senior one. Every endpoint follows the shared [Conventions & Errors](/docs/conventions.html) (auth, content negotiation, pagination, status codes); see [Authentication](/docs/authentication.html) for the four ways to sign requests.
GET /reports/reasons Minimal role: Public

List report reasons

The reason keys a report may be filed under, with their labels.

POST /reports/{target_type}/{target_uid} Minimal role: Member

Report content

File a report against any user-generated surface.

GET /reports/mine Minimal role: Member

List your reports

The reports you filed and the outcome of each.

GET /admin/moderation Minimal role: Admin

The moderation queue

Reported content awaiting a decision, oldest open first.

GET /admin/moderation/{uid} Minimal role: Admin

Read one report

One report with its decisions and the author's history.

POST /admin/moderation/{uid}/status Minimal role: Admin

Set a report status

Move a report through the triage state machine.

POST /admin/moderation/{uid}/decide Minimal role: Admin

Decide a report

Apply a moderation decision and notify the affected user.

POST /admin/users/{uid}/suspend Minimal role: Admin

Suspend an account

Suspend an account for a fixed period with a stated reason.

POST /admin/users/{uid}/lift Minimal role: Admin

Lift a restriction

Clear a suspension or ban and restore the account.

POST /admin/users/{uid}/ban Minimal role: Admin

Ban an account

Permanently close an account and revoke every credential.

GET /auth/accept-terms Minimal role: Member

The terms acceptance page

The Terms of Service version in force and the version this account accepted.

POST /auth/accept-terms Minimal role: Member

Accept the terms

Record acceptance of the Terms of Service version in force.

POST /profile/{username}/mature-content Minimal role: Member

Set the mature-content preference

Show or hide content labelled mature for your own account.

GET /profile/{username}/delete Minimal role: Member

Account deletion page

What deletion removes, what is retained, and the grace window.

POST /profile/{username}/delete Minimal role: Member

Delete your account

Permanently delete your account and personal data.

GET /workspaces/index Minimal role: Public

Published workspace index

Every workspace published to the public ingress, with its link.