> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ghosting.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# Schema BanInfo: status de moderação do perfil

> Documentação do schema BanInfo da API Ghosting. Entenda como a API retorna informações de suspensão via HTTP 200 OK para evitar quebras em bots e integrações.

O schema `BanInfo` contém as informações de moderação de um perfil Ghosting. Diferentemente de muitas APIs, perfis suspensos retornam `HTTP 200 OK` (não 404 ou 403), com `data.status: "suspended"` e `data.banInfo.isBanned: true`. Essa arquitetura evita exceções HTTP que poderiam quebrar bots de Discord e outras integrações automatizadas, além de permitir auditoria transparente do motivo da suspensão.

## Campos do schema BanInfo

<ResponseField name="isBanned" type="boolean" required>
  Indica se o perfil está suspensa. `true` para suspensos, `false` para perfis ativos.
</ResponseField>

<ResponseField name="reason" type="string | null" required>
  Motivo interno da suspensão, ou `null` se o perfil não estiver suspenso.
</ResponseField>

<ResponseField name="message" type="string | null" required>
  Mensagem formatada para exibição pública sobre a suspensão, ou `null` se não houver.
</ResponseField>

<ResponseField name="bannedAt" type="string (ISO 8601) | null" required>
  Data e hora da suspensão no formato ISO 8601, ou `null` se o perfil não estiver suspenso.
</ResponseField>

## Exemplo JSON: perfil suspenso

```json theme={null}
{
  "success": true,
  "data": {
    "username": "usuario_exemplo",
    "displayName": "Usuário Exemplo",
    "bio": "",
    "avatarUrl": "https://ghosting.fun/api/avatar?u=usuario_exemplo",
    "pageUrl": "https://ghosting.fun/p/usuario_exemplo",
    "hasCustomDomain": false,
    "customDomain": null,
    "accountAgeDays": 30,
    "createdAt": "2026-08-07T10:00:00.000Z",
    "views": 150,
    "badges": {
      "isVerified": false,
      "isOfficial": false,
      "isHelper": false,
      "list": []
    },
    "avatarDecoration": null,
    "socials": [],
    "status": "suspended",
    "banInfo": {
      "isBanned": true,
      "reason": "Violação dos termos de serviço",
      "message": "Este perfil foi suspenso por violação dos termos de serviço.",
      "bannedAt": "2026-09-01T14:30:00.000Z"
    }
  },
  "meta": {
    "timestamp": "2026-09-06T18:00:00.000Z",
    "version": "v1",
    "executionTimeMs": 5
  }
}
```

<Note>
  Perfis suspensos sempre retornam `HTTP 200 OK`. Sua aplicação deve verificar `data.status` e `data.banInfo.isBanned` para identificar contas suspensas, em vez de confiar apenas no status HTTP.
</Note>

## Leia mais

<CardGroup cols={2}>
  <Card title="Guia de Moderação" href="/guias/moderacao">
    Entenda a arquitetura de moderação e como lidar com perfis suspensos em integrações.
  </Card>

  <Card title="Schema User" href="/schemas/user">
    Veja o objeto User completo, onde o campo `banInfo` está aninhado.
  </Card>
</CardGroup>
