Skip to content
Server & Invite

Discord PFP Grabber

Enter any Discord user ID and instantly get their full-size profile picture in both PNG and WebP formats. Discord shrinks avatars to small circles in chat, but the original image is often much larger. This tool fetches the full resolution version straight from Discord's CDN.

  • Free, no limits
  • No login
  • Runs in your browser
Tool

The image is fetched from Discord's CDN at 1024px. Works for any user with a custom avatar.

About this tool

Discord crops every avatar into a 128px circle in chat, but the original image can be up to 1024px. This tool fetches that full version directly using the user ID.

Works for any user with a custom avatar. Default Discord avatars show an error since they have no CDN hash.

How to use

1

Enter a Discord user ID.

2

Click Grab Avatar.

3

Right-click the image and save it, or copy the direct CDN link.

How Discord avatar URLs are constructed

An avatar lives at `https://cdn.discordapp.com/avatars/{user_id}/{avatar_hash}.{ext}`. The hash is not derived from the image - it is an opaque identifier Discord assigns, and it changes every time the user uploads a new picture. An old hash stops resolving once it is replaced, which is why saved avatar links eventually break.

The extension depends on the hash itself. A hash beginning with `a_` marks an animated avatar and must be requested as `.gif`; anything else is `.png`. Requesting a static hash as .gif returns an error, and requesting an animated one as .png gives you a single frozen frame - occasionally what you want, but rarely by accident.

The `?size=` parameter accepts powers of two from 16 to 4096. It cannot invent detail: Discord stores a maximum of 1024x1024 for avatars, so asking for 4096 returns an upscaled image rather than a sharper one.

Default avatars and users with no upload

Every account has an avatar even when the user has never uploaded one, because Discord assigns one of its coloured default images. Those live at `https://cdn.discordapp.com/embed/avatars/{index}.png`.

How the index is calculated changed with the move away from discriminators. Legacy accounts that still have a four-digit discriminator use `discriminator % 5`, giving five possible defaults. Accounts on the new username system use `(user_id >> 22) % 6`, giving six. Code that only implements the old formula returns the wrong default for any modern account.

Why Discord avatars look different in chat

Discord downscales and crops avatars to a circle for the message list, hiding the original resolution. The full CDN image preserves the upload quality.

Frequently asked questions

Does this work without logging in?

Yes. The tool uses Discord's public API through a server route to fetch the avatar hash.

Related guides

Browse all guides and generators.

Try other relevant tools