ID types
Every ID flavour the generator supports, with its options, limits, and a worked example.
ID types
The type field in the generate request picks one of eight generators. This page documents each one with its options and a copy-pasteable example. Every example assumes you have already set username and token from your dashboard key.
All examples below send JSON. Form-urlencoded bodies work too.
uuid
An RFC 4122 version 4 UUID. No options.
curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "uuid" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username: "my-bot", token: "<token>", type: "uuid" }),
});
const { id } = await res.json(); // "550e8400-e29b-41d4-a716-446655440000"nanoid
A compact, URL-safe identifier. length is required. By default it uses the standard URL-safe alphabet; pass a custom alphabet to draw from your own character set.
lengthlength returns 400 Please specify the length; a value over 256 returns 400 Length too large, please use a smaller number.alphabet400 Alphabet length must be between 3 and 256 characters. Omit for the default URL-safe alphabet.curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "nanoid", "length": 16, "alphabet": "0123456789abcdef" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
username: "my-bot",
token: "<token>",
type: "nanoid",
length: 16,
alphabet: "0123456789abcdef", // optional
}),
});
const { id } = await res.json();2fa
A numeric one-time code using digits 0-9 only. Useful for verification codes.
length6400 Length too large, please use a smaller number.curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "2fa", "length": 6 }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username: "my-bot", token: "<token>", type: "2fa", length: 6 }),
});
const { id } = await res.json(); // "048213"license
A license-key-style string: five groups of five characters drawn from 0-9A-Z, joined by hyphens (for example AB12C-3DE4F-GH56J-7KL8M-N90PQ). No options.
curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "license" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username: "my-bot", token: "<token>", type: "license" }),
});
const { id } = await res.json(); // "AB12C-3DE4F-GH56J-7KL8M-N90PQ"words
A human-readable identifier built from random words. length is the word count and is required. The singular word is accepted as an alias for the type.
lengthlength returns 400 Please specify the length of the words; a value over 16 returns 400 Length too large, please use a smaller number.styleslugslug is lowercase joined by hyphens (brave-yellow-otter). title is Title Case joined by spaces (Brave Yellow Otter). formal is Title Case with spaces stripped (BraveYellowOtter).curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "words", "length": 3, "style": "slug" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
username: "my-bot",
token: "<token>",
type: "words",
length: 3,
style: "slug", // slug | title | formal
}),
});
const { id } = await res.json(); // "brave-yellow-otter"snowflake
A Discord-style 64-bit snowflake. It is returned as a string to avoid JavaScript number precision loss, so treat it as text, not a number. The generator uses epoch 1638169647. No options.
curl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "snowflake" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username: "my-bot", token: "<token>", type: "snowflake" }),
});
const { id } = await res.json(); // "1184526789012345678" (string)keypair
An Ed25519 signing keypair. Unlike every other type, the response carries two fields: id is the public key (hex) and privateID is the secret key (hex). Store privateID securely and never expose it.
idprivateIDcurl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "keypair" }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username: "my-bot", token: "<token>", type: "keypair" }),
});
const { id, privateID } = await res.json();
// id -> public key (hex)
// privateID -> secret key (hex), keep this safecuid
A collision-resistant identifier (CUID2). Both options are optional.
length5400 Length must be between 2 and 32.fingerprintTeamHydracurl -X POST https://id.hep.gg/ \
-H "Content-Type: application/json" \
-d '{ "username": "my-bot", "token": "<token>", "type": "cuid", "length": 10 }'const res = await fetch("https://id.hep.gg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
username: "my-bot",
token: "<token>",
type: "cuid",
length: 10,
fingerprint: "my-service", // optional
}),
});
const { id } = await res.json();