Skip to main content
A API pública do Ghosting adota uma arquitetura de 100% de consulta: perfis suspensos pela moderação não retornam 403 Forbidden. Em vez disso, respondem com HTTP 200 OK e trazem o status de suspensão dentro do próprio payload. Este guia explica o motivo desse design e mostra como sua integração deve tratar contas suspensas.

Como funciona

Quando um perfil está suspenso:
  1. A API responde com HTTP 200 OK.
  2. O objeto data mantém status: "suspended".
  3. O bloco banInfo vem preenchido com isBanned: true, o reason detalhado e o horário bannedAt.
Nunca dependa apenas do status HTTP para decidir se um perfil está ativo. Verifique também data.status e data.banInfo.isBanned antes de exibir informações do perfil.

Por que HTTP 200 em vez de 403?

Evita quebras em bots

Bots do Discord e scripts automatizados não disparam UnhandledPromiseRejection ou HTTPError ao consultar perfis suspensos.

Auditoria transparente

Servidores podem verificar suspensões por fraude e informar o motivo de forma elegante no canal, sem tratamento especial de erros.

Exemplo de resposta para perfil suspenso

Tratamento correto no cliente

Use o campo banInfo.message, que já vem formatado, quando quiser exibir a razão da suspensão diretamente para o usuário final.

Perfis não encontrados

Se o usuário não existir na plataforma, a resposta será HTTP 404 com error.code: "USER_NOT_FOUND". Isso é diferente de uma suspensão: um perfil suspenso ainda existe, apenas não está acessível publicamente. Veja Status codes para todos os cenários de erro.

Próximos passos

Schema BanInfo

Estrutura completa do objeto de moderação.

Bot Discord

Implementação prática com tratamento de suspensão.