What a UUID is
A UUID is a 128-bit identifier written as 32 hex characters split by hyphens, like 123e4567-e89b-12d3-a456-426614174000. You can create one without asking a central server, and the odds of two machines making the same one are tiny.
That's why they're everywhere: database keys, file names, session IDs, message IDs. Generate a single one or a whole batch here, copy it or download the list.
Which version do you need
Version 4 is the common pick. It's built from random numbers and carries no information about when or where it was made. Use it when you just need an ID.
Version 5 is derived from a name and a namespace using SHA-1. Give it the same inputs and you get the same UUID every time. That's useful when you want a stable ID for something like a URL.
Version 1 includes a timestamp and machine details. Version 7 is newer and starts with a timestamp too, so IDs sort by creation time. That helps database indexes, but it also means the ID reveals roughly when a record was created. Decide whether that's a privacy problem for your case.
The nil UUID is all zeros. Programs use it as an empty placeholder.
Output options
Switch to uppercase, remove the hyphens or wrap values in quotes. There's an SQL-ready format for pasting into an INSERT statement. A validator checks whether a string you already have is a proper UUID.
Are they really unique?
In practice, yes. A random v4 UUID has 122 random bits. You'd need to generate billions per second for years before a clash became likely. Not mathematically impossible, but practically not worth worrying about.
The catch is quality of randomness. This tool uses your browser's secure random source, which is the right way to do it.
Not an API key
Don't use a UUID as a secret. It's an identifier, not a credential. Some versions leak timestamps, and even random ones are often logged and shared in URLs. Generate API keys with a proper secret generator and treat them as secrets.
Storing them in a database
A UUID stored as text takes 36 characters. As binary it takes 16 bytes. Use your database's native UUID type if it has one, or a 16-byte binary column. It saves space and speeds up indexes. Random v4 values scatter across an index, which can slow writes on very large tables. Time-ordered options like v7 or ULID help there.
A ULID is similar in spirit to v7. It's sortable by time and uses a shorter text form. Pick whichever your stack supports well.