Home › Generators & Text Tools › ULID Generator

ULID Generator

Create clean, time-sorted unique IDs with this free ULID generator. A ULID looks like a UUID but sorts by creation time — perfect for database records, orders, logs and test data. Choose how many you need, and the tool shows the hidden timestamp inside every ID as proof of how the format works.

How to use this ULID generator

  1. Type how many ULIDs you need, from 1 to 50.
  2. Tick the lowercase box if your system prefers small letters — ULIDs are case-insensitive, so both forms are the same ID.
  3. Press Generate ULIDs. Each ID appears with the date and time hidden inside it.
  4. Use Copy all to take the whole list, or Download .txt to save it as a file, one ID per line.

How it works

A ULID is 128 bits of information written as 26 characters of Crockford Base32 — the digits 0–9 plus most letters, skipping I, L, O and U because they are too easy to misread as 1 and 0. The layout is fixed:

ULID = 10 characters of timestamp (48 bits, milliseconds) + 16 characters of randomness (80 bits).

The timestamp comes first, which is what makes ULIDs sort in creation order as plain text — no special database type needed. The randomness comes from your browser's cryptographic random generator, the same source used for security tokens. Put together, a ULID made now will always sort after every ULID made a millisecond earlier, and two ULIDs made in the very same millisecond still differ in their random tails.

Worked example

The ULID specification's own example: the timestamp for 30 July 2016, 22:36:16.385 in milliseconds is 1469918176385. Encoded into the first 10 characters, it becomes 01ARYZ6S41 — so any ULID beginning 01ARYZ6S41 was created at that exact millisecond, whatever its random tail says. A full example ULID from that moment is 01ARYZ6S41TSV4RRFFQ69G5FAV. When you generate IDs above, the tool decodes that first section back into a readable date and shows it under each ULID — check it against your clock and you will see it matches to the second (the milliseconds are exact too).

ULID at a glance

PartCharactersMeaning
Timestamp1 – 10 (e.g. 01ARYZ6S41)Creation time in milliseconds since 1970
Randomness11 – 2680 bits from a cryptographic random source
Alphabet0–9, A–Z minus I, L, O, UCrockford Base32 — no look-alike letters
Total length26 characters128 bits, same size as a UUID
SortingPlain text orderLater IDs sort after earlier ones

Where ULIDs are used

ULIDs turn up anywhere records are created faster than a central counter could number them: order IDs in online shops, payment references, support tickets, log lines and event streams. Because the ID itself carries its creation time, support teams can sort a customer's records by simply sorting the IDs, and developers can guess roughly when a record was made from its ID alone during debugging. Several databases and frameworks now support ULIDs natively or through small libraries in every major language, and all of them read the same 26 characters this page generates — copy any ID from here straight into code or a database and it will behave exactly as specified.

FAQ

What is a ULID?

A ULID is a 26-character ID that does the same job as a UUID — a practically-unique identifier — but with two advantages: it is sorted by time, so newer IDs always come after older ones, and it is written in Crockford Base32, an alphabet without confusing letters (no I, L, O or U). The first 10 characters hide the creation time in milliseconds; the last 16 are randomness.

How is a ULID different from a UUID or GUID?

A random UUID (version 4) is pure randomness, so a list of them is in no useful order and database indexes fragment as they grow. A ULID starts with its timestamp, so IDs created later sort later — friendly for databases and logs. Both are 128 bits overall and equally hard to guess: the ULID's random part alone is 80 bits.

Can I see when a ULID was created?

Yes — that is the party trick of the format, and this tool shows it under every ID it makes. The first 10 characters decode back to the exact millisecond the ULID was generated. Try it: generate one, note the time shown, and compare it with your clock. Note this also means a ULID reveals its creation time to anyone who sees it.

Are the ULIDs here generated safely?

Yes. The random part comes from your browser's cryptographic random source (the same one used for secure tokens), not from ordinary Math.random. 80 bits of it means that even generating millions of ULIDs in the same millisecond, a collision is practically impossible. Everything happens on your device — no ID is sent to or stored on a server.

How many ULIDs can I generate at once?

Between 1 and 50 per press — enough for seeding a database, a test fixture or a batch of records. Need more? Press Generate again; each press makes a fresh set with a fresh timestamp. The Copy All and Download buttons take the whole list as plain text, one ULID per line.

Should I use ULIDs instead of auto-increment numbers?

For public-facing records, often yes: an auto-increment ID tells the world exactly how many orders or users you have and makes the next record trivial to guess, while a ULID reveals only its creation time. For purely internal sorting, either works. If even the creation time must stay secret, use a random UUID or GUID instead.