> ## 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.

# GET /api/v1/users/:username · Consultar perfil

> Consulte perfis de usuários na API Ghosting pelo nome de usuário. Retorna dados públicos, badges, redes sociais e informações de status, incluindo contas suspensas.

Este endpoint retorna os dados públicos de um perfil Ghosting a partir do nome de usuário. A API não exige autenticação, então você pode consultar qualquer perfil ativo ou suspenso diretamente. Perfis suspensos retornam `HTTP 200 OK` com `status: "suspended"`, o que facilita auditorias e evita quebras em integrações automatizadas.

## URL

```text theme={null}
GET https://ghosting.fun/api/v1/users/:username
```

Você também pode usar o alias:

```text theme={null}
GET https://ghosting.fun/ghosting-api/v1/users/:username
```

Ou a alternativa por query string:

```text theme={null}
GET https://ghosting.fun/api/v1/users?username=:username
```

## Parâmetros

<ParamField path="username" type="string" required>
  Nome de usuário do perfil, sem o caractere `@`. O valor é case-insensitive (não diferencia maiúsculas de minúsculas).
</ParamField>

## Headers de resposta

A resposta inclui os seguintes headers públicos:

| Header                         | Valor                                            |
| ------------------------------ | ------------------------------------------------ |
| `Content-Type`                 | `application/json; charset=utf-8`                |
| `Access-Control-Allow-Origin`  | `*`                                              |
| `Access-Control-Allow-Methods` | `GET, OPTIONS`                                   |
| `Cache-Control`                | `public, s-maxage=30, stale-while-revalidate=60` |

## Exemplos de requisição

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://ghosting.fun/api/v1/users/ghosting" \
    -H "Accept: application/json"
  ```

  ```js JavaScript (fetch) theme={null}
  const response = await fetch("https://ghosting.fun/api/v1/users/ghosting");
  const data = await response.json();
  console.log(data);
  ```

  ```py Python (requests) theme={null}
  import requests

  response = requests.get("https://ghosting.fun/api/v1/users/ghosting")
  data = response.json()
  print(data)
  ```
</CodeGroup>

## Exemplo de resposta (200 OK)

```typescript theme={null}
{
  "success": true,
  "data": {
    "username": "ghosting",
    "displayName": "Ghosting Oficial",
    "bio": "Desenvolvedor & Criador de Conteúdo. Criando experiências digitais no Ghosting.",
    "avatarUrl": "https://ghosting.fun/api/avatar?u=ghosting",
    "pageUrl": "https://ghosting.fun/p/ghosting",
    "hasCustomDomain": false,
    "customDomain": null,
    "accountAgeDays": 140,
    "createdAt": "2026-04-15T12:00:00.000Z",
    "views": 32890,
    "badges": {
      "isVerified": true,
      "isOfficial": true,
      "isHelper": true,
      "list": ["official", "verified", "helper"]
    },
    "avatarDecoration": {
      "id": "spirit_embers",
      "name": "Spirit Embers",
      "file": "spirit_embers.png",
      "url": "https://ghosting.fun/api/decoration?f=spirit_embers.png"
    },
    "socials": [
      { "platform": "discord", "url": "https://discord.gg/vkWVxrd9Bn" },
      { "platform": "github", "url": "https://github.com/ihyos/PAYLINK" },
      { "platform": "steam", "url": "https://steamcommunity.com/id/ghosting" }
    ],
    "status": "active",
    "banInfo": {
      "isBanned": false,
      "message": null,
      "reason": null,
      "bannedAt": null
    }
  },
  "meta": {
    "timestamp": "2026-09-06T18:00:00.000Z",
    "version": "v1",
    "executionTimeMs": 6
  }
}
```

## Schemas relacionados

<CardGroup cols={2}>
  <Card title="User" href="/schemas/user">
    Estrutura completa do objeto de perfil.
  </Card>

  <Card title="Ban Info" href="/schemas/ban-info">
    Detalhes de suspensão e banimento.
  </Card>

  <Card title="Badges" href="/schemas/badges">
    Verificação, oficial e helper.
  </Card>

  <Card title="Avatar Decoration" href="/schemas/avatar-decoration">
    Decorações de avatar disponíveis.
  </Card>

  <Card title="Socials" href="/schemas/socials">
    Redes sociais vinculadas ao perfil.
  </Card>

  <Card title="Meta" href="/schemas/meta">
    Metadados da resposta da API.
  </Card>
</CardGroup>

<Note>
  Perfis suspensos retornam `HTTP 200 OK` com `data.status: "suspended"` e `data.banInfo.isBanned: true`. Isso evita exceções em bots e integrações automatizadas. Consulte [Moderacao](/guias/moderacao) para entender como tratar esses casos.
</Note>
