Skip to content

Reports

A safety report tells TEBHOS moderators that a message, a user or a guild broke the rules. Any user account can file one. Reports are reviewed by TEBHOS staff.

Operation Target
Report message One message
Report user One account, optionally with a guild for context
Report guild One guild
Create profile report One account, with free text (used by the profile report dialog)

Access rules

Every route requires a user session; a bot token is rejected with 403 ACCESS_DENIED. No permission is required, and TEBHOS does not check whether the reporter can see the reported content.

Every report is stored against a reported account: the message author for a message report, the reported user for a user report, and the guild owner for a guild report. Submission dispatches no Gateway event.

Categories are not validated by the server

The server stores category as given. Clients should send one of the values listed below, which are the values TEBHOS moderation tools expect.

Not supported on TEBHOS

Anonymous Digital Services Act notices (email verification, tickets) are not implemented; reports require an account. Reports are not deduplicated, and no evidence snapshot of the surrounding conversation is taken.

Report response

Every successful submission returns 201:

{
  "message": "..."
}

message is a human-readable confirmation. No report ID is returned.

Message report categories

Value Description
harassment Harassment or bullying
hate_speech Hate speech
violent_content Violent or graphic content
spam Spam or scam
nsfw_violation Sexual or explicit content
illegal_activity Illegal activity
doxxing Sharing personal information
self_harm Self-harm or suicide
child_safety Child safety concerns
malicious_links Malicious links
impersonation Impersonation
other Other

User report categories

Value Description
harassment Harassment or bullying
hate_speech Hate speech
spam_account Spam account
impersonation Impersonation
underage_user Underage user
inappropriate_profile Inappropriate profile
other Other

Guild report categories

Value Description
harassment Harassment
hate_speech Hate speech
extremist_community Extremist community
illegal_activity Illegal activity
child_safety Child safety concerns
raid_coordination Raid coordination
spam Spam or scam community
malware_distribution Malware distribution
other Other

Report message

POST /reports/message

Reports one message. The message author becomes the reported account.

JSON body

Field Type Description
channel_id snowflake The channel containing the message (stored as context)
message_id snowflake The reported message
category string A message report category
description? string Additional information (at most 2000 characters)

Response

Status Body Condition
201 report response The report was stored
400 error response message_id is not a valid ID, or description is longer than 2000 characters (BAD_REQUEST)
403 error response The caller is a bot (ACCESS_DENIED)
404 error response The message does not exist (NOT_FOUND)

Example

curl -X POST "https://tebhos.com/api/v1/reports/message" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel_id":"1489002177550843905","message_id":"1501314428688998190","category":"spam"}'

Report user

POST /reports/user

Reports an account.

JSON body

Field Type Description
user_id snowflake The reported user
category string A user report category
guild_id? snowflake The guild in which the conduct happened
description? string Additional information (at most 2000 characters)

Response

Status Body Condition
201 report response The report was stored
400 error response user_id is not a valid ID, or description is too long (BAD_REQUEST)
403 error response The caller is a bot (ACCESS_DENIED)
404 error response The user does not exist (NOT_FOUND)

Report guild

POST /reports/guild

Reports a guild. The guild owner becomes the reported account.

JSON body

Field Type Description
guild_id snowflake The reported guild
category string A guild report category
invite_code? string The invite through which the reporter found the guild

Response

Status Body Condition
201 report response The report was stored
400 error response guild_id is not a valid ID (BAD_REQUEST)
403 error response The caller is a bot (ACCESS_DENIED)
404 error response The guild does not exist (NOT_FOUND)

Create profile report

POST /reports

A general report against an account, used by the TEBHOS profile report dialog.

JSON body

Field Type Description
reported_profile_id snowflake The reported user
category string 1-50 characters. The profile dialog sends spam, harassment, hate_speech, impersonation or other
description? string Additional information (at most 2000 characters)
targets? array[string] Parts of the profile being reported, for example photo, name, bio, tag. Accepted but not currently stored
attachment_url? string A supporting image URL. Accepted but not currently stored

Response

Status Body Condition
201 report response The report was stored
400 error response category or description has an invalid length (INVALID_FORM_BODY), or reported_profile_id is not a valid ID (BAD_REQUEST)
403 error response The caller is a bot (ACCESS_DENIED)

Rate limit

All four routes share one bucket: 10 reports per hour per user, on the report bucket.