UUID Use Case
UUID User ID
A user ID is the most-shown identifier in your app. A UUID keeps it unguessable and hides how many users you have.
OpaqueURL-safeCount-hidden
Generated locally with the Web Crypto API — nothing leaves your browser.
What Is UUID User ID?
- A sequential user ID reveals growth (user #1024 signs up after #1023) and is enumerable. A v4 UUID reveals neither.
- Opaque IDs also prevent one user from probing another's profile by incrementing a number.
How to generate
- Default the users.id column to a UUID generator.
- Use it in URLs and API responses.
- Keep email/username unique via a separate constraint.
Use Cases
- Public profiles at /u/
. - API user objects.
- Foreign keys from orders, posts.
Code Examples
PostgreSQL
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE
);JavaScript
const id = crypto.randomUUID();Frequently Asked Questions
Why not an integer user ID?
Integers leak count and are enumerable; UUIDs are opaque and merge-safe across shards.
Show the UUID in the URL?
Yes — it is safe to expose; that is the point of an opaque id.
Related tools
UUID v1 GeneratorUUID v3 GeneratorUUID v4 GeneratorUUID v5 GeneratorUUID v6 GeneratorUUID v7 GeneratorUUID v8 GeneratorBulk UUID GeneratorShort UUID GeneratorUUID ValidatorUUID FormatterUUID as a Primary KeyUUID Database IDUUID Foreign KeyUUID Shard KeyUUID Partition KeyUUID in a Composite KeyUUID Surrogate KeyUUID API KeyUUID Session TokenUUID Access TokenUUID Refresh TokenUUID Idempotency KeyUUID Request IDUUID Correlation IDUUID Trace IDUUID CSRF TokenUUID NonceUUID FilenameUUID Object KeyUUID S3 KeyUUID Upload IDUUID Cache KeyUUID Blob NameUUID Temp FileUUID User IDUUID Account IDUUID Customer IDUUID Device IDUUID Tenant IDUUID Client IDUUID Anonymous IDUUID Member IDUUID Message IDUUID Event IDUUID Job IDUUID Task IDUUID Queue Message IDUUID Transaction IDUUID Order IDUUID Invoice IDUUID Payment IDUUID Reset TokenUUID Verification TokenUUID Invite CodeUUID API SecretUUID Share LinkUUID Magic LinkUUID Node IDUUID Worker IDUUID Lock IDUUID Cluster IDUUID Test DataUUID Seed DataUUID FixtureUUID Mock IDUUID Placeholder IDUUID Sample ID