What is a UUID Formatter
The same 128 bits can be written in many ways and every ecosystem picked a favourite. The canonical form is lowercase 8-4-4-4-12 with hyphens. .NET wraps the value in braces, logs usually drop the hyphens, URLs prefer something shorter than 36 characters, C# source wants a byte array, and PostgreSQL wants a typed literal before it will treat the string as a uuid.
This formatter accepts any of those spellings and rewrites every line into the one you select. It is the quickest way to normalise a column of mixed-case identifiers before comparing them, or to produce the exact literal a migration script or a config file needs.
How to
- Paste the UUIDs, one per line — case, hyphens, braces and surrounding quotes are all tolerated.
- Pick the output format. The list is rewritten as soon as you change it.
- Use Copy all or Download .txt; lines that are not UUIDs are skipped and counted in the toast.
Use cases
- Case and hyphen mismatches: a database stores lowercase, logs emit uppercase, and a JOIN fails silently.
- API and URL payloads: 22-character base64url instead of a 36-character canonical string.
- Source code and migrations: a C#
byte[], a typed SQL literal, or a bare 32-hex key for a legacy column.
Compare UUID Formatter with other formats
| Option | When to use |
|---|---|
Canonical | 36 characters, lowercase with hyphens — the interoperable default. |
No hyphens | 32 characters, what most databases store internally and what logs tend to print. |
Braces / parentheses | 38 or 38 characters; the .NET <code>B</code> and <code>P</code> format specifiers. |
Base64url | 22 characters, URL-safe, no padding — the most compact lossless form. |
Code examples
JavaScript
const hex = '550e8400e29b41d4a716446655440000';
const H = (s) => `${s.slice(0,8)}-${s.slice(8,12)}-${s.slice(12,16)}-${s.slice(16,20)}-${s.slice(20)}`;
H(hex); // 550e8400-e29b-41d4-a716-446655440000
H(hex).toUpperCase(); // 550E8400-E29B-41D4-A716-446655440000
Buffer.from(hex, 'hex').toString('base64url'); // 22 characters
Python
import uuid, base64
u = uuid.UUID('550e8400-e29b-41d4-a716-446655440000')
str(u) # 550e8400-e29b-41d4-a716-446655440000
str(u).upper() # 550E8400-E29B-41D4-A716-446655440000
u.hex # 550e8400e29b41d4a716446655440000
u.bytes.hex() # same, as raw bytes
base64.urlsafe_b64encode(u.bytes).rstrip(b'=').decode() # UQ6EAO4pQdSnFkZmVUQA
PostgreSQL
SELECT '550e8400-e29b-41d4-a716-446655440000'::uuid; -- cast needs the hyphens
SELECT replace('550e8400-e29b-41d4-a716-446655440000','-','')::uuid; -- still fine
SELECT uuid_extract_version('550e8400-e29b-41d4-a716-446655440000');
Frequently asked questions
What is the canonical UUID format?
Lowercase hexadecimal in five groups — 8, 4, 4, 4 and 12 digits separated by hyphens — for 36 characters in total. It is the form RFC 9562 uses in every example and the one to store when nothing else forces a different shape.
How do I remove the hyphens from a list of UUIDs?
Paste the list, choose 32 hex digits, no hyphens. The change is reversible: adding the hyphens back does not alter the value, only its spelling.
Is base64url really the same UUID?
Yes. It is the same 16 bytes encoded with a different alphabet, so it is 22 characters instead of 36. Decode it again and you get the identical UUID back — that is why it is safe in URLs and cookie values.