Resolve Reports
Overview
Close a pending moderation report by id - either delete the reported message (message_deleted) or dismiss the report without deleting content (dismissed).
On success, the API returns the updated report with status, resolution, resolutionNote, and resolvedAt filled in so the Platform queue can move the row out of pending.
When to use this endpoint?
Use Resolve Reports when:
- A moderator confirms a violation and wants the message removed (
message_deleted). - A report is invalid or already handled and should be closed without deleting the message (
dismissed). - You need to attach an optional note explaining the decision for audit / queue history.
- Clearing a pending item after reviewing it from List Reports.
Part of the client Platform Moderation module. Get reportId from List Reports (data.list[]._id). Mute or ban the sender separately via Mute / Ban endpoints.
Request Fields
{baseUrl}/api/{apiVersion}/client/moderation/reports/:reportId/resolve- Authentication
- Required (Bearer token)
- Tenant-scoped
- Yes (tenant DB - requires x-client-id)
Request Headers
Path Parameters
Request Payload
Delete the message (message_deleted)
Use when the report is valid and the content should be removed. Report status becomes resolved.
{ "resolution": "message_deleted", "note": "Violates content policy"}Dismiss the report (dismissed)
Use when no action on the message is needed. Report status becomes dismissed.
{ "resolution": "dismissed", "note": "Not a policy violation after review"}Success Response (HTTP 200 OK)
Returns the updated report document. In this example resolution is message_deleted, so status is resolved and resolutionNote mirrors the request note. Nested list enrichments (message, messageSender) are not required on this response.
{ "success": true, "message": "Report resolved successfully", "data": { "_id": "6a589bb7cfa34ab66e35b2b3", "messageId": "6a589b97d379191dcf5fadbb", "conversationId": "6a589b96cfa34ab66e35b2ac", "reportedBy": "6a589b96cfa34ab66e35b2aa", "reason": "Offensive language", "status": "resolved", "resolution": "message_deleted", "resolutionNote": "Violates content policy", "resolvedAt": "2026-07-16T08:52:07.173Z", "createdAt": "2026-07-16T08:52:07.003Z", "updatedAt": "2026-07-16T08:52:07.173Z" }, "error": null}Common Errors
Resolve fails when auth is invalid, the report id is missing, or the body is invalid.
HTTP 401 Unauthorized - No token
{ "success": false, "message": "No token, authorization denied", "data": null, "error": "Unauthorized"}HTTP 403 Forbidden - Tenant admin required
{ "success": false, "message": "Access denied: tenant admin privileges required", "data": null, "error": null}HTTP 404 Not Found - Report missing
{ "success": false, "message": "Entity not found", "data": null, "error": "Entity not found"}Best Practices
- Only resolve reports that are still
pendingin the queue UI. - Prefer
message_deletedfor clear policy violations; usedismissedwhen content should remain visible. - Always send a short
noteso audit history explains the decision. - After resolve, refetch List Reports so the inbox status filters update.
- Mute or ban the sender as a separate step when the violation warrants account action.
Report closed
Update the queue from the returned status / resolution, then use Mute/Unmute User or Ban/Unban User if the sender needs further action.