Generate ULIDs (128-bit, Crockford base32, lexicographically sortable by time). For UUIDs see UUID generator; for KSUIDs see KSUID generator.

IDs update automatically when you change the count.

Adjust count

Adjust the count to generate ULIDs.

Guide: ULID generator

↑ Back to tool

What is a ULID?

A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit identifier: the first 48 bits are a millisecond timestamp, the remaining 80 bits are randomness. The canonical string form is 26 characters of Crockford base32 (no I, L, O, U) — case-insensitive in practice, often shown uppercase. ULIDs are designed so that string sort order matches creation time, which helps database indexes, logs, and APIs without a separate created_at column for ordering alone. This page generates ULIDs in your browser using the ulid package — no server upload.

Format & sorting

  • Length — 26 Crockford base32 characters (128 bits total).
  • Time resolution — Millisecond granularity in the time component; multiple IDs in the same ms differ in the random suffix.
  • Lexicographic order — Comparing ULID strings as UTF-8 text preserves approximate chronological order (same as binary order for the canonical encoding).
  • URL-safe — No ambiguous characters in the Crockford alphabet; fits in paths and query params.

ULID vs UUID vs KSUID

UUID v4 is random and not time-sortable as a string. UUID v7 is time-ordered but uses a different string format (hex with hyphens). ULID is compact base32 and widely used in JS ecosystems. KSUID (Segment-style) uses a 27-character base62 string with a second-resolution timestamp and a different epoch — see our KSUID generator. Pick ULID when you want Crockford base32 and ms timestamps; pick KSUID for Segment-compatible stacks.

Features

  • Batch generation — From 1 to 500 ULIDs; list updates when the count changes.
  • Copy — Per-row copy or Copy all as newline-separated text.
  • localStorage — Remembers your last count (spoold-ulid-generator).
  • Client-side — Cryptographically strong randomness from the browser (ulid library).

How to use

  1. Set count — Number field, range slider, or ± buttons (1–500).
  2. Read IDs — ULIDs refresh automatically when the count changes.
  3. Copy — Single ID or the full list for SQL seeds, fixtures, or APIs.
  4. Clear — Empties the list (regenerate by adjusting count again).

Use cases

ScenarioWhy ULID
Primary keysTime-ordered strings can reduce index fragmentation vs random UUIDs in some databases.
Logs & tracingSortable IDs in filenames or log lines without parsing timestamps.
APIs & mobileShorter than hyphenated UUIDs; easy to show in UIs.
TestingBatch-generate fixtures with realistic sort order.

Limits

  • Max batch500 ULIDs per page load.
  • Not a validator — This tool generates IDs; use application code or a dedicated validator to parse arbitrary strings.
  • Clock skew — Ordering assumes correct system time at generation.

People search for ulid generator online, generate ulid javascript, sortable unique id, lexicographic uuid alternative, crockford base32 id, time ordered ulid, and ulid vs uuid v7. This generator focuses on fast, client-side batch creation for developers.

FAQ

Is the ULID generator free?

Yes. Generation runs entirely in your browser.

Are these ULIDs cryptographically secure?

They use the standard ulid implementation with secure randomness from the browser. For compliance requirements, audit your stack and entropy sources.

Can two ULIDs collide?

Practically no for the random portion; same-ms collisions are astronomically unlikely. Always enforce uniqueness in your database if required.

Uppercase or lowercase?

Crockford base32 is case-insensitive; this tool displays what the library returns (often uppercase).

Similar tools

Conclusion

Use this ULID generator when you need time-sortable, URL-friendly identifiers in bulk. Compare with UUID generator (v4, v7, validation) and KSUID generator for Segment-style base62 IDs.