Discord shrinks avatars to a tiny circle everywhere in the app. If you want the full-resolution image — to save it, to check whether someone is using your art, or just because you like it — Discord gives you no download button. This guide covers every method that works, including the one built into Discord itself that most people never find.
Everything here uses Discord’s own public CDN or the official client. No third-party site needs your login, and nothing here requires a bot token.

The fastest method: Discord’s built-in viewer
Discord added avatar viewing to the profile popout, and it’s the method most guides skip.
- Click the user’s avatar anywhere — a message, the member list, a DM header.
- The profile popout opens. Click the avatar again inside the popout.
- The image opens full-size in the media viewer.
- Right-click and choose Save image as…, or click Open in browser for the raw file.
This works on desktop and web. It gives you the avatar at whatever resolution the user uploaded, which is usually more than enough.

The full-resolution method: Discord’s CDN
Every Discord avatar is a public file on Discord’s content delivery network. If you have the URL, you can request any size you want — up to 4096 pixels.
The URL structure is:
https://cdn.discordapp.com/avatars/USER_ID/AVATAR_HASH.png?size=4096
You rarely need to build this by hand. Instead:
- Open the avatar in the media viewer as described above.
- Click Open in browser, or right-click and choose Copy image address.
- In the address bar, change the number at the end —
?size=128becomes?size=4096. - Press Enter. The image reloads at maximum resolution.
- Right-click and save the image.
Valid sizes are powers of two: 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. Anything else is rejected.
One caveat: requesting 4096 doesn’t invent detail. If the user uploaded a 256px image, asking for 4096 returns an upscaled, soft version. The CDN serves what exists.
Getting a user ID
Some methods need the numeric user ID. Discord hides it until you turn on Developer Mode.
- Open User Settings — the gear icon by your name.
- Go to Advanced.
- Toggle Developer Mode on.
- Right-click any user, or long-press on mobile, and choose Copy User ID.
The ID is an 18–19 digit number. It never changes, even when the person changes their username.

Animated avatars (GIF)
Nitro users can set animated avatars. These behave differently:
- Their avatar hash begins with
a_. - The file is a
.gif, not a.png. - If you request
.png, the CDN returns a single still frame — which is why people end up with a frozen image and assume the animation broke.
To keep the animation, make sure the URL ends in .gif before the size parameter.
On mobile
The mobile apps have no right-click, so the flow differs:
- Tap the user’s avatar to open their profile.
- Tap the avatar again to open it full-screen.
- Use the share or download icon in the corner, or long-press the image and choose Save.
If you need maximum resolution on mobile, copy the image link instead and open it in your browser, then edit the size parameter as above.

Server avatars vs global avatars
This trips people up constantly. Discord lets a user set a different avatar per server, on top of their global one.
| Type | Where it shows | CDN path |
|---|---|---|
| Global avatar | DMs, friends list, everywhere by default | /avatars/USER_ID/… |
| Server avatar | Only inside that one server | /guilds/SERVER_ID/users/USER_ID/avatars/… |
If you grabbed an avatar and it doesn’t match what you see in a particular server, you have the global one and they’ve set a server-specific override.
Banners and profile effects
Profile banners work the same way, on a /banners/ path instead of /avatars/. Decorations and profile effects are layered separately by the client and aren’t part of the avatar file — you can’t download a decorated avatar as a single composed image.
Third-party PFP grabber sites: what to know
There are plenty of sites offering to fetch a Discord avatar from a user ID. Most simply build the CDN URL you could construct yourself. That’s harmless, but two things are worth knowing before you use one.
Never enter your Discord token. No legitimate avatar viewer needs one. A token is full account access — anything asking for it is trying to take over your account, not show you a picture.
Never log in with Discord OAuth for this. Reading a public avatar requires no permissions at all. A site requesting account access to show you an image is collecting data it doesn’t need.
If a tool asks for nothing but a user ID and returns an image, it’s doing the same thing as the manual method. If it asks for anything more, close the tab.
Is downloading someone’s avatar allowed?
Viewing and saving a publicly visible avatar isn’t a violation of Discord’s Terms of Service — the file is served publicly by design.
What matters is what you do next. Reuploading someone’s art as your own, using a photo of a real person to impersonate them, or building a collection of images of a specific individual all cross lines that range from rude to reportable. The image being downloadable doesn’t make every use of it acceptable.
How Discord stores avatars, and why it matters
Understanding the storage model explains almost every problem people hit with avatar downloads.
When you upload a profile picture, Discord doesn’t keep your original file at a fixed address. It stores the image and generates a hash — a long string of letters and numbers that identifies that specific version. Your avatar’s URL is built from your user ID plus that hash.
The consequences:
- Every avatar change generates a new hash. The old URL doesn’t update — it breaks. This is why saved avatar links go dead without warning.
- Old avatars aren’t retrievable. Once the hash changes, the previous version is gone from any practical means of access. There’s no version history.
- The URL is unguessable. You can’t construct someone’s avatar link from their user ID alone; you need the current hash, which means you need to see them somewhere first.
- Anyone with the link can view it, without logging in. Avatars are served without authentication — that’s why no token is ever needed.
That last point is the one worth internalising. Because the CDN requires no authentication, any tool claiming to need your Discord login to show an avatar is asking for something it demonstrably doesn’t require.
The size parameter in detail
Discord’s CDN resizes on request rather than storing every size. Append ?size=N to any avatar URL and it renders at N pixels square.
| Size | Typical use |
|---|---|
| 16, 32 | Favicons, tiny UI elements |
| 64, 128 | What Discord actually displays in chat |
| 256, 512 | Profile popouts, good general-purpose size |
| 1024 | Maximum for animated GIF avatars |
| 2048, 4096 | Maximum for static avatars |
Two rules the CDN enforces strictly:
Powers of two only. ?size=1000 returns an error rather than rounding to 1024. If a URL isn’t loading, this is the first thing to check.
Upscaling is not enhancement. Requesting 4096 from a 128px original returns a 4096px file that is soft and blurry. The CDN interpolates; it doesn’t invent detail. If your download looks bad at maximum size, the original upload was small — no tool or site can fix that.
Format conversion via the URL
You can change the file extension in the URL and the CDN will convert on the fly.
| Extension | Result | Best for |
|---|---|---|
| .png | Lossless, supports transparency | Saving — the default choice |
| .webp | Smaller file, same quality | Web use |
| .jpg | Smallest, lossy, no transparency | When file size matters |
| .gif | Animation preserved | Animated avatars only |
The practical use: browsers often serve WEBP by default, and some older image editors can’t open it. Swapping .webp for .png in the URL before saving avoids a conversion step entirely.
Bots, the API and rate limits
If you’re building something rather than saving one picture, avatars are available through Discord’s official API. A bot with the right permissions can read a user object, which includes the avatar hash, and construct the CDN URL from it.
Two things to know before going down that road.
Rate limits are enforced. Discord’s API limits requests per route and per bot. Exceeding them returns 429 responses and, if sustained, temporary bans. Well-behaved bots cache avatar hashes rather than re-fetching them.
Mass collection is prohibited. Discord’s Developer Terms of Service and API policy prohibit scraping user data at scale. Systematically harvesting avatars across a server or the platform is a terms violation regardless of the fact that each individual file is public — and it’s the kind of thing that gets both the bot and the developer account terminated.
Fetching an avatar because your bot needs to display it is normal. Building an archive of member images is not the same activity, and Discord treats it differently.
A note on what you do with the image
Saving a publicly served file isn’t a rules violation. But the fact that something is downloadable says nothing about whether a given use of it is acceptable, and three uses are worth naming explicitly.
Impersonation. Using someone’s avatar and a similar username to pose as them is a direct Discord Terms of Service violation and will get an account terminated on report.
Art theft. If the avatar is original artwork, the artist holds copyright. Personal reference is one thing; reuploading it as your own avatar, or using it commercially, is another.
Collecting images of an individual. Saving one avatar you like is ordinary. Systematically archiving images of a specific person is not, and it’s the kind of behaviour that leads to reports and, depending on the jurisdiction, worse.
The technical methods on this page are neutral. What you do with them isn’t.
Common problems
The URL returns 404
The avatar hash changed — it’s regenerated every time the user updates their picture. Grab a fresh link.
The image is blurry at size=4096
The original upload was small. Upscaling cannot add detail that was never there.
An animated avatar saved as a still
You requested .png. Change the extension to .gif.
I only see the default coloured avatar
The user has never set a custom picture. Default avatars are generated by Discord and have no user-specific file.
Avatar decorations and profile effects
Discord added cosmetic layers around avatars, and they behave differently from the avatar itself in ways that confuse people trying to save them.
Avatar decorations are the animated frames some users have circling their picture. They’re a separate asset, rendered as a layer by the client on top of the avatar. There is no single URL that returns the two combined.
Profile effects are full-profile animations — falling snow, sparkles, moving backgrounds. Again, rendered client-side, not baked into any file.
So if you want a decorated avatar exactly as it appears in the app, a screenshot is the only method. Downloading the avatar gives you the picture without its frame, which is usually not what people are after when they’ve noticed the frame.
Default avatars
Users who have never set a picture get one of Discord’s generated defaults — a plain coloured background with the Discord mark. These aren’t user files.
They’re served from a small fixed set at /embed/avatars/N.png, where N is a small number derived from the account. There are only a handful of them, so a “default avatar” isn’t personal to anyone — thousands of accounts share each one. There’s nothing to grab beyond the stock image.
Doing it in bulk, and why to be careful
People occasionally want every avatar in a server — for a member collage, a wiki, a bot’s cache.
Technically it’s straightforward: a bot with the members intent reads the member list and constructs each CDN URL. Practically, there are two constraints.
Rate limits. Discord enforces per-route and per-bot request limits. Exceed them and you get 429 responses; sustain it and the bot is temporarily banned. Any bulk operation needs to cache hashes and back off on 429s.
The terms of service. Discord’s developer policy prohibits scraping user data at scale. The fact that each avatar is individually public doesn’t make systematic harvesting permitted — this is explicitly covered, and it’s enforced against both bots and the accounts behind them.
If you need avatars for a legitimate bot feature, fetch them on demand and cache. If you want an archive of everyone’s pictures, that’s the thing the policy exists to prevent.
Troubleshooting reference
| Symptom | Cause | Fix |
|---|---|---|
| 404 on the URL | Avatar hash changed | Get a fresh link — old ones expire on every avatar change |
| Blurry at size=4096 | Small original upload | Nothing to fix; the detail was never there |
| Animated avatar saved as still | Requested .png | Change extension to .gif |
| Error loading the URL | size is not a power of two | Use 16/32/64/128/256/512/1024/2048/4096 |
| Saved file is WEBP | Browser default format | Change extension to .png in the URL |
| Avatar differs between servers | Server-specific avatar override | View from a DM for the global one |
| Only a coloured circle | Default avatar, no custom image | Nothing to download |
| Decoration missing from download | Rendered as a separate layer | Screenshot instead |
Related guides
- Discord PFP viewer — see any avatar full-size without downloading.
- Discord PFP downloader — saving avatars in full HD.
- Discord PFP size guide — exact dimensions and formats for your own avatar.
- Funny PFP ideas for Discord
Frequently asked questions
How do I see someone’s full Discord profile picture?
Click their avatar to open the profile popout, then click the avatar again. It opens full-size in the media viewer.
How do I download a Discord PFP in high quality?
Open the avatar in your browser, change the ?size= value in the URL to 4096, then save the image.
Do I need a bot or token to grab a Discord avatar?
No. Avatars are served publicly from Discord’s CDN. Any tool asking for your token is attempting account theft.
Why is the downloaded avatar not animated?
Animated avatars are GIFs. Requesting the .png version returns a single frame — change the extension to .gif.
Can someone tell if I viewed their profile picture?
No. Discord sends no notification for viewing or saving an avatar.
What is the maximum Discord avatar resolution?
The CDN serves up to 4096×4096, but only if the user uploaded an image that large. Otherwise you get an upscale of the original.









Leave a Reply