Free Online UUID / ULID / NanoID Generator
Generate UUID v4, UUID v1, ULID, and NanoID instantly in your browser — up to 100 IDs at once. 100% client-side, no data sent to server.
What is a UUID?
A UUID (Universally Unique Identifier) is a 128-bit label defined in RFC 4122. With over 5 × 10³⁶ possible v4 values, the probability of generating the same UUID twice is astronomically small. UUIDs allow distributed systems to create unique identifiers — for database rows, API resources, session tokens — without a central counter or coordinator.
UUID v4 vs UUID v1 vs ULID vs NanoID
Choose the right identifier for your use case:
Completely random. The most widely used format, supported natively by all modern databases and languages. No temporal information. Generate with crypto.randomUUID().
Encodes a timestamp for time-ordered sorting. Deprecated for new systems — the original spec exposes the MAC address, raising privacy concerns. Use ULID instead if you need sortability.
Lexicographically sortable by creation time — ideal as a database primary key with Prisma, Drizzle, or any ORM. 26-char Crockford Base32, URL-safe, case-insensitive.
Only 21 characters (vs 36 for UUID), URL-safe alphabet (A-Za-z0-9_-). Configurable length. Perfect for URL slugs, short tokens, and generated identifiers.
When to Use Each Identifier
Practical guidance for choosing the right ID format:
Use UUID v4 as primary keys in PostgreSQL (uuid type), MySQL (CHAR(36)), or any database that supports UUIDs natively. Supported by all major ORMs.
Legacy systems that need timestamp-embedded IDs for log file naming or event ordering. Prefer ULID for new projects.
Use ULID when you need primary keys that sort by creation time without a separate timestamp column. Works out-of-the-box with Prisma, Drizzle ORM, and TypeORM.
Use NanoID for URL slugs, short-lived tokens, and any context where compactness and URL-safety matter. Adjust length to balance collision probability and readability.