Denúncias
Uma denúncia de segurança avisa os moderadores que uma mensagem, um usuário ou uma guilda quebrou as regras, e qualquer conta de usuário pode registrar uma. Os avisos da Lei dos Serviços Digitais (DSA - Digital Services Act) não precisam de uma conta, apenas de um endereço de e-mail verificado. A API de Denúncias do Administrador abrange a leitura, triagem e fechamento de uma denúncia armazenada.
| Operação | Credencial | Alvo |
|---|---|---|
| Denunciar mensagem | Sessão do usuário | Uma mensagem que o denunciante possa ler |
| Denunciar usuário | Sessão do usuário | Uma conta, opcionalmente com uma guilda para contexto |
| Denunciar guilda | Sessão do usuário | Uma guilda que o denunciante possa alcançar |
| Enviar e-mail de denúncia DSA | Nenhuma | Um endereço de e-mail para verificar |
| Verificar e-mail de denúncia DSA | Nenhuma | Um código de verificação, trocado por um ticket |
| Criar denúncia DSA | Um ticket | Uma mensagem, usuário ou guilda |
O Decoding Chat descarta um membro de corpo que nenhum esquema aqui defina, então um membro escrito incorretamente é ignorado sem erro. Um corpo que não é JSON analisável retorna 400 INVALID_FORM_BODY com o código de validação INVALID_FORMAT no caminho body.
Regras de acesso
Seção intitulada “Regras de acesso”Denunciar mensagem, Denunciar usuário, e Denunciar guilda aceitam apenas um token de sessão de usuário. Um token de bot e uma credencial OAuth2 bearer são ambos rejeitados com 403 ACCESS_DENIED. A conta também deve ser reivindicada e ter o e-mail verificado. Uma conta que não tem senha e não possui identidade SSO é rejeitada com 400 UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS, e uma conta cujo endereço não foi verificado com 403 REPORT_EMAIL_VERIFICATION_REQUIRED. Uma conta com a flag de banimento de denúncias é rejeitada com 403 REPORT_BANNED.
As rotas da Lei dos Serviços Digitais não exigem credencial. O Decoding Chat ainda assim resolve uma credencial válida apresentada, para que a solicitação consuma a cota de limite de taxa daquela conta.
Cada bucket de rota é chaveado pelo ID do usuário autenticado quando uma credencial é resolvida e pelo endereço IP do cliente caso contrário. A criação de denúncias também limita quantas denúncias um denunciante cria a cada hora. A seção de limite de taxa de cada rota que cria uma denúncia lista esses limites.
Triagem de conteúdo
Seção intitulada “Triagem de conteúdo”O filtro de conteúdo de toda a instância examina o corpo JSON de Denunciar mensagem, Denunciar usuário, Denunciar guilda e Criar denúncia DSA antes da rota ser executada. Uma string de pelo menos 3 caracteres correspondente à lista de bloqueio de frases da instância, ou uma URL correspondente à lista de bloqueio de URLs da instância, é rejeitada com 403 CONTENT_BLOCKED. Os membros ticket, channel_id, message_id, user_id e guild_id estão isentos, assim como qualquer valor com menos de 3 caracteres.
Efeitos colaterais de envio
Seção intitulada “Efeitos colaterais de envio”Todo envio aceito grava uma denúncia e a retorna como um objeto de denúncia. Apenas Denunciar mensagem recusa repetições, retornando 409 CONFLICT quando o mesmo denunciante denuncia a mesma mensagem duas vezes. Todo pedido aceito de Denunciar usuário e Denunciar guilda grava uma nova denúncia, e nada deduplica um envio repetido. O envio não emite um Despacho de Gateway.
Objeto de denúncia
Seção intitulada “Objeto de denúncia”O Decoding Chat retorna este recibo quando registra um envio.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| report_id | snowflake | O snowflake que identifica esta denúncia |
| status1 | string | Status da denúncia |
| reported_at2 | Timestamp ISO8601 | A hora em que a linha da denúncia foi escrita |
1 Sempre pending
2 Para um aviso da Lei dos Serviços Digitais (DSA), esta é a hora em que o aviso foi registrado, mesmo quando seu código de verificação foi emitido muito antes
Exemplo
Seção intitulada “Exemplo”{ "report_id": "1501314428688998182", "status": "pending", "reported_at": "2026-08-04T11:22:19.000Z"}Objeto de sucesso
Seção intitulada “Objeto de sucesso”O reconhecimento fixo retornado por Enviar e-mail de denúncia DSA.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| ok | boolean | Sempre verdadeiro (true), porque uma falha é relatada como um status de erro |
Exemplo
Seção intitulada “Exemplo”{ "ok": true}Objeto ticket
Seção intitulada “Objeto ticket”A única credencial que Criar denúncia DSA aceita. O Decoding Chat vincula o ticket ao endereço verificado para o qual foi emitido, e esse endereço se torna a identidade do denunciante no aviso resultante.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| ticket1 | string | A credencial opaca que Criar denúncia DSA consome |
1 64 caracteres hexadecimais em letras minúsculas codificando 32 bytes aleatórios, válidos por uma hora após a verificação e consumidos pelo primeiro Criar denúncia DSA que grava um aviso com ele
Exemplo
Seção intitulada “Exemplo”{ "ticket": "6b1f0a92c73d4e58a0b1c2d3e4f5061728394a5b6c7d8e9f0a1b2c3d4e5f6071"}Valores de status da denúncia
Seção intitulada “Valores de status da denúncia”| Valor | Descrição |
|---|---|
| pending | A denúncia foi registrada e nenhuma decisão de moderador existe ainda |
| resolved | Um moderador encerrou a denúncia |
| unknown | O status armazenado não é nenhum dos dois valores acima |
Apenas pending e resolved são armazenados. Um cliente DEVE, ainda assim, tolerar um status que não reconhece.
Categorias de denúncia de mensagem
Seção intitulada “Categorias de denúncia de mensagem”Uma denúncia de mensagem e a variante message de um aviso da Lei dos Serviços Digitais (DSA) retiram sua category deste registro. Um valor fora dele retorna 400 INVALID_FORM_BODY.
| Valor | Descrição |
|---|---|
| harassment | Conteúdo que assedia, intimida ou pratica bullying contra usuários |
| hate_speech | Conteúdo promovendo ódio contra grupos protegidos |
| violent_content | Conteúdo representando ou promovendo violência |
| spam | Mensagens em massa não solicitadas ou conteúdo promocional |
| nsfw_violation | Conteúdo adulto postado fora de canais com restrição de idade |
| illegal_activity | Conteúdo promovendo ou facilitando atividades ilegais |
| doxxing | Conteúdo revelando informações pessoais privadas |
| self_harm | Conteúdo promovendo automutilação ou suicídio |
| child_safety | Conteúdo que coloca menores em perigo ou retrata abuso infantil |
| malicious_links | Links para malware, phishing ou outros sites maliciosos |
| impersonation | Conteúdo alegando falsamente ser outra pessoa ou entidade |
| other | Outras violações não cobertas por categorias específicas |
Categorias de denúncia de usuário
Seção intitulada “Categorias de denúncia de usuário”Uma denúncia de usuário e a variante user de um aviso da Lei dos Serviços Digitais (DSA) retiram sua category deste registro. Um valor fora dele retorna 400 INVALID_FORM_BODY.
| Valor | Descrição |
|---|---|
| harassment | O usuário pratica assédio, bullying ou intimidação |
| hate_speech | O usuário promove ódio contra grupos protegidos |
| spam_account | Conta usada para spam ou mensagens em massa |
| impersonation | O usuário afirma falsamente ser outra pessoa ou entidade |
| underage_user | O usuário parece ter idade inferior à mínima exigida |
| inappropriate_profile | O perfil contém conteúdo inadequado ou ofensivo |
| other | Outras violações não cobertas por categorias específicas |
Categorias de denúncia de guilda
Seção intitulada “Categorias de denúncia de guilda”Uma denúncia de guilda e a variante guild de um aviso da Lei dos Serviços Digitais (DSA) retiram sua category deste registro. Um valor fora dele retorna 400 INVALID_FORM_BODY.
| Valor | Descrição |
|---|---|
| harassment | A guilda facilita assédio, bullying ou intimidação |
| hate_speech | A guilda promove ódio contra grupos protegidos |
| extremist_community | A guilda promove ideologias extremistas ou terroristas |
| illegal_activity | A guilda promove ou facilita atividades ilegais |
| child_safety | A guilda coloca menores em perigo ou hospeda conteúdo de abuso infantil |
| raid_coordination | A guilda coordena ataques a outras comunidades |
| spam | A guilda é usada para spam ou mensagens em massa |
| malware_distribution | A guilda distribui malware ou software malicioso |
| other | Outras violações não cobertas por categorias específicas |
Códigos de países da UE
Seção intitulada “Códigos de países da UE”Nenhuma configuração de instância altera este registro. Um valor fora dele retorna 400 INVALID_FORM_BODY.
| Valor | Descrição |
|---|---|
| AT | Áustria |
| BE | Bélgica |
| BG | Bulgária |
| HR | Croácia |
| CY | Chipre |
| CZ | Chéquia |
| DK | Dinamarca |
| EE | Estônia |
| FI | Finlândia |
| FR | França |
| DE | Alemanha |
| GR | Grécia |
| HU | Hungria |
| IE | Irlanda |
| IT | Itália |
| LV | Letônia |
| LT | Lituânia |
| LU | Luxemburgo |
| MT | Malta |
| NL | Países Baixos |
| PL | Polônia |
| PT | Portugal |
| RO | Romênia |
| SK | Eslováquia |
| SI | Eslovênia |
| ES | Espanha |
| SE | Suécia |
Denunciar mensagem
Seção intitulada “Denunciar mensagem”POST/v1/reports/messageCria e retorna um objeto de denúncia para uma mensagem que o denunciante possa ler no momento.
Limitações
Seção intitulada “Limitações”- O denunciante deve conseguir abrir o canal onde se encontra a mensagem e lê-la.
- Um denunciante que seja o autor da mensagem recebe 400
CANNOT_REPORT_OWN_MESSAGE. - Um canal que não existe e uma mensagem direta na qual o denunciante não seja destinatário retornam 404
UNKNOWN_CHANNEL. - Um não-membro e um membro sem VIEW_CHANNEL retornam 403
MISSING_PERMISSIONS. - Um canal de guilda com restrição de idade retorna 403
NSFW_CONTENT_AGE_RESTRICTEDpara uma conta que não teve a idade verificada. - Uma mensagem não armazenada em
channel_id, uma mensagem sem autor ou qualquer mensagem que um denunciante sem READ_MESSAGE_HISTORY não possa alcançar retornam 404UNKNOWN_MESSAGE. - Um autor cuja conta não existe mais retorna 404
UNKNOWN_USER.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| channel_id | snowflake | O ID do canal que contém a mensagem denunciada |
| message_id | snowflake | O ID da mensagem denunciada |
| category | string | Categoria de denúncia de mensagem |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de denúncia | A denúncia foi criada |
| 400 | resposta de erro | A conta não foi reivindicada e a requisição retorna UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS, ou o denunciante é o autor da mensagem e a requisição retorna CANNOT_REPORT_OWN_MESSAGE |
| 403 | resposta de erro | Uma string no corpo foi bloqueada e a requisição retorna CONTENT_BLOCKED |
| 403 | resposta de erro | A credencial é um token de bot ou OAuth2 bearer e a requisição retorna ACCESS_DENIED |
| 403 | resposta de erro | A conta possui uma ação pendente necessária e a requisição retorna ACCOUNT_SUSPICIOUS_ACTIVITY |
| 403 | resposta de erro | O e-mail não é verificado e a requisição retorna REPORT_EMAIL_VERIFICATION_REQUIRED |
| 403 | resposta de erro | A conta foi banida de fazer denúncias e a requisição retorna REPORT_BANNED |
| 403 | resposta de erro | O denunciante não é membro da guilda ou não possui VIEW_CHANNEL e a requisição retorna MISSING_PERMISSIONS |
| 403 | resposta de erro | O canal tem restrição de idade e a requisição retorna NSFW_CONTENT_AGE_RESTRICTED |
| 404 | resposta de erro | O canal, a mensagem ou o autor da mensagem não é visível para o denunciante |
| 4091 | resposta de erro | O denunciante já denunciou esta mensagem, retornando CONFLICT |
1 O denunciante, o canal e a mensagem formam uma chave de envio permanente. Uma segunda denúncia da mesma mensagem pelo mesmo denunciante é recusada, não importando quanto tempo passou e independentemente de qual categoria informe
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação grava uma denúncia com um instantâneo congelado das evidências. O instantâneo registra o ID e o e-mail da conta do denunciante, a identidade e o hash de avatar do autor da mensagem, a identidade da guilda e do canal e o estado de aviso de conteúdo e flag NSFW da guilda e do canal.
O instantâneo também grava uma janela de conversa de até 25 mensagens antes da mensagem denunciada, a própria mensagem denunciada e até 25 mensagens depois dela. Cada mensagem de contexto registra a identidade de seu autor, o conteúdo, carimbos de data/hora, tipo, flags, menções, embeds e itens de adesivos, e cada anexo é copiado byte por byte. Uma mensagem de contexto cujo autor não existe mais é retirada da janela e um anexo cuja cópia falhar é descartado sem fazer a requisição falhar. Quando o denunciante não tem READ_MESSAGE_HISTORY, a janela retém apenas as mensagens criadas no ou após o limite de histórico da guilda e não retém nenhuma mensagem quando a guilda não define nenhum limite.
Limite de taxa
Seção intitulada “Limite de taxa”10 requisições por hora, no bucket report:create, que é compartilhado com Denunciar usuário e Denunciar guilda.
Cotas extras se aplicam, cada uma calculada por um período de uma hora:
- Um denunciante cria no máximo 5 denúncias em todos os tipos de denúncias.
- Um denunciante cria no máximo 3 denúncias de mensagens em um canal.
- Uma mensagem recebe no máximo 20 denúncias no total de todos os denunciantes.
- Quando a mensagem denunciada está em uma guilda, um denunciante cria no máximo 4 denúncias de mensagens nessa guilda.
Um envio duplicado retorna 409 CONFLICT antes que qualquer uma dessas cotas seja consumida.
Denunciar usuário
Seção intitulada “Denunciar usuário”POST/v1/reports/userCria e retorna um objeto de denúncia para outro usuário, observando opcionalmente a guilda na qual a conduta ocorreu.
Limitações
Seção intitulada “Limitações”- Um denunciante informando a própria conta recebe 400
CANNOT_REPORT_YOURSELF. - Um
user_idque não se resolve para nenhuma conta retorna 404UNKNOWN_USER. - Um
guild_idque não se resolve para nenhuma guilda retorna 404UNKNOWN_GUILD.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID do usuário denunciado |
| category | string | Categoria de denúncia de usuário |
| guild_id? | snowflake | O ID da guilda em que ocorreu a conduta denunciada |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de denúncia | A denúncia foi criada |
| 400 | resposta de erro | A conta não foi reivindicada e a requisição retorna UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS, ou o denunciante é o usuário denunciado e a requisição retorna CANNOT_REPORT_YOURSELF |
| 403 | resposta de erro | Uma string no corpo foi bloqueada e a requisição retorna CONTENT_BLOCKED |
| 403 | resposta de erro | A credencial é um token de bot ou OAuth2 bearer e a requisição retorna ACCESS_DENIED |
| 403 | resposta de erro | A conta possui uma ação pendente necessária e a requisição retorna ACCOUNT_SUSPICIOUS_ACTIVITY |
| 403 | resposta de erro | O e-mail não é verificado e a requisição retorna REPORT_EMAIL_VERIFICATION_REQUIRED |
| 403 | resposta de erro | A conta foi banida de fazer denúncias e a requisição retorna REPORT_BANNED |
| 404 | resposta de erro | O usuário denunciado não existe e a requisição retorna UNKNOWN_USER |
| 404 | resposta de erro | O guild_id fornecido não existe e a requisição retorna UNKNOWN_GUILD |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação grava uma denúncia. Ela registra o ID da conta do denunciante e o e-mail e o ID do usuário denunciado e seu hash de avatar. Um guild_id fornecido adiciona o ID, nome, hash de ícone, flag NSFW e o estado de aviso de conteúdo da guilda. Nenhuma evidência de mensagem é capturada e nenhum byte de mídia é copiado.
Limite de taxa
Seção intitulada “Limite de taxa”10 requisições por hora, no bucket report:create, que é compartilhado com Denunciar mensagem e Denunciar guilda.
Um denunciante cria no máximo 5 denúncias por hora em todos os tipos de denúncias.
Denunciar guilda
Seção intitulada “Denunciar guilda”POST/v1/reports/guildCria e retorna um objeto de denúncia para uma guilda.
Limitações
Seção intitulada “Limitações”- Um
guild_idque não se resolve para nenhuma guilda retorna 404UNKNOWN_GUILD. - O dono da guilda denunciando a própria guilda retorna 400
CANNOT_REPORT_OWN_GUILD.
O Decoding Chat estabelece acesso à guilda de uma das seguintes maneiras, tentadas na ordem:
- Um membro atual não precisa de nada a mais.
- Qualquer denunciante pode denunciar uma guilda com a funcionalidade DISCOVERABLE.
- Qualquer outro denunciante fornece um
invite_codepara um convite que aponta exatamente para essa guilda.
Um denunciante que não satisfaça a nenhuma delas retorna 403 CANNOT_REPORT_GUILD.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| guild_id | snowflake | O ID da guilda denunciada |
| category | string | Categoria de denúncia de guilda |
| invite_code?1 | string | Código do convite provando acesso à guilda (1-64 caracteres) |
1 Lido apenas depois que a verificação do membro e a verificação DISCOVERABLE falham
Esta rota lê o código simples e não aceita a URL do convite. Um código que não se resolve para nenhum convite, ou a um convite para outra guilda, retorna 403 CANNOT_REPORT_GUILD, não um 404.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de denúncia | A denúncia foi criada |
| 400 | resposta de erro | A conta não foi reivindicada e a requisição retorna UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS, ou o denunciante é o proprietário da guilda e a requisição retorna CANNOT_REPORT_OWN_GUILD |
| 403 | resposta de erro | Uma string no corpo foi bloqueada e a requisição retorna CONTENT_BLOCKED |
| 403 | resposta de erro | A credencial é um token de bot ou OAuth2 bearer e a requisição retorna ACCESS_DENIED |
| 403 | resposta de erro | A conta possui uma ação pendente necessária e a requisição retorna ACCOUNT_SUSPICIOUS_ACTIVITY |
| 403 | resposta de erro | O e-mail não é verificado e a requisição retorna REPORT_EMAIL_VERIFICATION_REQUIRED |
| 403 | resposta de erro | A conta foi banida de fazer denúncias e a requisição retorna REPORT_BANNED |
| 403 | resposta de erro | O acesso à guilda não pode ser estabelecido e a requisição retorna CANNOT_REPORT_GUILD |
| 404 | resposta de erro | A guilda denunciada não existe e a requisição retorna UNKNOWN_GUILD |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação grava uma denúncia. Ela registra o ID da conta do denunciante e o e-mail, o ID, nome, hash do ícone, flag NSFW, e o estado de aviso de conteúdo da guilda, e o código do convite quando fornecido. Nenhuma evidência de mensagem é capturada e nenhum byte de mídia é copiado.
Limite de taxa
Seção intitulada “Limite de taxa”10 requisições por hora, no bucket report:create, que é compartilhado com Denunciar mensagem e Denunciar usuário.
Um denunciante cria no máximo 5 denúncias por hora em todos os tipos de denúncias.
Enviar e-mail de denúncia DSA
Seção intitulada “Enviar e-mail de denúncia DSA”POST/v1/reports/dsa/email/sendEmite um código de verificação do Digital Services Act para um endereço de e-mail e retorna um objeto de sucesso.
O endereço deve ser entregável. Um domínio sem registro MX, A ou AAAA retorna 400 INVALID_FORM_BODY com INVALID_EMAIL_ADDRESS no campo email. Uma falha temporária no DNS não rejeita o endereço.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| email1 | string | O endereço que recebe o código de verificação (1-254 caracteres) |
1 Cortado (trimmed) e convertido em minúsculas antes do uso, de modo que duas grafias que diferem apenas nas maiúsculas/minúsculas endereçam o mesmo registro de verificação
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de sucesso | O código foi gerado e entregue ao provedor de e-mail |
| 400 | resposta de erro | O endereço falhou na validação ou seu domínio não publica nenhum registro DNS de e-mail utilizável, e a requisição retorna INVALID_FORM_BODY |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”O código expira após 10 minutos. O envio de um novo código para o mesmo endereço substitui o código anterior e reinicia a contagem desse período. Os códigos usam letras maiúsculas e números no formato XXXX-XXXX.
A operação não cria ticket nem emite Despacho do Gateway.
Limite de taxa
Seção intitulada “Limite de taxa”5 requisições por hora, no bucket dsa:report:email:send.
Verificar e-mail de denúncia DSA
Seção intitulada “Verificar e-mail de denúncia DSA”POST/v1/reports/dsa/email/verifyConsome um código de verificação e retorna o objeto ticket exigido por Criar denúncia DSA.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| email1 | string | O endereço que recebeu o código de verificação (1-254 caracteres) |
| code | string | O código de nove caracteres no formato XXXX-XXXX, usando letras maiúsculas e números |
1 Cortado (trimmed) e convertido em minúsculas antes que o registro de verificação seja consultado, exatamente como Enviar e-mail de denúncia DSA o normaliza
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto ticket | O código correspondeu ao registro de verificação não expirado para o endereço |
| 4001 | resposta de erro | O endereço ou o código falharam na validação ou nenhum registro não expirado correspondeu, retornando INVALID_DSA_VERIFICATION_CODE |
1 Um endereço sem um registro de verificação, um registro expirado e um código incorreto todos produzem o mesmo código de erro. Um endereço ou código com formato incorreto falha na validação de esquema e retorna 400 INVALID_FORM_BODY.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação exclui o registro de verificação e grava um ticket que expira em uma hora. O Decoding Chat exclui o registro apenas no caso de sucesso, logo, um palpite errado deixa o código pendente e disponível para uso até expirar. A operação não emite um Despacho de Gateway.
Limite de taxa
Seção intitulada “Limite de taxa”10 requisições por hora, no bucket dsa:report:email:verify.
Criar denúncia DSA
Seção intitulada “Criar denúncia DSA”POST/v1/reports/dsaConsome um ticket, arquiva o aviso e retorna um objeto de denúncia.
report_type escolhe quais campos adicionais o corpo tem, e category provém do registro que a ele corresponde.
Um ticket que é desconhecido ou ultrapassou o seu prazo de validade de uma hora retorna 400 INVALID_DSA_TICKET. O ticket é consumido quando o aviso é gravado, portanto, um aviso que seja rejeitado ou de taxa limitada deixa o ticket disponível para uso. Nada deduplica um aviso repetido.
Corpo JSON
Seção intitulada “Corpo JSON”Campos comuns
Seção intitulada “Campos comuns”| Campo | Tipo | Descrição |
|---|---|---|
| ticket | string | O ticket retornado por Verificar e-mail de denúncia DSA (1-128 caracteres) |
| report_type | string | O discriminador que seleciona a variante, podendo ser message, user ou guild |
| category | string | A categoria correspondente a report_type, proveniente do registro de mensagem, usuário ou guilda |
| additional_info? | string | O contexto em texto livre fornecido pelo denunciante (0-1000 caracteres) |
| reporter_full_legal_name | string | O nome legal completo da pessoa arquivando o aviso (1-160 caracteres) |
| reporter_country_of_residence | string | O código de país da UE de residência do denunciante |
| reporter_fluxer_tag?1 | string | A própria tag do denunciante no formato username#1234 (3-37 caracteres) |
1 Validada na forma e depois descartada, por isso o Decoding Chat nunca a resolve para uma conta e nenhum moderador a vê
Campos de mensagem
Seção intitulada “Campos de mensagem”| Campo | Tipo | Descrição |
|---|---|---|
| message_link1 | string | O link para a mensagem denunciada (1-2048 caracteres) |
| reported_user_tag?2 | string | A tag do autor da mensagem no formato username#1234 (3-37 caracteres) |
1 Analisado como uma URL absoluta cujo caminho é /channels/<guild_id>/<channel_id>/<message_id>. O Decoding Chat ignora a origem e o segmento da guilda e lê apenas os segmentos de canal e mensagem
2 Quando fornecido, resolve exatamente para a conta do autor da mensagem conectada pelo link. Uma incompatibilidade retorna 400 INVALID_DSA_REPORT_TARGET, e uma tag que não resolve em nenhuma conta retorna 404 UNKNOWN_USER
Um valor que não é uma URL absoluta, cujo caminho contenha menos de quatro segmentos, cujo primeiro segmento não seja channels, ou cujo terceiro ou quarto segmento não seja um snowflake em decimal, retorna 404 UNKNOWN_MESSAGE.
Campos de usuário
Seção intitulada “Campos de usuário”| Campo | Tipo | Descrição |
|---|---|---|
| user_id?1 | snowflake | O ID do usuário denunciado |
| user_tag?1 | string | A tag do usuário denunciado no formato username#1234 (3-37 caracteres) |
1 Forneça ao menos um dos dois. Um corpo que não fornece nenhum deles retorna 400 INVALID_FORM_BODY, e um ID ou tag que não se resolve para nenhuma conta retorna 404 UNKNOWN_USER
Quando ambos são fornecidos, devem resolver para a mesma conta. Uma incompatibilidade retorna 400 INVALID_DSA_REPORT_TARGET.
Campos de guilda
Seção intitulada “Campos de guilda”| Campo | Tipo | Descrição |
|---|---|---|
| guild_id | snowflake | O ID da guilda denunciada |
| invite_code?1 | string | Código de convite ou URL de convite para a guilda denunciada (1-64 caracteres) |
1 Esta variante não verifica o acesso à guilda, então o código nunca é necessário. Quando fornecido, é reduzido ao seu segmento final separado por /, e uma URL de convite completa é aceita
Um código desconhecido retorna 404 UNKNOWN_INVITE. Um código que resolve para um convite de outro tipo, ou a um convite para outra guilda, retorna 400 INVALID_DSA_REPORT_TARGET.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de denúncia | O aviso foi registrado |
| 400 | resposta de erro | O ticket é desconhecido ou está expirado e a requisição retorna INVALID_DSA_TICKET, ou a tag ou o código de convite fornecido está malformado ou não corresponde ao autor da mensagem denunciada, usuário ou guilda, e a requisição retorna INVALID_DSA_REPORT_TARGET |
| 403 | resposta de erro | Uma string no corpo foi bloqueada pela moderação de conteúdo e a requisição retorna CONTENT_BLOCKED |
| 404 | resposta de erro | O canal, a mensagem, o usuário, a guilda ou o convite referenciados não existem |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação resolve o alvo, exclui o ticket e grava uma denúncia sob um snowflake recém-gerado. O aviso de uma mensagem captura a mesma janela de conversa que o Denunciar mensagem, incluindo a cópia em byte de cada anexo, e não aplica filtragem de permissão sobre ela. O aviso de um usuário registra o ID do usuário denunciado e seu hash de avatar e mais nada sobre o alvo. Um aviso sobre uma guilda registra o ID da guilda, o nome, o hash de ícone, a flag NSFW, o estado de aviso de conteúdo e o código de convite higienizado (sanitised) quando fornecido.
Todo aviso também registra o additional_info, o nome legal do denunciante, o país de residência e o endereço verificado por trás do ticket. Um aviso não tem ID de conta mesmo se a requisição apresentar uma credencial e ele descarta reporter_fluxer_tag.
Limite de taxa
Seção intitulada “Limite de taxa”5 requisições por hora, no bucket dsa:report:create. O endereço verificado por trás do ticket arquiva no máximo 5 denúncias por hora.

