Skip to main content

Discord ID Lookup — Snowflake Decoder

Paste any Discord user, message, channel, or guild ID and get the millisecond creation timestamp, worker ID, process ID, and counter. Pure client-side BigInt math — no API call, no rate limit, no bot token.

Pure client-side BigInt — no API, no bot token, no rate limit. Batch up to 50 IDs.

What lives inside a Discord snowflake

A Discord ID is a 64-bit integer with a fixed bit-layout. The top 42 bits encode the millisecond timestamp of when the object was created, relative to Discord's custom epoch of 2015-01-01 00:00:00 UTC. The bottom 22 bits split into three fields: worker ID (5 bits), process ID (5 bits), and an internal counter (12 bits) that increments per generated ID inside a single worker-process pair. The decoder above peels these fields apart with BigInt arithmetic — JavaScript's regular Number type maxes out at 2^53, which loses the high bits of a 64-bit value, so BigInt is mandatory.

Why anonymous decode works (and what it misses)

Snowflakes are public by Discord's design — the timestamp is encoded INSIDE the ID, so decoding it requires no API call. That's why this tool runs entirely in the browser without rate-limiting. The trade-off: anonymous decode gives you the creation timestamp and three internal fields, nothing else. Username, avatar, banner colour, account flags, nitro status — none of those live inside the snowflake. They live on Discord's servers and require an authenticated bot token to fetch via the /users/{id} endpoint. For those, third-party fronts like Discord Lookup (mesalytic.moe) wrap the bot API. This tool focuses on what the snowflake itself reveals.

Practical uses for a Discord ID lookup

Three real-world cases dominate the search traffic for "discord id lookup". Raid forensics — when a Discord server is hit by a raid, the join timestamps of the raid participants cluster around the same minute. Decode their user IDs, group by creation date, and you can usually tell whether the participants were fresh-cycle accounts (created in the last day or two before the raid) versus older infiltration accounts. Account-age verification — moderators verifying that a new member meets the server's "X-day-old account" rule without enabling a heavy verification bot. Message archaeology — finding the exact timestamp of a deleted message that you saved the ID for, to cross-reference with screenshots or audit logs.

How to enable Developer Mode and copy IDs

Discord hides ID-copying behind the Developer Mode toggle. Open the desktop client → User Settings (the gear icon next to your name) → Advanced → toggle Developer Mode ON. The toggle persists across devices on the same account. Once enabled, right-click any user, message, channel, server, role, or emoji — a "Copy ID" option appears at the bottom of the context menu. On the mobile app, the same setting lives under Settings → Advanced; long-press the avatar to open the action sheet with the Copy ID option.

Edge cases the decoder handles

Snowflake IDs are typically 17-19 digits, but the decoder accepts anything 17-20 digits. 17-digit IDs come from 2015-2017 — the earliest tier of Discord accounts. 19-20 digit IDs come from 2024-2026. If a pasted number falls outside the spec, the decoder shows an inline error: "wrong length" for non-conforming digit counts, "not numeric" for non-digit input, and "timestamp out of range" for IDs whose decoded timestamp falls before 2015 or beyond now+24h (a sanity check against random-number-as-snowflake mistakes). For markdown formatting, code-block syntax, and bio templates that pair well with this tool, see our Discord text formatter and Discord bio templates.

Frequently asked

What is a Discord snowflake ID?
A Discord snowflake is a 64-bit integer that uniquely identifies any object in Discord — user, message, channel, guild, role, emoji. The top 42 bits encode the millisecond timestamp of when the object was created, relative to Discord's custom epoch (2015-01-01 UTC). The bottom 22 bits encode the worker ID, process ID, and an internal counter that increments per generated ID. Snowflakes are PUBLIC by design — anyone who knows the ID can decode the creation timestamp without an API token.
How do I find someone's Discord user ID?
Enable Developer Mode first: User Settings → Advanced → Developer Mode = ON. Right-click any user, message, channel, or server and a "Copy ID" option appears at the bottom of the context menu. The copied number is the snowflake ID — paste it into the textarea above to decode the creation date. On mobile, long-press the avatar then tap "Copy ID" in the action sheet.
What can I learn from a Discord ID?
The exact UTC timestamp of when the object was created (millisecond precision), plus three Discord-internal fields: worker ID (which Discord shard generated the ID), process ID, and a counter. The timestamp is the useful field — for users, it's the account creation date. For messages, it's the post date. For servers, it's the server creation date. Moderators commonly use the timestamp to flag suspicious "fresh-account" raid behaviour by checking when raid participants joined Discord.
Is the Discord ID decoder accurate?
Yes — it uses Discord's public snowflake specification verbatim. The decode is lossless and deterministic: the same ID always produces the same timestamp. We use BigInt arithmetic instead of JavaScript Number to avoid precision loss on the high bits (Number caps at 2^53; snowflakes need 64 bits). The "Created" field is the millisecond timestamp converted to ISO 8601 in UTC.
Can I look up a username from a Discord ID?
Not without a bot token. Discord's public API requires authentication for the /users/{id} endpoint — there is no public-anonymous lookup that maps a snowflake to a username, avatar, or banner. This tool decodes only the data that lives INSIDE the snowflake itself (timestamp + worker + process + counter). For username lookups, third-party services like Discord Lookup (mesalytic.moe) front the Discord API with a bot token — they're outside our scope but useful when you need profile data.
Why does my ID return "wrong length"?
Discord IDs are 17-19 digits. Older accounts created in 2015-2017 may have 17-digit IDs; modern accounts typically have 18-19 digits. If you pasted a number that's too short or too long, it's probably not a real snowflake — common causes are partial copy-paste (a few digits missing), a Discord OAuth client_id (different format), or a non-Discord ID entirely. The decoder rejects out-of-range timestamps as a sanity check.
How does this differ from Discord Lookup or similar bot-API services?
Discord Lookup and similar tools call Discord's authenticated /users/{id} endpoint, which returns username, avatar, banner colour, and account flags. They need a bot token and rate-limit per minute. This decoder only uses the data embedded in the snowflake itself — no API call, no rate limit, no bot token. The trade-off: you get the timestamp, worker, process, and counter (all that's actually inside a snowflake) but not the user's current display name. Both are useful — for "when was this account created", this tool is faster.
Can I batch-decode multiple Discord IDs?
Yes. Paste multiple IDs into the textarea, one per line, up to 50 at a time. Each ID decodes independently — invalid IDs show an inline error and don't break the rest of the batch. The share URL preserves the full batch, so you can save a list of IDs (e.g. a raid suspect cohort) for later inspection.