1. Home
  2. Developer tools
  3. Snowflake ID Decoder

Snowflake ID Decoder

Twitter, Discord and Instagram IDs are 64-bit numbers with a creation time inside. Pick the platform, paste the IDs, and see when each was made and which machine produced it.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Snowflake ID Decoder

  1. Choose the platform.
  2. Paste the IDs, one per line.
  3. Read the date and fields, or build an ID from a date.

Features

  • Twitter or X, Discord and Instagram layouts
  • Exact 64-bit arithmetic with BigInt
  • Creation time in UTC to the millisecond
  • Worker, process and sequence fields
  • Builds an ID from a date and field values
  • Rejects numbers beyond 64 bits

Supported formats

Input

  • Snowflake IDs

You get

  • Date
  • Fields

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Snowflake ID Decoder is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Only the Twitter or X, Discord and Instagram layouts are included.
  • The date shows when the id was made, not necessarily when the content was posted.

Guide

Decoding Snowflake IDs from Twitter, Discord and Instagram

Large web services need unique IDs that are made in many places without coordination. One answer, which Twitter published in 2010 and others have copied, is the Snowflake ID: a 64-bit number whose high bits are a timestamp. Because the time comes first, IDs sort by creation time, and because the lower bits identify the machine and a counter, thousands of servers can issue them at once without a clash. If you hold such an ID, you can read when and where it was made.

The layout

The number is split into fields. The top 41 bits count milliseconds since an epoch chosen by the platform. Below that are bits for the machine that generated the ID and a sequence number that increases when several IDs are made in the same millisecond. Twitter and Discord both use five bits for each of two machine fields and twelve for the sequence, written as 41 + 5 + 5 + 12 plus an unused top bit. Instagram uses a different split, 41 bits of time, 13 bits for the shard and 10 for the sequence.

Different epochs

The same number decodes to different dates in different systems, because each platform started counting at its own moment. Twitter’s epoch is 1288834974657 in Unix milliseconds, which is 4 November 2010. Discord’s is 1420070400000, the start of 2015. Instagram’s is 1314220021721, in August 2011. Choose the platform before pasting, and the date, the machine fields and the sequence all follow from that choice.

Using the page

Pick Twitter or X, Discord or Instagram, paste IDs one per line, and read the table: the ID, the creation time in UTC to the millisecond, and the fields for that layout. An ID that is not a whole number of at most 20 digits, or that exceeds 64 bits, is reported. Below the table you can build an ID: enter a date and the field values, and the page shows the resulting number and a button to send it to the decoder.

Why BigInt matters

A 64-bit ID needs more precision than a JavaScript number provides. Reading 1541815603606036480 as a number gives the right order of magnitude but changes the last digits, which are exactly where the sequence and worker are stored. The decoder takes the digits as a big integer and shifts and masks them exactly, so the fields are correct for any valid ID.

A worked example

The Twitter sample 1541815603606036480 decodes to 2022-06-28 16:07:40.105 UTC, datacenter 11, machine 26 and sequence 0. The second sample, 1204889173891276800, is from 2019-12-11 22:22:19.471 UTC, with machine 14. For Discord, the ID 175928847299117063 from the platform’s own documentation decodes to 2016-04-30 11:18:25.796 UTC, worker 1, process 0 and increment 7.

Limits

Only the three layouts listed are included, and a platform may change its scheme. The date is when the ID was generated, which is normally when the object was created, but IDs for imported or edited content can differ. The machine fields identify infrastructure, not a person, and mean nothing outside the platform. The page does not call any API, so it cannot tell whether an ID is still valid or what it points to.

Checked against the current version of the Snowflake ID Decoder on .

Frequently asked questions

Why do many online decoders give the wrong last digits for these IDs?

Snowflake IDs are up to 19 digits long, more than the 15 or 16 digits that a JavaScript number can hold exactly. A decoder that reads the ID as an ordinary number rounds it first. This page parses the digits as a big integer, so the low bits for the worker and sequence are right.

Can I use the timestamp to sort or filter by date?

Yes, that is what the design allows. Higher IDs were made later, so you can compare IDs as numbers, and you can find the boundary for a date by building an ID from that date with zero in all other fields, as the page does.

Why does the same number give different dates on different platforms?

Each platform counts milliseconds from its own start date: Twitter from 4 November 2010 and Discord from 1 January 2015. Choose the platform the id came from.

Why do some tools get the last digits wrong?

JavaScript numbers lose precision above 2^53, and Snowflake IDs are larger. This page parses them as BigInt, which keeps every digit.

Keep working with the result

openWorkstand also includes a free workspace with documents, spreadsheets, tasks, projects and a calendar that save to a folder on your computer.