UUID Validator
Validate any UUID and inspect its version and variant instantly. Runs entirely in your browser — nothing is sent to any server.
What makes a UUID valid?
A UUID is a 128-bit value normally written as 32 hexadecimal digits grouped 8-4-4-4-12 (e.g. 123e4567-e89b-12d3-a456-426614174000). This tool checks that a string decodes to exactly 16 bytes of hex data — accepting the standard hyphenated form, no hyphens, surrounding braces {}, and any mix of upper/lowercase — then reads the version and variant bits embedded in those bytes to tell you not just whether it's well-formed, but what kind of UUID it is. Paste a whole list, one UUID per line, to validate all of them at once.
UUID Variants
RFC 9562 / RFC 4122
The standard variant used by virtually every modern UUID, identified by the two most significant bits of byte 8 being 10. This is the only variant where the version nibble (v1–v8) is meaningful — it's what this app's UUID Generator produces.
NCS (backward compatibility)
The oldest variant, reserved for backward compatibility with the original Apollo Network Computing System UUIDs that predate RFC 4122. Identified by the most significant bit of byte 8 being 0. Extremely rare to see in the wild today.
Microsoft (reserved)
Reserved for backward compatibility with early Microsoft COM/DCE GUIDs, which stored some fields in a different (mixed-endian) byte order on the wire. Identified by the top three bits of byte 8 being 110.
Reserved for future use
The remaining bit pattern (top three bits of byte 8 equal to 111), reserved by the spec for possible future definition. A UUID reporting this variant today is either intentionally custom or malformed.
Examples
Check whether a string is a well-formed UUID natively, no libraries required in most languages:
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(str)import uuid
try:
uuid.UUID(str)
except ValueError:
passjava.util.UUID.fromString(str) // throws IllegalArgumentExceptionGuid.TryParse(str, out var guid)import "github.com/google/uuid"
_, err := uuid.Parse(str)Ramsey\Uuid\Uuid::isValid($str)str =~ /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/iUse Cases
Validating user input
Reject malformed UUIDs in API request bodies, path params, or form fields before they ever reach your database or a downstream service.
Data migration audits
Scan values from a legacy dataset or CSV export to catch malformed IDs, stray whitespace, or old Microsoft-style GUIDs before importing them into a new system.
Catching unexpected UUID versions
If your system is only supposed to receive v4 or v7 identifiers, use the version breakdown to catch a v1 UUID slipping through — v1 embeds a timestamp and node data that v4/v7 don't.
Debugging support tickets and logs
Quickly confirm whether an ID copied from a log line, error report, or support ticket is actually a valid UUID before chasing what might be a formatting bug instead.