Handle Appeals
Appeals Overview
Appeals, or opportunities to contest previous moderation decisions, are a crucial part of any content moderation workflow. No content moderation system is perfect, and even with the combined power of automation and human review, there are bound to be mistakes. Widely-recognized trust and safety regulations for online platforms, such as the EU’s Digital Services Act, mandate support for appeals to ensure that users are able to have a say when they feel like a moderation decision involving them is wrong.
To facilitate easy compliance with DSA requirements, Moderation Dashboard supports the entire appeal process for both users and moderators. On this page, we’ll cover how to submit appeals to the dashboard, how moderators can view and act on those appeals in a timely manner, and how to request the status of a particular appeal so that users can view the final decision.
Types of Appeals
Any moderation action can be appealed, whether that be a Rule Action, Review Feed Action, or an action manually taken via the User Content Page. Appeals can be submitted by either the user who’s content or account has been moderated and the user who created a report. In total, there are four distinct types of appeals:
- Post Appeals
- A user appeals a post action that was taken on a post they published
Appeal_context
will have type “post”- Note:
report_id
is absent when creating post appeals
- User Appeals
- A user appeals a user action that was taken on their account
Appeal_context
will have type “user”- Note:
report_id
is absent when creating post appeals
- Reported Post Appeals
- The user who reported a post appeals the decision made on that report
Report_id
will be “post report” type
- Reported User Appeals
- The user who reported another user appeals the decisions made on that report
Report_id
will be “user report” type
Opting-In To Appeals
In order to begin using the Appeals-related features on Moderation Dashboard, navigate to the Appeals Settings section of our Application Settings page. Here, make sure that the Return judgement_id
option is checked. This field is an important part of appeal submissions within the Dashboard. The judgement_id
will be submitted along with each appeal to identify which Action is being appealed.
Submitting an Appeal
Appeal submissions are made in the following format:
https://api.hivemoderation.com/api/v1/appeals/create
Field (* required) | Type | Description |
---|---|---|
judgment_id* | String | Ties action to appeal |
appealer_id* | String | ID of the user that submitted the appeal |
appeal_reason | String | User-submitted blurb about why they are appealing |
url | String | Publicly hosted URL that represents the image for a post. Only required if the post being appealed is past the retention date. For example: Appealing a post that is 4 months old should be submitted with a url since the Dashboard only supports max retention of 1 month. |
text_data | String | Text data to be appealed. Only required if the post being appealed is past the retention date. For example: Appealing a post that is 4 months old should be submitted with text_data since the Dashboard only supports max retention of 1 month. |
metadata | JSON Object | Metadata associated with the appeal |
report_id | String | Optional, if its an appeal from a report |
appeal_categories | Array | Optional array of appeal categories. |
What if there is no
judgement_id
?All actions taken across the platform after [release date] will have a
judgement_id
. The primary method of submitting an appeal involves thisjudgement_id
. For older posts that do not have this field, see below for alternate submission format.
Actions without judgement_id
judgement_id
If the appealed action does not have a judgement_id
or you do not wish to submit it for other reasons, you can use the appeal_context
field instead to provide the necessary data to process the appeal. This format is described below:
https://api.hivemoderation.com/api/v1/appeals/create
Field (* required) | Type | Description |
---|---|---|
appealer_id* | String | ID of the user that submitted the appeal |
appeal_reason | String | User-submitted blurb about why they are appealing |
appeal_context* | JSON Object | Relevant data to be displayed so the appeal can be processed. |
appeal_context.type* | String | Subject of the appeal (either post or user) |
appeal_context.post_id | String | The post_id (*required if appeal_context.user_id is not provided) |
appeal_context.user_id | String | The user_id (*required if appeal_context.post_id is not provided) |
appeal_context.source_post_id | String | Source post ID |
url | String | URL for the image in a post |
text_data | String | Text data for the post |
metadata | JSON Object | Metadata associated with the appeal |
report_id | String | Optional, if its an appeal from a report |
appeal_categories | Array | Optional array of appeal categories |
Get Appeal Status
Every appeal submission will return an appeal_id
. This appeal_id
can be used to retrieve the status of an appeal: in review, overturned, or upheld.
https://api.hivemoderation.com/api/v1/appeals/status
Field (* required) | Type | Description |
---|---|---|
appeal_id* | String | The appeal_id for the appeal you’d like to see the status of |
You’ll get a response containing the current status of the appeal in the following format:
Field | Type | Description |
---|---|---|
appeal_id | String | The appeal_id of the appeal in question |
status | JSON Object | - In Review - Reviewed - Status (overturned, upheld) - action_id - action_name - action_reasons |
original_decision | JSON Object | - action_id - action_name - action_reasons |
Moderating Appeals
Moderators can view all appeals in the Post Appeal feed. For each appeal, they’ll be able to view the post itself, the user’s reason for the appeal, as well as any metadata that was included in the submission. Based on this information, moderators can either decide to uphold the previous moderation decision or overturn it.
Below is a moderator's view of both a Post Appeal and User Appeal, with all metadata and other relevant information displayed beside the post.
Updated 6 months ago