words int Number of words per passphrase (3–10). More words = more entropy (~9.8 bits each).
Diceware-style random passphrases from a curated 895-word English list — pick word count, separator and capitalization, with an honest entropy estimate.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
words | int | default: 4 allowed: 3 – 10 example: 5 | Number of words per passphrase (3–10). More words = more entropy (~9.8 bits each). |
separator | string | default: - allowed: 0 – 3 example: . | String placed between words, up to 3 characters (e.g. '.', '_', '--'). An empty value falls back to the default '-'. |
capitalize | boolean | default: false example: true | Title Case every word (Correct-Horse-Battery). Formatting only — entropy is unchanged. |
words int Number of words per passphrase (3–10). More words = more entropy (~9.8 bits each).
separator string String placed between words, up to 3 characters (e.g. '.', '_', '--'). An empty value falls back to the default '-'.
capitalize boolean Title Case every word (Correct-Horse-Battery). Formatting only — entropy is unchanged.
| 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: passphrase,words | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: entropyBits | 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 |
|---|---|---|---|
passphrase | string | The words joined with the separator — exactly words.join(separator). | ember-lagoon-violin-frost |
words | string[] | The individual words, in order, as they appear in the passphrase (Title Cased when capitalize=true). | ["ember","lagoon","violin","frost"] |
entropyBits | integer | Strength estimate: round(words × log2(895)) — each word is an independent uniform pick from the 895-word list (≈9.8 bits per word). | 39 |
passphrase string The words joined with the separator — exactly words.join(separator).
example: ember-lagoon-violin-frost
words string[] The individual words, in order, as they appear in the passphrase (Title Cased when capitalize=true).
example: ["ember","lagoon","violin","frost"]
entropyBits integer Strength estimate: round(words × log2(895)) — each word is an independent uniform pick from the 895-word list (≈9.8 bits per word).
example: 39
/api/passphrases?count=5&seed=42 {
"data": [
{
"passphrase": "lizard-raccoon-panther-fresh",
"words": [
"lizard",
"raccoon",
"panther",
"fresh"
],
"entropyBits": 39
},
{
"passphrase": "banana-almond-lake-mirror",
"words": [
"banana",
"almond",
"lake",
"mirror"
],
"entropyBits": 39
},
{
"passphrase": "swan-carry-glade-leopard",
"words": [
"swan",
"carry",
"glade",
"leopard"
],
"entropyBits": 39
},
{
"passphrase": "clear-order-bagel-cookie",
"words": [
"clear",
"order",
"bagel",
"cookie"
],
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/passphrases?words=6&separator=. {
"data": [
{
"passphrase": "lizard.raccoon.panther.fresh.mist.bamboo",
"words": [
"lizard",
"raccoon",
"panther",
"fresh",
"mist",
"bamboo"
],
"entropyBits": 59
},
{
"passphrase": "banana.almond.lake.mirror.yak.comet",
"words": [
"banana",
"almond",
"lake",
"mirror",
"yak",
"comet"
],
"entropyBits": 59
},
{
"passphrase": "swan.carry.glade.leopard.noodle.alert",
"words": [
"swan",
"carry",
"glade",
"leopard",
"noodle",
"alert"
],
"entropyBits": 59
},
{
"passphrase": "clear.order.bagel.cookie.walrus.studio",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/passphrases?words=5&capitalize=true {
"data": [
{
"passphrase": "Lizard-Raccoon-Panther-Fresh-Mist",
"words": [
"Lizard",
"Raccoon",
"Panther",
"Fresh",
"Mist"
],
"entropyBits": 49
},
{
"passphrase": "Banana-Almond-Lake-Mirror-Yak",
"words": [
"Banana",
"Almond",
"Lake",
"Mirror",
"Yak"
],
"entropyBits": 49
},
{
"passphrase": "Swan-Carry-Glade-Leopard-Noodle",
"words": [
"Swan",
"Carry",
"Glade",
"Leopard",
"Noodle"
],
"entropyBits": 49
},
{
"passphrase": "Clear-Order-Bagel-Cookie-Walrus",
"words": [
"Clear",
"Order",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Generates memorable word-based passphrases (the correct-horse-battery-staple pattern) from a curated list of 895 common English words, each 3–8 lowercase letters — no proper nouns, no obscure vocabulary.
Every word is an independent uniform pick from the full list (duplicates within a passphrase are possible, exactly like rolling dice), so the strength math is honest: entropyBits = round(words × log2(895)) ≈ 9.8 bits per word. separator and capitalize only change formatting, never entropy.
With a seed the same request returns the same passphrases forever — handy for fixtures. Do not use seeded output as a real credential; for real passphrases let the platform pick a fresh random seed (the default) or, better, generate secrets offline.
Each response includes entropyBits computed from the wordlist size and length, so you can enforce a policy numerically.
Not for personal credentials — anything generated over a public HTTP API belongs in test accounts and demos. Use a local generator for real secrets.
words sets the word count, separator the joiner and capitalize=true title-cases each word.
Random password generator with length, uppercase/digit/symbol toggles, look-alike exclusion, and an honest entropy estimate with a strength rating.
Clearly fake API keys, JWTs and hex/base64 secrets — structurally valid enough to exercise parsers and middleware, cryptographically meaningless by design.
Random usernames in four distinct styles — handle, gamer, professional, anonymous — with a maxLength that is honored by construction, never by truncation.
Random English words by part of speech — nouns, verbs, adjectives or adverbs — with working length filters, seedable output and honest 400s when nothing fits.