style enum Username style: 'handle' (word.word42), 'gamer' (XxCamelLeetxX), 'professional' (first.last), 'anonymous' (adjectivenoun8317). Omit for a mix.
Random usernames in four distinct styles — handle, gamer, professional, anonymous — with a maxLength that is honored by construction, never by truncation.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
style | enum | allowed: handle | gamer | professional | anonymous example: gamer | Username style: 'handle' (word.word42), 'gamer' (XxCamelLeetxX), 'professional' (first.last), 'anonymous' (adjectivenoun8317). Omit for a mix. |
maxLength | int | default: 20 allowed: 6 – 30 example: 12 | Hard upper bound on username length, honored by building shorter combos (never truncating). 'anonymous' needs ≥ 8. |
style enum Username style: 'handle' (word.word42), 'gamer' (XxCamelLeetxX), 'professional' (first.last), 'anonymous' (adjectivenoun8317). Omit for a mix.
maxLength int Hard upper bound on username length, honored by building shorter combos (never truncating). 'anonymous' needs ≥ 8.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 10 allowed: 1 – 100 example: 3 | How many records to generate (1–100). |
seed | int | example: 42 | Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed). |
fields | list | example: username,style | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: style | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int How many records to generate (1–100).
seed int Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
username | string | The generated username, always ≤ maxLength. | pixel.fox42 |
style | string | The style this username was built with (useful when mixing). | handle |
username string The generated username, always ≤ maxLength.
example: pixel.fox42
style string The style this username was built with (useful when mixing).
example: handle
/api/usernames?count=8&seed=7 {
"data": [
{
"username": "priya.carter",
"style": "professional"
},
{
"username": "lars.penn",
"style": "professional"
},
{
"username": "T1t4nDr4g0n78",
"style": "gamer"
},
{
"username": "foggypanda32",
"style": "anonymous"
},
{
"username": "eagerkoala87",
"style": "anonymous"
},
{
"username": "otto.day",
"style": "professional"
},
{
"username": "rapidlemur3081",
"style": "anonymous"
},
{
"username": "politecomet565",
"style": "anonymous"
}
],
"meta": {
"endpoint": "usernames",
"count": 8,
"seed": 7,
"params": {
…
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/usernames?style=gamer&count=5 {
"data": [
{
"username": "Turb0St33l",
"style": "gamer"
},
{
"username": "XxAceRoguexX",
"style": "gamer"
},
{
"username": "BoltFrost",
"style": "gamer"
},
{
"username": "XxSteelFirexX",
"style": "gamer"
},
{
"username": "C1ph3rN1nj472",
"style": "gamer"
}
],
"meta": {
"endpoint": "usernames",
"count": 5,
"seed": 42,
"params": {
"style": "gamer",
"maxLength": 20
},
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/usernames?style=professional&maxLength=12&count=5 {
"data": [
{
"username": "ian.hayes",
"style": "professional"
},
{
"username": "bo.day",
"style": "professional"
},
{
"username": "priya.cole",
"style": "professional"
},
{
"username": "mia.dalton",
"style": "professional"
},
{
"username": "paul.keller",
"style": "professional"
}
],
"meta": {
"endpoint": "usernames",
"count": 5,
"seed": 42,
"params": {
"style": "professional",
"maxLength": 12
},
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} Generates usernames with a guaranteed format per style, assembled from curated word pools:
handle — lowercase words joined by . or _, optional 2-digit suffix: pixel.fox42gamer — CamelCase words, sometimes leetspeak digits or an Xx…xX wrap: XxShadowWolfxX, Fr0stV1per, NovaTitan99professional — first.last, all lowercase: nina.parkeranonymous — adjective + noun + 2–4 digits, no separators: sneakyotter8317Omit style for a mix. maxLength is honored by picking shorter word combinations, never by chopping a word mid-way — every result is a clean, pronounceable username. The anonymous style needs maxLength ≥ 8 (explicitly requesting it below that is a 400; in a mix it is simply left out, with a warning).
style=handle|gamer|professional|anonymous — four distinct patterns — and maxLength hard-caps length for schema constraints.
No guarantee — draws are independent, so rare collisions are possible even within one response, and global uniqueness across calls is definitely not promised. Treat them as fixtures, not identity.
seed — the same seed returns the same usernames, forever.
Random person names — first, last and full — with a strict gender filter, locale-aware name pools in 8 languages and seed-reproducible output.
Fake email addresses with name-derived usernames on guaranteed non-deliverable domains (example.com/net/org and .test) — or stamp your own with ?domain=.
Complete fake people — name, age-consistent birth date, email, phone, job and address — with working filters for gender, age range and email domain.
Random password generator with length, uppercase/digit/symbol toggles, look-alike exclusion, and an honest entropy estimate with a strength rating.
UTS #39 skeletons, mixed-script and identifier-status checks: whether two usernames or domains are visual lookalikes, and which characters differ.