UUID Tools

App · Utilities · 3 actions

Make and read the identifiers that keep records from colliding, with UUID Tools. Get one unique ID or a batch of a hundred, as a plain random ID, one that sorts by when it was made so it works as a database key, or one that carries its own timestamp. Build a repeatable ID from a name - the same customer, domain or order number always gives the same ID, from any workflow, with no lookup table to keep - which is how two systems that share no IDs can still agree on one. And read an ID back to see which kind it is and, when it carries one, the moment it was made. Every ID is a standard UUID. No account or API key required.

Actions

ActionWhat it does
Generate a repeatable IDTurn a name into an ID that comes out exactly the same every time.
Generate unique IDsGet an identifier nothing else will ever share - one, or up to a hundred in a single step.
Inspect an IDRead an ID back and find out what it is: which kind, and - when it is a kind that carries one - the exact moment it was made and the machine that made it.

Generate a repeatable ID

Turn a name into an ID that comes out exactly the same every time. Give it a web address, a domain, an email address or an order number and you get one ID for that thing - from any workflow, on any day, with no lookup table to keep. That is what makes it the way to line up records across two systems that have no ID in common: both sides work it out from the same name and land on the same ID. No API key required.

Inputs

NamenametextRequired
The text the ID is built from. Use whatever identifies the thing: a web address, a domain, an email address, an order number. Any characters are fine, including slashes and spaces. The same name always gives the same ID, so keep it exact - 'Acme' and 'acme' are two different names.
Kind of namenamespacetextRequired
Names of different kinds are kept apart, so the domain 'acme.com' and the web address 'acme.com' get different IDs. Pick the one that fits, and use the same one every time you build an ID for this thing.One of: ns:URL (A web address), ns:DNS (A domain name), ns:OID (An object identifier (OID)), ns:X500 (An X.500 directory name), custom (Something else - I have my own namespace ID). Default: ns:URL.
Your namespace IDnamespace_idtext
Only needed when you chose 'Something else' above. The namespace ID the other system uses, so the IDs you build here come out identical to theirs.
Versionversiontext
Version 5 is the one to use. Choose version 3 only when you have to match IDs a system already made that way.One of: v5 (Version 5 - the standard choice), v3 (Version 3 - only to match a system that already uses it). Default: v5.

Outputs

idtext
The ID, in the standard lower-case hyphenated form. This is the value to store and to pass on.
nametext
The name this ID was built from, exactly as it was sent.
namespacetext
The namespace it was built in, either one of the four standard names or the ID you supplied.
versionnumber
Which version was used: 5 or 3.
Example output
{
  "id": "4f9c6a1b-0d52-5a37-b8e4-77c1f0a6d925",
  "name": "https://acme.example.com/orders/1042",
  "namespace": "ns:URL",
  "version": 5
}

Generate unique IDs

Get an identifier nothing else will ever share - one, or up to a hundred in a single step. It can be plainly random, sortable so newer IDs file after older ones in a database, or time-based so the moment it was made can be read back out of it. Every one is a standard UUID, so anything that takes a UUID or a GUID will take these. No API key required.

Inputs

Kind of IDid_kindtextRequired
What the ID should be like. Random suits almost everything. Sortable is worth it when the IDs will be database keys and you want newer rows to file after older ones; time-based is for when you want to read the creation time back out of the ID later.One of: random (Random - the usual choice (version 4)), sortable (Sortable - newer IDs sort after older ones (timestamp-first)), time_based (Time-based - carries the time it was made (version 1)). Default: random.
How manycountnumber
How many IDs to make at once, up to a hundred. Ask for the whole batch here rather than running the step in a loop: it is one request instead of a hundred.From 1 to 100. Default: 1.

Outputs

countnumber
How many IDs came back.
idtext
The ID, ready to use. When you asked for more than one, this is the first of them.
idslist
Every ID that was made, in the order they came back. Loop over this when you asked for a batch.
Example output
{
  "count": 1,
  "id": "9f1c2a5e-7b3d-4e8a-95c6-2d0f4b8e1a73",
  "ids": [
    "9f1c2a5e-7b3d-4e8a-95c6-2d0f4b8e1a73"
  ]
}

Inspect an ID

Read an ID back and find out what it is: which kind, and - when it is a kind that carries one - the exact moment it was made and the machine that made it. The step fails if the value is not an ID at all, which makes it the way to check that something arriving from a form or another system really is one before the rest of the workflow leans on it. No API key required.

Inputs

IDidtextRequired
The ID to read. Write it however the system that gave it to you did - curly braces, capitals, a 'urn:uuid:' prefix or no hyphens at all are all understood.

Outputs

created_attext
When the ID was made, as an ISO 8601 timestamp in UTC. Only a time-based (version 1) ID carries this; for every other kind it is empty.
idtext
The ID in its standard lower-case hyphenated form, whatever spelling went in. This is the one to store, so two systems writing the same ID differently still match.
machine_addresstext
The network address of the machine that made it, e.g. '02:42:ac:12:00:02'. Only a time-based (version 1) ID carries this; for every other kind it is empty.
numbertext
The same ID written as one very large number, which some databases store instead of the hyphenated text. It stays text here because the number is bigger than a spreadsheet or a browser can hold without rounding it.
varianttext
Which ID layout it follows. Almost every ID in use says 'DCE 1.1, ISO/IEC 11578:1996'; anything else points at an ID built by hand or by an older Microsoft tool.
versionnumber
Which version the ID is: 4 for random, 1 for time-based, 5 or 3 for repeatable, 0 for the all-zeroes placeholder.
version_nametext
The same thing in words, e.g. 'Version 4 - random'. This is the field to show a person.
Example output
{
  "created_at": "2019-12-05T04:49:57.961296Z",
  "id": "b01eb720-171a-11ea-b949-73c91bba743d",
  "machine_address": "73:c9:1b:ba:74:3d",
  "number": "234103610387309579079392911688732406845",
  "variant": "DCE 1.1, ISO/IEC 11578:1996",
  "version": 1,
  "version_name": "Version 1 - made from the time and the machine that made it"
}

On this page