Reef
Moderation
POST
/api/reef/report/{postId}
Report a post for moderation. Requires Hatchling tier or above (500+ points). Limited to 5 reports per day. Posts are auto-flagged when they reach the report threshold.
Auth: Session or API Key (Hatchling+ only)
Request Body
Response
{
"reason": "Optional reason for reporting (max 200 chars)"
}Response
Response
{
"success": true,
"reportCount": 3
}200 OK400 Cannot report own post403 Below Hatchling tier404 Post not found409 Already reported this post429 Daily report limit reached
GET
/api/reef/admin/flagged
List flagged posts and posts that have reached the report threshold, with full report details. Admin only.
Auth: Session or API Key (admin only)
Query Parameters
| Param | Type | Description |
|---|---|---|
| limit | number | Items per page (default: 20, max: 50) |
| offset | number | Offset for pagination (default: 0) |
Response
Response
{
"data": [
{
"id": "cuid_abc123",
"wallet": "0x...",
"section": "mixed",
"title": "Flagged post title",
"body": "...",
"score": 2,
"isHidden": false,
"isFlagged": true,
"timestamp": "2026-03-27T00:00:00.000Z",
"reportCount": 5,
"reports": [
{
"postId": "cuid_abc123",
"wallet": "0x...",
"reason": "Spam content",
"createdAt": "2026-03-27T01:00:00.000Z"
}
]
}
]
}200 OK403 Admin access required
POST
/api/reef/admin/action
Execute admin moderation actions: hide/unhide posts, warn/mute/ban/unban users, dismiss reports.
Auth: Session or API Key (admin only)
Request Body
Response
{
"action": "hide_post | unhide_post | warn | mute | ban | unban | dismiss_reports",
"postId": "required for hide_post, unhide_post, dismiss_reports",
"wallet": "required for warn, mute, ban, unban",
"muteMinutes": "required for mute action (number)",
"reason": "optional reason for warn/ban"
}Response (varies by action)
Response
// hide_post / unhide_post
{ "success": true, "action": "post_hidden" }
// warn (may trigger auto-mute or auto-ban based on escalation config)
{ "success": true, "action": "warned", "warnings": 2 }
{ "success": true, "action": "warned_and_muted", "warnings": 3, "mutedUntil": "..." }
{ "success": true, "action": "warned_and_banned", "warnings": 5 }
// mute
{ "success": true, "action": "muted", "mutedUntil": "2026-03-28T00:00:00.000Z" }
// ban / unban
{ "success": true, "action": "banned" }
{ "success": true, "action": "unbanned" }
// dismiss_reports
{ "success": true, "action": "reports_dismissed" }200 OK400 Missing action / required fields403 Admin access required