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)TypeDescription
judgment_id*StringTies action to appeal
appealer_id*StringID of the user that submitted the appeal
appeal_reasonStringUser-submitted blurb about why they are appealing
urlStringPublicly 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_dataStringText 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.
metadataJSON ObjectMetadata associated with the appeal
report_idStringOptional, if its an appeal from a report
appeal_categoriesArrayOptional 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 this judgement_id. For older posts that do not have this field, see below for alternate submission format.

Actions without 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)TypeDescription
appealer_id*StringID of the user that submitted the appeal
appeal_reasonStringUser-submitted blurb about why they are appealing
appeal_context*JSON ObjectRelevant data to be displayed so the appeal can be processed.
appeal_context.type*StringSubject of the appeal (either post or user)
appeal_context.post_idStringThe post_id (*required if appeal_context.user_id is not provided)
appeal_context.user_idStringThe user_id (*required if appeal_context.post_id is not provided)
appeal_context.source_post_idStringSource post ID
urlStringURL for the image in a post
text_dataStringText data for the post
metadataJSON ObjectMetadata associated with the appeal
report_idStringOptional, if its an appeal from a report
appeal_categoriesArrayOptional 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)TypeDescription
appeal_id*StringThe 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:

FieldTypeDescription
appeal_idStringThe appeal_id of the appeal in question
statusJSON Object- In Review
- Reviewed
- Status (overturned, upheld)
- action_id
- action_name
- action_reasons
original_decisionJSON 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.

An example of a Post Appeal

An example of a Post Appeal

An example of a User Appeal

An example of a User Appeal