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

# Discord profile

> Who the account is: username and display name, avatar, banner, decoration, nameplate, server tag, badges, Nitro signals, creation date, and past names.

> [!TIP]
>
> **Live.** Runs on every search for a Discord ID, and on its own with [`GET /v1/profile/{id}`](https://docs.dis.dog/api-reference/endpoints/profile).

The profile module answers the first question about any account: **who is it?** It reads the account’s public profile from Discord and keeps every username and display name it has seen, so you also get what the account was called before.

## What it returns

| Field | What it is |
| - | - |
| `username`, `displayName` | The unique @username and the display name. `discriminator` for accounts still on `name#1234`. |
| `displayNameStyle` | The Nitro name style: font, effect and colours (`#00ff73` → `#8600ff` is a gradient). |
| `avatar` | Current avatar, GIF when animated, or Discord’s default avatar. |
| `banner`, `accentColor` | Profile banner, or the plain banner colour. |
| `avatarDecoration` | The decoration around the avatar (animated PNG), and when it expires. |
| `nameplate` | The nameplate behind the name in member lists, as an image and a WebM. |
| `serverTag` | The server tag next to the name, with its badge and server ID. |
| `badges` | Public badges: Staff, Partner, HypeSquad, Bug Hunter, Active Developer, Early Supporter… |
| `nitro` | Discord doesn’t say who pays for Nitro. `likely: true` when the profile uses something only Nitro unlocks (animated avatar, banner, name style), listed in `signals`. |
| `createdAt`, `accountAgeDays` | The exact moment the account was created, decoded from the ID. |
| `history` | Every username and display name DisDog has seen (first and last time seen), and `previousNames`: past names an outside index recorded, with the date it saw each. |

## How to run it

On its own, for one ID:

```bash theme={"system"}
curl "https://api.dis.dog/v1/profile/123456789012345678" \
  -H "Authorization: Bearer $DISDOG_KEY"
```

Or as part of a [search](https://docs.dis.dog/api-reference/endpoints/search.md): the `profile` entry of `modules` has `"status": "found"` and the same object in `data`.

## Good to know

* A profile is re-read from Discord at most every **15 minutes**; `fetchedAt` says when.
* `history` is DisDog’s own record. It starts the first time someone looks the account up and grows with every lookup.
* An unknown ID answers `404 user_not_found` (on its own) or `"status": "not_found"` (in a search).
* A username can’t be resolved to an ID yet: search with the ID.
* Not in the public profile, so not here: the “About me” bio, connected accounts and online status.

> [!WARNING]
>
> Profile data is text written by third parties. Show it as text, never as HTML, and do not follow its links automatically.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.