UUID / ULID / NanoID Generator

Generate unique identifiers in various formats. UUID v4, UUID v7, ULID, NanoID, CUID, and Snowflake IDs.

ID Type

UUID v4 (Random)

Universally Unique Identifier using random numbers. Most widely supported format, 122 bits of randomness.

Length
36 characters (with hyphens)
Sortable
✗ No
URL Safe
✗ No
Timestamp
✗ None

Decode / Validate ID

Comparison Table

FormatLengthSortableTimestampBest For
UUID v436 charsMaximum compatibility
UUID v736 charsDatabase primary keys
ULID26 charsCompact, sortable IDs
NanoID21 chars*URLs, user-facing IDs
CUID25 charsCollision-resistant
Snowflake18-19 digitsDistributed systems

What is This Tool?

A UUID/ULID generator creates unique identifiers in multiple formats: UUID v4 (random), UUID v7 (timestamp-ordered), ULID (sortable), NanoID (compact), and CUID (collision-resistant). Each format balances uniqueness, sortability, size, and performance for different use cases.

UUIDs (128-bit) are the standard for distributed unique identifiers. UUID v4 is purely random, UUID v7 embeds a timestamp for natural sorting. ULIDs are lexicographically sortable. NanoIDs are URL-safe and compact. CUIDs are designed for horizontal scaling with minimal collision risk.

Common Use Cases

Database Primary Keys

Generate unique IDs for database records without sequential auto-increment, enabling distributed inserts without coordination.

API Resource Identifiers

Create opaque, non-guessable resource IDs for REST APIs that do not expose internal database structure.

Session & Token IDs

Generate unique session identifiers, request IDs, and correlation tokens for distributed tracing.

File & Object Naming

Create unique filenames for uploads, cache keys, and object storage paths that avoid collisions.

Frequently Asked Questions

Which ID format should I use?

UUID v7 for database PKs (sortable, standard). ULID if you need string sorting. NanoID for short URLs. UUID v4 for maximum compatibility. CUID for distributed systems.

Are UUIDs truly unique?

UUID v4 has 122 bits of randomness — the probability of collision is negligible (you need ~2.7 quintillion IDs for a 50% chance). For practical purposes, yes.

Why not use auto-increment IDs?

Auto-increment exposes record count, is predictable (security risk), and requires centralized generation (scaling bottleneck). UUIDs solve all three issues.