Generate UUID, ULID, KSUID, Nano ID, CUID2, Snowflake, and more. Free developer tools with specs, code snippets, and side-by-side comparisons.
| Format | Sortable | Tier | ||||
|---|---|---|---|---|---|---|
| cuid2 | 128 | 24 | base36 | No | No | Recommended |
| nanoid | 126 | 21 | base64url | No | No | Recommended |
| scru128 | 128 | 25 | base36 | Yes | Yes | Recommended |
| timeflake | 128 | 22 | base62 | Yes | Yes | Recommended |
| tsid | 64 | 13 | Crockford base32 | Yes | Yes | Recommended |
| ulid | 128 | 26 | Crockford base32 | Yes | Yes | Recommended |
| ulidx | 128 | 26 | Crockford base32 | Yes | Yes | Recommended |
| uuidv7 | 128 | 36 | hex (8-4-4-4-12) | Yes | Yes | Recommended |
| ksuid | 160 | 27 | base62 | Yes | Yes | Situational |
| pushid | 120 | 20 | base64 (modified) | Yes | Yes | Situational |
| snowflake | 64 | 18 | decimal | Yes | Yes | Situational |
| sqids | — | 6 | custom alphabet | No | No | Situational |
| uuid | 128 | 36 | hex (8-4-4-4-12) | No | No | Situational |
| xid | 96 | 20 | base32hex | Yes | Yes | Situational |
| cuid | 128 | 25 | base36 | No | Yes | Legacy |
| objectid | 96 | 24 | hex | Yes | Yes | Legacy |
| shortid | 64 | 9 | base64 (custom) | No | No | Legacy |
| slugid | 128 | 22 | base64url | No | No | Legacy |
| short-uuid | 128 | 22 | base57 | No | No | Legacy |
| uniqid | 64 | 18 | hex | Yes | Yes | Legacy |
Not sure which format to use?
Read our guide with a decision matrix and flowchart
A "ksuid" (K-Sortable Unique IDentifier) is a type of unique identifier designed to be sortable by generation time.
ObjectId is MongoDB's 12-byte unique identifier with an embedded timestamp, represented as a 24-character hexadecimal string.
Push ID is a lexicographically sortable, unique identifier inspired by Firebase push keys, combining a timestamp with randomness for chronological ordering.
SCRU128 is a 128-bit, sortable, globally unique identifier encoded as a 25-digit case-insensitive Base36 string, inspired by ULID and KSUID.
Snowflake ID is a 64-bit time-sortable identifier originally designed by Twitter, combining a timestamp, worker ID, and sequence number for distributed uniqueness.
Timeflake is a 128-bit, roughly-ordered, URL-safe UUID combining a 48-bit millisecond timestamp with 80 bits of cryptographic randomness.
TSID (Time-Sorted ID) is a compact, time-sortable identifier inspired by Snowflake and ULID, producing 13-character Crockford base32 strings.
ULID (Universally Unique Lexicographically Sortable Identifier) is a type of identifier designed to be both globally unique and sortable in a lexicographically manner.
ULID (Universally Unique Lexicographically Sortable Identifier) is a type of identifier designed to be both globally unique and sortable in a lexicographically manner.
`uniqid` is a PHP function for generating unique identifiers based on the current time in microseconds. It's commonly used for generating temporary filenames.
UUID v7 is a time-sortable UUID defined by RFC 9562, embedding a millisecond Unix timestamp with cryptographic randomness for global uniqueness.
XID is a globally unique, sortable, 20-character identifier using base32hex encoding, inspired by MongoDB ObjectId but designed for broader use.
A "cuid" (collision-resistant unique identifier) is a unique identifier generated to be highly resistant to collisions, meaning the chances of two cuids being the same are extremely low.
A "nanoid" is a type of unique identifier designed to be cryptographically secure and that are ideal for various use cases, especially those requiring unique identifiers with minimal overhead.
Sqids encodes numbers into short, URL-safe, non-sequential identifiers. Formerly known as Hashids.
`uuid`, or UUID, is a standardized unique identifier format defined by RFC 4122. It generates 128-bit identifiers that are globally unique across space and time.
A "cuid" (collision-resistant unique identifier) is a unique identifier generated to be highly resistant to collisions, meaning the chances of two cuids being the same are extremely low.
A "shortid" value refers to a concise and unique identifier that serves various purposes across applications.
A "slugid," is a universally unique identifier designed for use in URL-friendly contexts.
Identifier for concise, human-readable unique identifiers as alternatives to UUIDs, suitable for scenarios requiring shorter IDs like URLs or databases.
© 2024 Carova Labs. All rights reserved